(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-23
(45)【発行日】2023-05-31
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 16/30 20190101AFI20230524BHJP
G06F 16/35 20190101ALI20230524BHJP
【FI】
G06F16/30
G06F16/35
(21)【出願番号】P 2018233606
(22)【出願日】2018-12-13
【審査請求日】2021-12-09
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】蔵満 琢麻
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2018-156552(JP,A)
【文献】特開2005-346560(JP,A)
【文献】特開2016-206748(JP,A)
【文献】特開2015-197722(JP,A)
【文献】特開2018-194881(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
入力された文書と類似する文書を検索する検索手段と、
前記入力された文書から特定される複数の観点に係るカテゴリと、当該文書における特徴語と、前記検索手段により検索された文書と、を表示するよう制御する表示制御手段と、
前記表示制御手段により表示制御されたカテゴリに対する操作を受け付ける操作受付手段と、
前記操作受付手段により受け付けたカテゴリに対する操作によって、前記検索手段による検索処理において考慮される当該カテゴリの重みを調整する調整手段と、
を備えることを特徴とする情報処理システム。
【請求項2】
前記表示制御手段は、前記操作受付手段により操作を受け付けたカテゴリに関連するワードであって、前記入力された文書に含まれるワードを表示するよう制御することを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記操作受付手段は、カテゴリに対するクリック操作を受け付けることを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
入力された文書と類似する文書を検索する検索手段と、
前記入力された文書から特定される複数の観点に係るカテゴリと、当該文書における特徴語と、前記検索手段により検索された文書と、を表示するよう制御し、前記検索手段により検索された文書のカテゴリを当該文書と対応付けて表示するよう制御する表示制御手段と、
前記検索された文書のカテゴリに対する操作に基づき、当該カテゴリと当該文書との対応付けを削除するよう制御する制御手段と、
を備えることを特徴とする情報処理システム。
【請求項5】
前記検索手段は、前記入力された文書のカテゴリと、当該文書の特徴を表す特徴語と、当該カテゴリに関連するワードと、を検索クエリとして、当該入力された文書と類似する文書を検索することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
【請求項6】
入力された文書と類似する文書を検索する検索手段と、
前記入力された文書から特定される複数の観点に係るカテゴリと、当該文書における特徴語と、前記検索手段により検索された文書と、を表示するよう制御する表示制御手段と、
前記表示制御手段により表示制御されたカテゴリに対する操作を受け付ける操作受付手段と、
前記操作受付手段により受け付けたカテゴリに対する操作によって、前記検索手段による検索処理において考慮される当該カテゴリの重みを調整する調整手段と、
を備えることを特徴とする情報処理システム。
【請求項7】
入力された文書と類似する文書を検索する検索手段と、
前記入力された文書から特定される複数の観点に係るカテゴリと、当該文書における特徴語と、前記検索手段により検索された文書と、を表示するよう制御し、前記検索手段により検索された文書のカテゴリを当該文書と対応付けて表示するよう制御する表示制御手段と、
前記検索された文書のカテゴリに対する操作に基づき、当該カテゴリと当該文書との対応付けを削除するよう制御する制御手段と、
を備えることを特徴とする情報処理システム。
【請求項8】
コンピュータを請求項1乃至5のいずれか1項に記載の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書の検索方法に関する。
【背景技術】
【0002】
入力として与えられた文書と類似する文書を出力するシステムを類似文書検索システムと呼ぶ。
【0003】
検索者が自らキーワードや検索クエリを入力して検索する検索システムと比べ、適切な検索クエリを検索者が思いつかない場合においても利用できるため、検索システムの仕組みに明るくないユーザにも利用しやすいという特徴がある。
【0004】
類似文書検索システムの実装については、既に様々な製品の開発や研究がなされている。オープンソースの検索エンジンであるApache Luceneにおける「MoreLikeThis」と呼ばれるAPIは、文書集合における単語の出現頻度をもとに、入力文書に出現する単語において希少性が高い単語を特徴語として選出し、当該特徴語を用いた検索クエリを自動的に発行することで類似文書検索の機能を実現している。
【0005】
前述の単語の出現頻度をもとにした実装は、実際に様々なケースで有効に動作するが、システム利用者の目的によっては不十分なことがある。
【0006】
以下、具体例として、SIerにおける営業担当者が、「RFP(提案依頼書)」を入力とし、過去の「類似案件の見積書」を検索する場面を挙げ、2つの問題点を説明する。
【0007】
1つ目の問題点は、1つの入力文書に対して、類似文書として出力する文書集合が、検索者の意図に関わらず同じものが出力される点である。
【0008】
例えば、営業Aは「顧客の業界」が似ている見積書を、営業Bは「提案の内容」が似ている見積書を取得したいと考えている場合、各々に出力されるべき文書集合は全く異なる。
【0009】
前述したように、単語の出現頻度から特徴語を抽出して検索クエリに使用する場合、例えば、プロジェクトメンバーの氏名や顧客の社名などが検索時のキーワードとして採用され、検索者の意図とは異なる観点の類似文書(同じ特徴語を多く含む文書)が出力されることがある。
【0010】
2つ目の問題点は、意味的に似ている文章が含まれている文書においても、単語の表記が異なれば検索結果としてヒットしないという点である。
【0011】
例えば、文章A「UXを考慮したポータルサイトを作りたい」と、文章B「顧客満足度向上に向けてホームページを改修したい」は、意味的に似ているが、文章Aの単語(「UX」、「考慮する」、「ポータルサイト」、「作る」と、文章Bの単語(「顧客満足度」、「向上」、「ホームページ」、「改修する」)の表記は一致しない。
【0012】
1つ目の問題を解決するためには、検索システムに対してなんらかの方法でユーザの検索意図を入力する手段が必要となる。
【0013】
特許文献1には、ユーザの検索意図を反映したクエリを生成するために、ユーザが入力した単語群について、関連する単語をユーザが選択可能な状態で列挙し、ユーザに改めて検索意図に近い関連語を選択させる方法が示されている。
【0014】
2つ目の問題を解決するためには、検索システムに、言葉の持つ意味や概念を考慮したロジックを組み込むことが必要となる。
【0015】
特許文献2には、検索語と索引語の両方について、上位・下位・関連概念に展開して検索する方法が示されている。
【0016】
2つ目の問題に対する他のアプローチとして、あらかじめ文書のカテゴリを定義し、特許文献3や非特許文献1に示されるように、機械学習を用いた文書分類技術を用いて、入力文書に該当するカテゴリの文書のスコアを向上させる方法が考えられる。
【先行技術文献】
【特許文献】
【0017】
【文献】特開2000-82067号公報
【文献】特開2004-29906号公報
【文献】特開2004-326465号公報
【文献】人工知能による文書分類 情報の科学と技術66巻6号、277-281
【発明の開示】
【発明が解決しようとする課題】
【0018】
しかしながら、特許文献1に記載された手法は、ユーザにとって検索したいキーワードがある程度定まっている場合においては有効であると考えられるが、類似文書検索システムのユーザは、具体的な検索キーワードが定まっている状態ではない。
【0019】
入力文書から抽出した全ての特徴語に対して関連語を表示することも考えられるが、自動抽出した特徴語の中に、そもそもユーザの検索意図と関連する言葉が含まれていない可能性がある。
【0020】
また、文書から抽出する特徴語の数を増やした場合、ユーザに提示する選択肢が膨大になる問題もある。
【0021】
また、特許文献2に記載された手法は、表記の異なる単語においても、意味的に近い単語をヒットさせることが可能になるが、前述の問題と同様に、ユーザにとって検索したいキーワードが定まっていない場合に、入力文書から抽出した特徴語をクエリとすると、検索者にとって不要な単語が拡張される可能性がある。
【0022】
さらに、、特許文献3や非特許文献1に記載された手法は、教師学習を行う際に、十分な教師データが必要になる。
【0023】
しかし、企業内で日々発生する様々な文書データにおいて、日常的に適切な分類やタグ付けがなされているケースは稀であり、検索システムに搭載したいと考えるカテゴリについて、大量の教師データを確保することは困難である。
【0024】
そこで、本発明では、ユーザが所望する適切な文書の検索を行うことが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【0025】
上記目的を達成するための本発明は、文書を検索する情報処理装置であって、カテゴリに分類された文書及び当該カテゴリに属する検索文字列を記憶する記憶手段と、入力された文書から前記記憶手段により記憶された検索文字列を取得する取得手段と、前記取得手段により取得した検索文字列を用いて前記入力された文書のカテゴリを推定する推定手段と、前記推定手段により推定したカテゴリに属する検索文字列と前記入力された文書の特徴語とを用いて、前記記憶手段に記憶する文書を検索する検索手段と、を備えたことを特徴とする。
【発明の効果】
【0026】
本発明によれば、ユーザが所望する適切な文書の検索を行うことができる、という効果を奏する。
【図面の簡単な説明】
【0027】
【
図1】本発明の実施形態における類似文書検索システムの構成図である。
【
図2】本発明の実施形態における文書検索装置がユーザに提示するユーザインターフェースの一例である。
【
図3】文書入力後のユーザインターフェースの一例である。
【
図4】カテゴリ要素クリック後のユーザインターフェースの一例である。
【
図5】ユーザインターフェースにおける文書詳細画面の一例である。
【
図6】検索意図入力後のユーザインターフェースの一例である。
【
図7】本発明の実施形態におけるカテゴリ作成処理の流れを表すフローチャートである。
【
図10】カテゴリスコア調整語テーブルの一例である
【
図11】本発明の実施形態における機械学習処理のフローチャートである
【
図12】カテゴリ判定閾値調整処理のフローチャートである
【
図13】関連語・調整語学習処理のフローチャートである
【
図15】本発明の実施形態における文書登録処理のフローチャートである
【
図16】検索インデックスに登録する文書情報の一例である
【
図17】本発明の実施形態における検索クエリ生成処理のフローチャートである
【
図19】本発明の実施形態における検索スコアの計算方法である
【発明を実施するための形態】
【0028】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【0029】
図1は、類似文書検索システムの構成図を表す。類似文書検索システム100は、カテゴリDB101、検索インデックス102、文書登録装置103、文書検索装置104、及びカテゴリ学習装置105から成る。
【0030】
図2は、文書検索装置104が、類似文書検索システム100のユーザに表示するユーザインターフェースの一例を表している。
【0031】
文書検索画面200は、対話型のインターフェースであり、利用者の検索クエリを入力するクエリ入力フォーム210と、会話の内容を表示する会話表示領域220とから成る。
【0032】
ユーザは、会話表示領域220に、文書ファイルをドラッグ&ドロップすることにより、文書検索装置104に文書ファイルを入力できる。
【0033】
図3は、文書ファイル(ファイル名が、A製薬/文書管理システムRFP.pdf)を入力した後の文書検索画面200の一例である。文書検索装置104は、入力文書の分析結果310、および、検索結果320をユーザに提示する。
【0034】
入力文書の分析結果310には、類似の観点を表す検索軸(案件内容、業界)と、文書が属する検索軸ごとのカテゴリ(文書管理、スキャン、製薬、医療)と、入力文書における特徴語(MR、安全、提携、症例、添付、A製薬、文書、ペーパーレス)とが含まれる。
【0035】
尚、各情報の抽出方法の詳細については、後述の検索クエリ生成処理において説明する。
【0036】
文書検索画面200に表示するカテゴリ要素は、クリック操作やタッチ操作を受け付ける要素であり、ユーザは、カテゴリをクリックすることにより、該当するカテゴリに関連する単語(以下、カテゴリ関連語と呼ぶ)のうち、入力文書中に存在する単語の一覧を表示することができる。
【0037】
図4は、カテゴリ311(スキャン)をクリックした後の文書検索画面200を表しており、カテゴリ関連語の一覧312は、カテゴリ311(スキャン)の関連語として、「OCR」、「原本」、「電子化」、「スキャン」の4つが入力文書中に含まれていることを示している。尚、カテゴリ関連語の登録方法については後述する。
【0038】
検索結果320は、文書検索装置104が類似文書と判定した文書の一覧を表示する。文書検索装置104は、入力文書のカテゴリ、カテゴリ関連語、特徴語をクエリとして検索処理を行い、検索スコアの高い順に文書を表示する。
【0039】
各文書の情報として表示される情報は、ファイル名、検索スコアの他に、文書検索装置104が判定したカテゴリの情報が含まれる。
【0040】
検索結果320におけるファイル名はリンク要素であり、クリック操作やタッチ操作によって、文書詳細画面500を表示することができる。
【0041】
図5はファイル名321のクリックによって表示される文書詳細画面500を表している。
【0042】
文書詳細画面500は、文書ダウンロードボタン510と、カテゴリ表示領域520と、特徴語表示領域530と、文書プレビュー領域540からなる。
【0043】
ユーザは文書ダウンロードボタン510を選択することで、文書詳細画面500に表示している文書ファイルをダウンロードすることができる。
【0044】
カテゴリ表示領域520における各カテゴリの要素は、前述と同様にユーザのクリック操作によってカテゴリ関連語を表示する機能を備えることに加え、カテゴリ情報の誤りをシステムに入力するためのカテゴリ削除ボタン521と、文書に追加で付与すべきカテゴリを追加するためのカテゴリ追加ボタン522を備える。
【0045】
類似文書検索システム100のユーザが、カテゴリ削除ボタン521、および、カテゴリ追加ボタン522により、削除、または追加したカテゴリは、検索インデックス102に即座に適用される他、後述するカテゴリの学習処理に使用される。
【0046】
図3に戻って、ユーザの検索意図を文書検索装置103に入力する方法について説明する。
【0047】
ユーザは入力文書の分析結果310に表示された情報から、入力文書は、案件内容が「文書管理」、および、「スキャン」カテゴリに属するものであり、顧客の業界が「製薬」、「医療」カテゴリに属するものであることが分かる。
【0048】
例えば、ユーザの類似検索の意図が、「業界が似ていて違う提案内容」の見積書を検索することである場合、ユーザは、クエリ入力フォーム210に対して、「業界優先」、「スキャン不要」、「文書管理不要」など、検索軸やカテゴリを表す言葉と、当該要素の検索スコアを調整するための言葉とを合わせて入力することで、検索意図を文書検索装置104に入力することができる。
【0049】
図6は、「業界優先 文書管理不要 スキャン不要」をクエリ入力フォーム210から入力した後の文書検索画面200を表している。
【0050】
文書検索装置104は、受け取ったクエリに該当するカテゴリの重みを調整した結果を、入力文書の表示領域310に提示する。
【0051】
カテゴリ要素611における「―」や、カテゴリ要素612における「+」は、検索に使用する重みを表している。
【0052】
以下、説明簡略化のため、「+」は文書中に当該カテゴリ、およびカテゴリ関連語が含まれていることに対するスコアを2倍にすることを表し、「―」は文書中に当該カテゴリ、および、カテゴリ関連語が含まれていることに対するスコアを-2倍にすることを表すものとするが、スコアを調整するための言葉(必須、優先、強め、弱目、不要、+、-など)に応じて、検索時におけるカテゴリごとの重みを細かく調整できるように設計してもよい。
【0053】
文書検索装置104は、調整したスコアで類似文書を検索し、検索結果表示領域320に検索結果を表示する。
【0054】
図6における検索結果は、業界が「製薬」、「医療」カテゴリに属する文書であり、案件内容のカテゴリとして「ポータル」、「文書校正」、「EDI」、「AI」など、入力文書の案件内容のカテゴリ(「文書管理」、「スキャン」)に属しない文書が提示されている。
【0055】
このように、検索軸、カテゴリを用いて検索意図を入力可能なユーザインターフェースとすることにより、単語単位でクエリを拡張する方式と比較して、ユーザは直感的な操作で検索意図に応じた文書を得ることが可能になる。
【0056】
次に、カテゴリ学習装置105における、カテゴリ学習処理について、
図7~
図14を用いて説明する。
【0057】
本発明のカテゴリ分類機能は文書集合中に教師データが存在しない場合でも動作することを特徴とする。
【0058】
基本的なアイデアは、カテゴリ関連語の取得処理と、機械学習による単語別の重み習得処理とを分離することである。
【0059】
図7は、本発明におけるカテゴリ作成処理の流れを示すフローチャートである。
【0060】
まず、ステップS701では、カテゴリごとのカテゴリ名・検索軸・出現率をカテゴリDB101に登録する。
【0061】
図8は、カテゴリDB101において、カテゴリの情報を管理するためのテーブル(カテゴリテーブル800)の一例であり、カテゴリごとのカテゴリ名、検索軸、出現率、及びカテゴリ判定閾値の4つ組の一覧を保持する。
【0062】
ここで、「出現率」は、類似文書検索システム100に登録する文書集合において、該当するカテゴリが存在する確率である。
【0063】
類似文書検索システム100に登録する文書集合について、十分な知見をもつユーザがいる場合は、適当な出現率を登録し、出現率が不明な場合は、デフォルトの値(例えば、0.3など)を格納する。
【0064】
「カテゴリ判定閾値」は、後述の機械学習処理において定まる値であり、初期値は0である。
【0065】
なお、「出現率」は、カテゴリ判定閾値を求めるためのパラメータとして使用する値であり、厳密な値である必要はない。
【0066】
次に、ステップS702では、カテゴリ関連語をカテゴリDB101に登録する。
【0067】
図9は、カテゴリDB101において、カテゴリ関連語を管理するためのテーブル(カテゴリ関連語テーブル900)の一例であり、カテゴリ名、関連語、及び重みの3つ組の一覧を保持する。
【0068】
ここで、「重み」は後述の機械学習処理によって自動的に定まる値であり、初期値は1である。
【0069】
カテゴリ関連語は、類似文書検索システム100のユーザが、カテゴリDB101に直接投入できる。
【0070】
投入の際、Wikipedia等、既にカテゴリ体系が整理されている辞書から、該当するカテゴリやサブカテゴリに属する記事のタイトル名を抽出したり、類似文書検索システム100に投入した文書集合において、カテゴリに含まれていると思われる単語を含む文書集合の特徴語を抽出したものを使用してもよい(参考:Elasticsearch Significant Terms Aggregatio)。
【0071】
次に、ステップS703では、カテゴリ学習装置105における機械学習処理を実行する。
【0072】
機械学習処理の詳細は後述する(
図11)が、この処理によって、カテゴリ判定閾値の調整、カテゴリ関連語の重み調整、及びカテゴリスコア調整語の生成が行われる。
【0073】
ここで、「カテゴリスコア調整語」は、カテゴリの判定に使用するための単語であり、カテゴリ学習装置105が機械的に獲得するものである。
【0074】
図10は、カテゴリDB101における、カテゴリスコア調整語を管理するためのテーブル(カテゴリスコア調整語テーブル1000)の一例であり、カテゴリ名、調整語、及び重みの3つ組の一覧を管理する。
【0075】
図11は、カテゴリ学習装置105における機械学習処理のフローチャートを示している。
【0076】
カテゴリ学習装置105は、ステップS1101のカテゴリ判定閾値調整処理、及びステップS1102の関連語・調整語学習処理を、学習結果に変化が生じなくなる(ステップS1103で判定)か、所定の回数実行(ステップS1104で判定)するまで繰り返し行う。
【0077】
図12は、ステップS1101で実施するカテゴリ判定閾値調整処理のフローチャートを示している。
【0078】
カテゴリ学習装置105は、まず、ステップS1201において、各文書について各カテゴリのスコアをカテゴリ関連語テーブル900とカテゴリスコア調整語テーブル1000に登録されているデータを用いて求める。文書dにおけるカテゴリcのスコアscore(d, c)は下記の式から算出する。
【0079】
rw(x)=カテゴリ関連語xの重み
aw(y)=カテゴリスコア調整語yの重み
score(d,c)=Σrw(x)+Σaw(y)
x∈(文書dに出現するカテゴリcの関連語)
y∈(文書dに出現するカテゴリcのカテゴリスコア調整語)
次に、ステップS1202において、各カテゴリについて、カテゴリスコアのXパーセンタイル(X=100×(1-カテゴリの出現率))を取得する。
【0080】
例えば、文書集合の件数が10件であり、各文書における「金融」カテゴリ(出現率0.3)のスコアを昇順に並べたスコア列が、(0,0,0,0,0,1,3,5,7,8)であったとき、70パーセンタイルである「3」を取得する。
【0081】
その後、ステップS1203において、ステップS1202において取得した各値を、各カテゴリのカテゴリ判定閾値としてカテゴリテーブル800を更新する。
【0082】
次に、
図13及び
図14を用いて、関連語・調整語学習処理について説明する。
【0083】
図13は、関連語・調整語学習処理の流れを示すフローチャートである。
【0084】
図14はカテゴリDB101における教師データテーブル1400の一例であり、カテゴリ名、正負区分、及び文書IDの3つ組の一覧を管理する。
【0085】
正負区分は、教師データにおける正例(TRUE)、負例(FALSE)のいずれかを表すフラグであり、文書IDは、類似文書検索システム100に登録した文書を一意に特定する値である。
【0086】
教師データテーブル1400の各レコードは、ユーザが直接入力可能である。
【0087】
また、前述のカテゴリ表示領域520において、ユーザが、カテゴリ削除ボタン521を押下した際には、該当する文書IDとカテゴリの負例として自動登録され、カテゴリ追加ボタン522を押下してカテゴリを追加した際には、該当する文書IDとカテゴリの正例として自動登録されるものである。
【0088】
関連語・調整語学習処理は、これらの正例、負例の情報をもとに、ステップS1301からステップS1311までの処理で、カテゴリ関連語、および、カテゴリスコア調整語の重みを調整する処理である。
【0089】
まず、ステップS1302において、カテゴリスコアがカテゴリテーブル800の閾値以下である正例(False Negativeの文書集合)の特徴語を取得する。
【0090】
ここで、特徴語は、JLHスコア等の指標を用いて、スコアが事前に定めた所定の値よりも高い単語を取得すればよい。
【0091】
特徴語の取得方法については、他にも様々な方法が考えられるが、本発明に関する部分ではないため、説明を省略する。
【0092】
次に、ステップS1302で取得した各特徴語に対して、ステップS1304~ステップS1306の処理を実施する。
【0093】
まずステップS1304では、特徴語がカテゴリ関連語テーブル900に存在するか否かを判定し、存在する場合は、ステップS1305で、該当するカテゴリ関連語の重みにプラスの補正を加える。
【0094】
ここで加える値は、0.3などの固定の値を加算してもよいし、もとの値の10%など、変動する値でもよい。
【0095】
ステップS1304では、特徴語がカテゴリ関連語テーブル900に存在しない場合は、ステップS1306で、カテゴリスコア調整語テーブル1000において、該当する調整語の重みにプラスの補正を加える。
【0096】
このとき、カテゴリスコア調整語テーブル1000に、該当する調整語が存在しない場合は、新しくレコードを追加する。
【0097】
次に、ステップS1307では、カテゴリスコアがカテゴリテーブル800のカテゴリ判定閾値よりも大きい負例(False Positiveの文書集合)の特徴語を取得し、ステップS1308~ステップS1311で、重みの学習を行う。
【0098】
なお、特徴語は、ステップS1302と同様に、JLHスコア等の指標を用いて取得する。
【0099】
ステップS1309で、特徴語に該当する関連語がカテゴリ関連テーブル900に存在すれば、ステップS1310で、該当する関連語の重みにマイナス補正を加える。
【0100】
ここで加える値は、ステップS1305と同様に、-0.3などの固定の値を加算してもよいし、もとの値の10%など、変動する値でもよい。
【0101】
ただし、カテゴリ関連語テーブル900において、補正後の重みが0未満になる場合、重みを0に修正する。
【0102】
ステップS1309では、特徴語がカテゴリ関連語テーブル900に存在しない場合は、ステップS1311で、カテゴリスコア調整語テーブル1000において、該当する調整語の重みにマイナスの補正を加える。
【0103】
このとき、カテゴリスコア調整語テーブル1000に、該当する調整語が存在しない場合は、新しくレコードを追加する。
【0104】
以上、カテゴリ学習装置105における機械学習処理について説明した。
【0105】
ステップS1101におけるカテゴリ判定閾値調整処理は、教師データが存在しない状態でも動作する。
【0106】
また、ステップS1102における関連語・調整語学習処理は、正例や負例の特徴語を用いて単語の重みを調整するものであり、少ない教師データでも動作する。
【0107】
なお、機械学習により獲得したカテゴリスコア調整語は、類似文書検索システム100のユーザにとって、直接カテゴリに関連しているように思えないものが含まれる可能性があるため、文書検索画面200に表示されると、類似文書検索システム100に対する不信感が生まれる恐れがある。
【0108】
カテゴリ関連語とカテゴリスコア調整語を分類している理由はこの問題に対する処置であり、文書検索画面200における、カテゴリ関連語の一覧312にはカテゴリ関連語のみを表示することで、不要な単語を表示しない仕組みを実現している。
【0109】
次に、文書登録装置103における、文書登録処理について、
図15~
図16を用いて説明する。
【0110】
図15は文書登録処理のフローチャートを示しており、
図16は検索インデックス102に登録する文書情報の一例を示している。
【0111】
文書登録装置103は、文書、及び文書IDを入力として受付ける。まず、ステップS1501で、入力文書から文書のタイトル、及びテキストを抽出し、ステップS1502において、形態素解析を実施して単語の集合を取得する。
【0112】
次にステップS1503では、各カテゴリのカテゴリスコア、及び入力文書中に存在するカテゴリ関連語を取得する。
【0113】
ここで、入力文書dにおけるカテゴリスコアcは、前述の式score(d, c)によって求める。
【0114】
ステップS1504では、教師データテーブル1400において、入力した文書IDに該当する教師データが存在すれば、各カテゴリにおける正負区分を取得する。
【0115】
ステップS1505では、ステップS1501~ステップS1504において取得した文書情報1600を、検索インデックス102に登録する。
【0116】
以上で説明したように、文書登録装置103における文書登録処理では、カテゴリ判定閾値を用いたカテゴリの判定自体は実施せず、カテゴリごとのスコア、及び教師データの正負区分を検索インデックス102する。
【0117】
なお、検索インデックス102に登録した教師データの正負区分は、文書検索画面200からカテゴリの追加、および、削除が行われた際に、適宜更新されるものである。
【0118】
最後に、
図17~
図19を用いて、文書検索装置104における、文書検索処理について説明する。
【0119】
文書検索装置104における文書検索処理は、入力文書から検索クエリを生成する処理と、検索インデックス102から検索クエリに該当する文書を取得して検索スコアの高い順に取得する処理とに分かれる。
【0120】
図17は、検索クエリ生成処理のフローチャートを示しており、
図18は、生成する検索クエリの一例を表している。
【0121】
文書検索装置104は、まずステップS1701で入力文書からテキストを抽出し、ステップS1702で、形態素解析を実行して単語の集合を取得する。
【0122】
次に、ステップS1703では、各カテゴリのカテゴリスコアを求め、カテゴリ判定閾値以上のカテゴリについて、カテゴリ関連語を取得する。
【0123】
次に、ステップS1704では、入力文書の特徴語を抽出する。ここで、特徴語は、ステップS1702で取得した単語のうち、「tf-idf」値が所定の値以上のものである。
【0124】
なお、「tf-idf」値における「idf」値は、検索インデックス102における単語フィールドの統計情報から求めることができる。
【0125】
次に、ステップS1705では、ステップS1704で取得した特徴語、及びステップS1703で取得したカテゴリの情報(カテゴリ名、関連語、及びスコア調整値)を検索クエリとして書き出す。
【0126】
ここで、スコア調整値は、検索スコアの計算時において、該当するカテゴリをどの程度重要視するかを表す指標であり、検索クエリ生成処理においては初期値として1が入る。
【0127】
なお、スコア調整値は、前述したように、文書検索画面200において、クエリ入力フォーム210に検索意図を表す言葉(「業界優先」、「スキャン不要」など)を入力することで、ユーザが任意のタイミングで更新できる。
【0128】
図19は、文書検索装置104における文書検索処理のスコア計算方法を示している。文書検索装置104は、検索クエリ1800における特徴語に対して、「単語」フィールドに同じ単語がある文書の検索スコアを上げる。
【0129】
さらに、検索クエリ1800における各カテゴリに対して、教師データの正例(正負区分がtrueである)場合、または、カテゴリスコアがカテゴリ判定閾値以上であり教師データの負例(正負区分がfalse)ではない文書に対して、検索スコアを上げる。
【0130】
このとき、検索スコアの上げ幅には、検索クエリ1800におけるスコア調整値を乗算する。また、同条件の文書に対して、一致する関連語の数に応じて、同様に検索スコアを上げる。
【0131】
文書検索装置104は、以上で説明した検索スコアの計算方法によって、検索インデックス102内から各文書の検索スコアを求め、検索スコアの高い順に文書の一覧をソートして検索結果として返す。
【0132】
以上、類似文書検索システム100における、各装置の動作について説明した。
【0133】
説明簡略化のため、カテゴリ関連語の設定方法については簡易な説明に留めたが、カテゴリスコア調整語において、高い重みをもつ調整語をカテゴリ関連語の候補としてユーザに提示するUIを作成するなど、機械学習処理の結果を使用してカテゴリ関連語の追加、削除を容易にすることもできる。
【0134】
また、検索インデックス102において、各文書にはカテゴリの判定結果ではなく、カテゴリのスコアと教師データにおける正負区分を保存する仕組みを活用し、カテゴリスコア自体の大きさを検索スコアに加味すること(「医療」カテゴリのスコアが高い順に表示など)もできる。
【0135】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0136】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0137】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0138】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0139】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0140】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。
【0141】
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。
【0142】
この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0143】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0144】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0145】
100 類似文書検索システム
101 カテゴリDB
102 検索インデックス
103 文書登録装置
104 文書検索装置
105 カテゴリ学習装置