以下、本発明の実施の形態を、図面を参照して詳細に説明する。
本発明においては機械学習により従来型の文書の検索結果を、機械学習を利用して検索順位を改めて指定し直す。これを順位学習などと呼ぶ。特に本発明では説明の便宜上、事前に学習モデルを決定する処理を“学習モデルの生成”、実際にユーザなどの検索条件に基づく検索結果を、生成された学習モデルを用いて順位を指定し直す処理を“再ランク付け”と呼ぶことにする。
図1は、本発明の実施形態に係る機能構成の一例を示す図である。本機能構成は、大きく学習時の機能と検索時の機能に分けて考えることができる。
学習カテゴリ決定部101は、学習データ記憶部121に記憶された学習データ(検索条件や正解の選択などのユーザログ)と検索対象文書記憶部123に格納されている検索対象文書の情報から、学習モデルを生成する文書カテゴリを決定する機能部である。何れのカテゴリを学習対象とするか評価するための基準は学習実行条件記憶部122に設定されており、学習カテゴリ決定部101から参照される。また評価する対象の各カテゴリに対応づけられる情報を、文書・学習状況記憶部700に格納する。
学習モデル生成部102は、学習カテゴリ決定部101で決定した学習対象の各カテゴリに対して学習モデルを生成し、学習モデル記憶部124に学習モデルを格納する。学習に際して、学習モデル生成部102は類似検索部103を呼び出して検索対象文書記憶部123を検索する。
検索条件受付部111は、検索処理を利用するユーザからユーザインタフェースを介して、あるいは他のアプリケーションから検索条件を受け付けるための機能部である。
カテゴリ取得部112は、検索条件受付部111で受け付けた検索条件、学習モデル記憶部124、文書・学習状況記憶部700を参照していずれのカテゴリの学習モデルを利用して再ランク付けを実行するかを決定する。
再ランク付け部113は、検索条件受付部111で受け付けた検索条件を類似検索部103に渡して、類似検索部103はその条件に基づいて検索対象文書記憶部123に対して類似検索を実行する。さらに再ランク付け部113は学習モデル記憶部124を参照し、決定された前記カテゴリに対応する学習モデルを用いて、前記検索結果に対して再ランク付けを行う。
結果提示部114は、検索結果をユーザインタフェースあるいは本発明の検索機能を呼び出したアプリケーションに検索結果を提示する。
ただしカテゴリ取得部112において、カテゴリを決定できない場合がある。その際は、再ランク付けを行わず、類似検索部103の類似検索結果をそのまま提示する。
図2は、本発明の実施形態に係る情報処理装置100に適用可能なハードウェア構成の一例を示すブロック図である。
図2に示すように、情報処理装置100は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードし、ロードしたプログラムを実行することで各種動作を実現する。
また、入力コントローラ205は、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。
ビデオコントローラ206は、ディスプレイ210等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
尚、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上に表示することが可能である。また、CPU201は、ディスプレイ210上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
図3は本発明の実施形態に係わる検索対象となる文書の一例である。例として、ソフトウェア製品のサポートに用いられるFAQ(よくある質問)集を記載しているが、本願発明における選択対象の文書は論文、新聞記事、会社規定、SNS上の投稿などテキストを含むものであれば何でもよく、FAQに限定するものではない。
300a、300bに記載の例では、1つのFAQには、FAQを一意的に識別する“FAQID”、FAQ全体の内容を分類するものとして“製品種別”と“問合せ分類”、さらにサポート内容、例えば前記ソフトウェア製品のユーザの問合せに対してどのFAQを参照したらよいかの目安となる“質問”、その応答を記載した“回答”などのフィールドから構成され、それぞれのフィールドに対応する内容の記載を含む。ここで、FAQIDは後述する学習データにおいて問合せ(クエリ)の文字列と特定のFAQを対応づけるものであり、フィールドの名称として限定するものではない。その他のフィールドについては、名称や個数を限定するものではない
図4は、本発明の実施形態に係わる検索対象文書の分類と文書数の一例である。図3に示した文書の集合が検索対象文書記憶部123に格納されており、また当該検索対象文書記憶部123で、例えば異なるデータベースに保存されるなど管理上分類されている必要はないが、図3の製品種別、問合せ分類などのフィールドにより分類可能な状態である。
本発明の実施例の通り、製品種別、問合せ分類の2つの体系で分類される場合、図4のような2次元の表となるが、任意の次元でよいことはいうまでもない。また、これらの分類は文書の絞込条件に対応するもので、これらをカテゴリと呼ぶことにする。表の各セルに記載の数値は、製品種別、問合せ分類の2つの条件で絞り込んだカテゴリに対応する文書群の文書数であるとする。いずれか一方で絞り込んだ場合でも対応する文書の集合をカテゴリとする。
まず、製品種別で分類する場合を説明する。前記文書の集合は3つのグループ、すなわち個人向け、法人向け、教育機関向けに分類される。これら3つのうち1つ(例えば「個人向け」)を指定することで、縦方向に文書数を合計すると「製品種別=個人向け」で絞り込んだ場合の文書数となる。
一方、問合せ分類で分類する場合を説明する。前記文書の集合は操作手順、トラブル、製品情報、・・・(省略)、ライセンスのグループに分類される。これらのうち1つ(例えば「ライセンス」)を指定することで、横方向に文書数を合計すると「問合せ分類=ライセンス」で絞り込んだ場合の200文書となる。また、更に製品分類で絞り込むと、2つの分類が交差したセルで、「個人向け」が50文書、「法人向け」が100文書、「教育機関向け」が50文書となる。
なお、この例のように「製品種別=個人向け&問合せ分類=ライセンス」で絞り込んだ文書の集合は、「製品種別=個人向け」または「問合せ分類=ライセンス」のいずれかで絞り込んだ文書集合の部分集合となる。本発明では、集合としての包含関係がある場合、「製品種別=個人向け」または「問合せ分類=ライセンス」で絞り込まれた大きな集合を上位カテゴリ、また2条件「製品種別=個人向け&問合せ分類=ライセンス」で絞り込まれた小さな集合を下位カテゴリと呼ぶことがある。文書全体は、最上位のカテゴリとなる。従って、この2次元の例では3つのカテゴリ階層ができることになるが、更に多くの条件で絞り込んだ場合には、それよりも多くの階層から構成されることになる。
なお前記の説明では、「問合せ分類=ライセンス」というように1つの体系は1つの値で絞り込まれていたが、これらの値は図4の表から決まるものではなく、図6で説明する学習データによるものである。例えば「問合せ分類=(製品情報 OR ライセンス)」というようにOR条件を使った学習データがあれば、当該絞込条件は1つのカテゴリとなり、当該カテゴリは「問合せ分類=製品情報」と「問合せ分類=ライセンス」の上位カテゴリとなる。この場合は、図4の表が2次元であっても階層は3次元以上となる場合があることは言うまでもない。
図5は、本発明の実施形態に係る検索時のユーザインタフェースの一例である。本発明の実施形態においてユーザインタフェースは、学習データの収集方法を説明するために例示するものである。
検索条件入力画面501で、ユーザは質問文(検索条件)を入力する(502)。また絞込条件を指定することが可能である。図4で説明したとおり絞込条件により検索対象となる文書集合が絞り込まれ、相対的に精度向上する効果を得ることができる。本例では「製品種別」(503)、「問合せ分類」(506)のフィールドに対して、選択ボタン504を押下することで選択リスト505を表示し、リストから選択させてもよい。ただし絞り込みは必須の条件ではない。キーボードから入力してもよく、本例は入力方法を制限するものではない。検索条件を入力した後、検索するボタン507を押下すると、検索条件を情報処理装置100の検索条件受付部111に送付し、検索結果一覧(不図示)を表示する。
検索結果一覧からユーザが詳細を閲覧したい文書を選択すると、文書閲覧画面511が表示される。また512、513の欄にはユーザが指定した検索条件が表示されている。
当該文書閲覧画面511に表示された文書がユーザにとって求めていた情報であれば、ユーザはボタン515を押下して、情報処理装置100に通知し、学習データ記憶部121に格納させることができる。学習データ記憶部121に格納するデータの形式を図6で説明する。
図6は、学習データ記憶部121のデータ形式の例を詳細に記載したものであり、1行が1つの学習データを表している。例えば図5の文書閲覧画面511でボタン515を押下した場合は、607で示す行の情報が登録される。
学習データは、実際に検索する際に入力した文字列を質問文601、ユーザにとって求めていた情報として正しい文書であるとしたFAQID602(文書を特定する情報)、絞込条件603から構成される。製品種別で絞り込んだ場合は604、製品種別と問合せ分類で絞り込んだ場合は605、絞り込みをせず全ての文書を検索対象とした場合は606のように絞込条件は空白になる。
また、図6は学習データだけを示しているためFAQID602には必ず値があるが、ボタン515を押下しなかった(正解を提示されなかった)場合は空白として、学習データとはならない検索ログを同じテーブルに登録してもよい。その場合でもユーザが頻繁に問い合わせる情報はいかなる絞込条件が指定されているか、などカテゴリに関する情報を収集することができる。
説明を文書閲覧画面511に戻す。ボタン515を押下するか否かにかかわらず検索ログを情報処理装置100に通知し格納させてもよい。
これらの画面はあくまで例であって、例えば検索結果一覧画面において複数の検索結果それぞれをチェック可能なユーザインタフェースとしておき、文書閲覧画面511で詳細を確認しなくても学習データを指定できるようにしてもよい。
図7は、本発明の実施形態に係るカテゴリに対して学習モデルを生成するか否かを判定するための情報の一例である。図6で説明した学習データ記憶部121を集計して作成した表を示しており、文書・学習状況記憶部700に格納されている。
本表に示された数と図8に示された学習実行範囲802で各カテゴリを評価し、全てのカテゴリを学習するのではなく運用上学習効果が高いと思われるカテゴリに絞って学習をすることで学習時間を短縮することが目的である。優先順位をつけた後、学習データの件数から学習時間を推定し、一定の時間内(例えば深夜0時から朝6時までの6時間)で学習実行可能なカテゴリのみを学習することが考えられる。
図7の1行が、最左に示すカテゴリ(絞込条件に対応)を示し、そのカテゴリに対して集計した値が項目毎に右に並ぶ。この数値を図8の学習実行条件記憶部122で示された各閾値と比較して、当該カテゴリについて学習すべきか否かを判断する。なお、図示した表は一部省略があり、全てのカテゴリに関する情報を記載しているわけではないため、以降の説明における数値は、本表には記載されていない項目も計算に利用している。
まず「製品種別=法人向け」で指定されるカテゴリを例として説明する。同カテゴリ(および下位カテゴリ)に含まれる文書件数は1,500件であり、図8の条件、200~5,000の範囲であるため、学習した方がよい旨の「○」を付与する。同様に検索回数(同カテゴリおよび下位のカテゴリの合計)は20,000回であり「○」を付与する。
検索回数のカバー率は、同カテゴリを「学習モデルを生成しなかった場合」どの程度の検索ログに含まれる検索が「学習していない状態で実行されるか」の割合を示す数値である。すなわち同カテゴリが学習していなくても下位カテゴリ(例えば704)などでさらに絞り込めば、そこには対応する学習モデルがあるため、精度の高い検索が可能である。しかしながら下位カテゴリに絞り込まず「製品別種別=法人向け」で検索すれば学習モデルが存在しないため精度が下がる。その検索回数の割合が図8「検索回数のカバー率」(30%)を超えるようであれば、下位カテゴリが全て学習されていても同カテゴリも学習した方がよいと判断し「○」を付与する。次に、学習データ量、学習データ量のカバー率も同様に判断する。
最後に「精度(平均順位)であるが、これは検索した際に、検索結果一覧の何位に検索ユーザが望む情報が表示されたかに基づく情報である。すなわちユーザが図5のボタン515を押下した際に、その文書は何位の文書であったかを図6の学習データ記憶部121の不図示の欄に記憶しておいてもよい。すなわち前回の学習以降、どれだけ学習効果が検索結果の順位として現れていたか、に基づき新たな学習をするか否かを学習モデル毎に判断することになる。
例えば、未学習の状態でも正解が20位以内に入るような703~705は学習の優先順位を下げてもよいため「○」を付与しない。一方で701のように未学習時は平均24位であるが、学習により平均して13位も向上するのであれば、学習効果があると見なして「○」を付与する、などの判断を行う。
同欄に「-」がある場合には、前回学習時はしていないカテゴリであるため学習後の精度評価はない。この場合の扱いは設計事項であり様々な実装があるが、例えば「未学習時」の順位と「学習時の向上差異」を2つ評価することで、付与する「○」の数を0~2と3段階にする方法が可能である。
また、最新の学習データのうち、一定の割合を仮の学習データ、残りを評価用データとして仮の学習データで学習させ、評価用データで学習効果があるか否かを実際に評価してもよい。ただしそもそも本発明の目的が学習を効率化させることにあるため、評価のためだけに学習することはその趣旨に反することになる。そこで、上記評価のうち精度以外の評価結果として、複数のカテゴリが同じ優先順位となり、そのうちの一部のカテゴリだけ選択しなければならない場合にのみ精度の評価を行うということにしてもよい。
もう1つ学習するか否かを判断する例を説明する。702の行の「問合せ分類=ライセンス」に対応するカテゴリである。同カテゴリでは検索回数のカバー率が0%である。これは下位カテゴリ(703~705)の学習モデルが生成された場合の数値である。すなわち検索回数は10,000件あるもののこれらは全て下位カテゴリに対応し、「問合せ分類=ライセンス」のみの絞り込みで検索されるケースはない。従って、同カテゴリは学習しなくてもよいとして「○」が付与されない。ところが、下位カテゴリ(703~705)は例えば文書件数が少なく、また未学習時でも順位が良いため他の評価で「○」が付与されず結果的に学習されない可能性がある。その場合は、702の行の「問合せ分類=ライセンス」のカバー率を改めて評価し、下位カテゴリが全て学習されないのであればカバー率100%となり、この欄に「○」を付与して優先順位を再評価する必要がある。この優先順位の再評価は、処理は図9のフローチャートのステップS911で判断されるものである。つまり評価に用いた図7の数値に変更があった場合には、再評価を行うことがあるものである。
また図8は、文書件数、検索回数、学習データ件数など件数、回数を記載しているが、全体の数の中の割合であってもよい。例えば、全体でも学習データが千件しかないような運用開始直後では、各カテゴリの学習データ数は何れも条件を満たさない。その場合は割合で計算してもよい。また件数、回数と割合を合わせて用いてることで特定のカテゴリのデータの割合が多くでも、絶対数としての閾値以上は必要であるものとして、全く学習を行わない場合もあってもよい。
いずれにしても本発明の実施の形態を示す1つの例に過ぎず、様々な情報を組み合わせて判断してよい。また、図7では条件を満たした場合に「○」を付与しその数で学習すべきか否か判定するように図示しているが、各項目に重み803を付与する、あるいは計算式を用意してスコアを算出する、としてもよい。その場合、例えば学習データが1万件の場合を最高のスコアとして、図8の802における境界(最低5,000、最高2万)に近づくにつれスコアが悪くなるようにしてもよい。
以上で、図7、図8の説明を完了する。
図9は、本発明の実施形態に係る学習時の処理を説明するフローチャートの一例である。学習データ等に基づき優先順位の高いカテゴリに対して学習を実行する。図9のフローチャートの各ステップは、情報処理装置100上のCPU201で実行される。
ステップS901においては、学習データ記憶部121から学習データを読み込む。ここで学習データではない(正解となるFAQIDが指定されていないもの)検索ログも含めて読み込んでもよい(検索回数等確認のため)。
ステップS902においては、ステップS901で読み込んだ学習データ(検索ログを含む)を用いて、文書・学習状況記憶部700で説明した表を生成する。ただし「○の数」の欄は、以降のステップでの評価に従って付与されていく。また精度(平均順位)の欄も、後述する図11で実際に学習する場合には、この時点では空欄である。
ステップS903からステップS906は、ステップS902で説明した前記表に登録されたカテゴリに対応する行の全てに繰り返し実行される処理である。この時点では、全く評価していないため学習データ(検索ログ)に1件でも登録がある全てのカテゴリが対象となる。
ステップS904においては、前記表の中から1つのカテゴリを取り出して着目するカテゴリとし、ステップS905において、当該カテゴリに対応する評価を実行(図10で後述)する。評価に際しては、図8で説明した学習実行条件記憶部122を参照する。
ステップS907においては、評価したカテゴリに付与された「○」の数(あるいは図7で説明したスコアなど)により実際に学習するカテゴリを選択する。
ステップS908においては、ステップS907のカテゴリ選択により、図7の情報に変更があるか否かを確認する。例えば、703~705に対応するカテゴリの学習をしないとされた場合であれば、3カテゴリ共通の上位カテゴリである702に対応するカテゴリの検索回数カバー率、学習データカバー率が変更される。即ち下位カテゴリのいずれも学習しないので、両カバー率は100%となり、上位カテゴリ702の学習実行優先順位は変わることになる。優先順位が変わった(YES)場合は、ステップS907に戻り、改めて学習カテゴリを選択する。変わらない(NO)場合には、ステップS909に進む。
ステップS909は、選択されたカテゴリに対する学習モデルを生成し、図12で後述するように学習データを格納する。
図10は、本発明の実施形態に係る学習時に1つのカテゴリ評価処理を説明するフローチャートの一例である。図10のフローチャートの各ステップは、情報処理装置100上のCPU201で実行される。図9において評価するためのカテゴリは指定されている。
ステップS1001においては、図7で対応する行に記載された検索件数・全体の値が、図8の文書件数で指定された学習実行範囲802の範囲にあるか否かを判定する。範囲にある場合にはステップS1002に進み「○」を付与する。範囲にない場合は、ステップS1003に進む。
ステップS1003、ステップS1004においては、検索回数の判定に応じて「○」を付与する。
ステップS1005、ステップS1006においては、検索件数・カバー率の判定に応じて「○」を付与する。
ステップS1007、ステップS1008においては、学習データ量・全体の判定に応じて「○」を付与する。
ステップS1009、ステップS1010においては、学習データ量・カバー率の判定に応じて「○」を付与する。
ステップS1011においては、前ステップまでで付与された「○」の数(あるいは図7、図8で説明したスコアなど)により、学習するカテゴリの優先順位を決める。
ステップS1012においては、各カテゴリの学習にかかる時間を見積もる。具体的には、図7の学習データ量から学習時間を推定することが可能である。この推定は、計算式として本ステップに組み込まれていてもよいし、学習データ量に応じた推定時間を人手で表などにしておき、それを参照してもよい。時間を推定した後、学習に許される時間、例えば深夜0時から朝の6時までの6時間で学習するように指定(不図示の設定ファイル等)されていたとすると、優先順位が高いカテゴリから累積で6時間を超えるカテゴリ以降は、仮に学習対象ではないとされる。
ステップS1013においては、精度評価を実行するか否か、実行するとすればどのカテゴリに対して実行するかを決定する。例えば、前述の「○」の数によっては、精度評価の結果にかかわらず学習するか否かの判断が変わらないカテゴリがある。一方で精度評価によっては、前項で仮に決めた学習対象が入れ替わる場合もある。その場合は、評価が入れ替わる可能性がある最低限のカテゴリについて評価をすればよい。評価用の学習自体時間がかかるため、その時間も考慮し、評価用に学習するカテゴリを決定する。精度評価するカテゴリがある場合にはステップS1014に進む。ない場合には本フローチャートの処理を完了して、図9のフローチャートに戻る。ステップS1014の説明は図11を用いて後述する。
ステップS1015、ステップS1016においては、精度(平均順位)の未学習時の順位に応じて「○」を付与する。
ステップS1017、ステップS1018においては、精度(平均順位)の学習時向上差異に応じて「○」を付与する。
図11は、本発明の実施形態に係る学習時の精度評価の処理を説明するフローチャートの一例である。図11のフローチャートの各ステップは、情報処理装置100上のCPU201で実行される。
ステップS1101においては、最新の学習データ(学習データ記憶部121)で学習するか否かを判断する。この判定は、例えば人手により設定するものであって、評価としての学習を実行するか否かを事前に決定されたものであってもよい。判定式を用意して情報処理装置100が判断するものであってもよい。判定式の例としては、評価用の学習に要する時間を学習データの量から推定し、それが評価完了後の実際の学習時間とあわせて学習の可能時間(例えば前述の6時間)に処理可能かどうかで判定してもよい。学習すると判定した場合にはステップS1101に進む。しないと判定した場合にはステップS1105に進む。
ステップS1102においては、全ての学習データのうち、一部を評価用の学習モデルを生成する目的、他の一部を当該学習モデルの効果を評価するための目的、として使用するために一定の基準で分ける。例えばランダムに各々50%に分けてもよい。また評価に利用できる時間によって学習用、評価用のデータを減らしてもよい。
ステップS1103においては、前記学習用の目的に分けた学習データを用いて、着目中のカテゴリに対する評価用の学習モデルを生成する。
ステップS1104においては、前記評価用の目的に分けた学習データを用いて、着目中のカテゴリを実際に検索し、類似検索部103と再ランク付け部113の各々の結果に含まれる正解の順位を取得し評価する。これらの評価結果は、図7の精度(平均順位)の未学習時、学習時向上差異の欄に記載していく。
ステップS1105においては、図7で既存の学習データに基づき、最新の学習モデルを使用しても前回の学習モデルと順位が向上する傾向は大きく変動しないと推定して、精度評価結果とするものである。すなわち精度評価をするものの実際に評価用の学習処理や検索・再ランク付けをしての評価処理はせず、過去の実績を利用する。なお実際の運用時には、検索条件が入力されると類似検索部103で検索した結果に対して(学習モデルがある場合には)再ランク付け部113で最終的な検索結果をランク付けするため、1度の検索で「未学習時」「学習時」の順位が取得できる。以上の処理で図11のフローチャートを完了し、図10の処理に戻る。
なおフローチャートでは明記していないが、学習データは必ずしも全て利用する必要はない。例えば、本発明の情報処理装置100を長期間運用している場合には、数年前の学習データも残っている。しかしながらユーザの検索条件や登録されている文書が更新されることにより、1年以内のものに限り学習データを本発明の実施形態に使用する、としてもよい。以上により図11の説明を完了する。
図12は、本発明の実施形態に係る学習モデルとカテゴリを対応づけて記憶する記憶部の一例である。学習モデル1202は後述する検索処理の再ランク付け部113において使用するが、検索条件で指定された絞込条件と対応づけるため学習済みカテゴリテーブル1201も記憶する(他の記憶部でもよい)。
なお絞込条件とカテゴリの対応付けにおいて、絞込条件に記載されたフィールド名、条件の値は順番が入れ替わってもよいものとする。すなわち、「製品種別=個人向け&問合せ分類=(製品情報ORライセンス)」に対応するカテゴリの学習モデルは、検索条件の絞り込みにおいて「製品種別」と「問合せ分類」の指定順、また問合せ分類のORの値「製品情報」と「ライセンス」の指定順に依存せず(順番が違っていても)条件として同じであれば、対応付けができるものとする。
以上で、本発明における学習モデルを生成する処理の実施形態について説明を完了する。次に、生成された学習モデルを用いた検索処理について図13、図14を用いて説明する。
図13は、本発明の実施形態に係る検索処理を説明するフローチャートの一例である。図14は、本発明の実施形態に係る検索時にカテゴリを選択する処理を説明するフローチャートの一例である。図13、図14のフローチャートの各ステップは、情報処理装置100上のCPU201で実行される。
ステップS1301においては、図5のユーザインタフェースを通してユーザから、あるいは他のアプリケーションから検索条件を受け付ける。図5で説明したように、ユーザが指定する検索条件は質問文と絞込条件が含まれる。ここで絞込条件がない場合は、文書全体の集合を示す「全文書」というカテゴリが対応するものと仮定してもよい。
ステップS1302においては、ステップS1301で受け付けた検索条件から絞込条件の部分を抽出し、カテゴリを特定する。図12でも説明したように、検索条件の絞り込みにおいて記載の順番は本質的ではないので考慮せず、後述の処理で実質的な絞り込みが同一の文書群を指すのであれば同一のカテゴリに対応し、従って図12の対応するカテゴリの学習モデル1202を取得できるものとする。学習モデルがない場合であっても、絞込条件そのものがカテゴリに対応している。前記カテゴリを「起点カテゴリ」とする。すなわち、検索ユーザが明示的に条件としたカテゴリである。
ステップS1303は、検索対象とするカテゴリを決定する。詳細は図14のフローチャートを用いて説明する。
ステップS1401においては、起点カテゴリに対応する学習モデルがあるか否か、図12を参照して判定する。学習モデルがある(YES)場合には、ステップS1405に進み、起点カテゴリの学習モデル、すなわちユーザが指定した絞り込みに適した学習モデルを利用して再ランク付けするよう指定する。学習モデルがない(NO)場合には、ステップS1402に進む。
ステップS1402においては、起点カテゴリの上位に当たるカテゴリのうち、学習モデルがあるものを全てリストアップする。
上位カテゴリで学習モデルがない場合、検索条件に含まれる絞込条件で結局は絞り込んで検索し、その後の再ランク付け部113でのランキング調整をしないため、検索結果は同じ結果となる。学習モデルがある場合には、ユーザの絞り込み条件で、同じ文書群を検索した後、上位カテゴリの学習モデルで再ランク付けされるため、学習効果があり優先的にすべきと推定される。従って、上位カテゴリのうち学習モデルがあるものだけをリストアップすればよい。
ステップS1403においては、上位カテゴリのうち、図7の精度(平均順位)を参照して、もっとも精度が高いカテゴリを選択する。また複数のカテゴリで優劣がつかない場合には、最も文書数が少ないものを選択してもよい。
ステップS1404においては、選択されたカテゴリがあるか否かを判定する。例えば、ステップS1402で、そもそも学習モデルが生成されている上位カテゴリが1つもなければ選択されたカテゴリはない場合が考えら得られる。また上位カテゴリに対応する学習モデルがあったとしても、起点カテゴリよりも広い範囲に対する文書群を対象にして学習モデルを生成しているため、起点カテゴリに対応する絞込条件で絞り込んだ文書群に対しては、学習効果がなく、却って精度が下がる可能性もある。その場合は、上位カテゴリを選択しない。上位カテゴリがない(NO)場合には、ステップS1405に進み、起点カテゴリを検索対象とする。ただし学習モデルは存在しない(この場合の処理は図13のステップS1305で説明)。選択された上位カテゴリがある(YES)場合には、ステップS1406に進み、選択された上位カテゴリの学習のデルを用いて再ランク付けすることと決定する。ここで図14のフローチャートの説明を完了し、図3のステップS1303の処理が完了したところに話を戻す。
ステップS1304では、ステップS1301で受け付けた絞込条件で、類似検索部103により検索対象文書記憶部123を検索する。例えば学習モデルとして上位カテゴリに対応するものを使用するにしても、類似検索部103では、絞込条件が一番強い起点カテゴリで絞り込んで少ない文書の中から検索したほうが最も精度がよいためである。後のステップで、学習モデルを用いた再ランク付けするにしても類似検索で精度が高い方がよい。
ステップS1305においては学習モデルが存在するか否かを判定する。即ち図14において起点カテゴリで再ランク付けすると決定されている場合には起点カテゴリの、また上位カテゴリで再ランク付けすると決定されている場合は、当該上位カテゴリの対応する学習モデルを学習モデル記憶部124から探す。
ステップS1306においては、ステップS1304において類似検索で取得した検索結果に対して再ランク付けを実施する。
ステップS1307においては、ステップS1304の類似検索結果、また再ランク付けが行われている場合にはステップS1306における再ランク付けの結果を呼び出し側に提示する。これにより図13、図14のフローチャートの処理の説明を完了する。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、いくつかの実施形態について示したが、本発明は、例えば、システム、装置、方法、コンピュータプログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるコンピュータプログラムは、図9~図11、図13、図14に示すフローチャートの処理方法をコンピュータが実行可能なコンピュータプログラムであり、本発明の記憶媒体は図9~図11、図13、図14の処理方法をコンピュータが実行可能なコンピュータプログラムが記憶されている。なお、本発明におけるコンピュータプログラムは図9~図11、図13、図14の各装置の処理方法ごとのコンピュータプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するコンピュータプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたコンピュータプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたコンピュータプログラム自体が本発明の新規な機能を実現することになり、そのコンピュータプログラムを記憶した記録媒体は本発明を構成することになる。
コンピュータプログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したコンピュータプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのコンピュータプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたコンピュータプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのコンピュータプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にコンピュータプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのコンピュータプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのコンピュータプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。