(57)【要約】      （修正有）【課題】情報検索における順位学習等において、学習モデルを効率的に作成できる技術を提供する。【解決手段】学習カテゴリ決定部１０１は，学習データ記憶部１２１に記憶された学習データと検索対象文書記憶部１２３に格納されている検索対象文書の情報から、学習モデルを生成する文書カテゴリを決定する。どのカテゴリを学習対象とするか評価するための基準は学習実行条件記憶部１２２に設定されている。評価する対象の各カテゴリに対応づけられる情報を文書・学習状況記憶部７００に格納する。学習モデル生成部１０２は，学習カテゴリ決定部１０１で決定した学習対象の各カテゴリに対して学習モデルを生成し、学習モデル記憶部１２４に学習モデルを格納する。学習に際して、学習モデル生成部１０２は類似検索部１０３を呼び出して検索対象文書記憶部１２３を検索する。検索条件受付部１１１は、検索処理を利用するユーザから検索条件を受け付ける。【選択図】図１
2020161011.tif 000002
【特許請求の範囲】
【請求項１】
分類項目を持つデータを用いて学習モデルを作成する情報処理装置であって、
前記分類項目により決定されるカテゴリごとに、前記データの件数を取得する取得手段と、
前記カテゴリごとに取得した前記データの件数に基づいて、学習モデルを作成する１または複数のカテゴリを決定する決定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記決定手段は、前記データの件数が所定の範囲に含まれるカテゴリを、学習モデルを作成するカテゴリと決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記カテゴリが包含する他のカテゴリが存在する場合に、前記他のカテゴリの件数を含めて取得することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記決定手段は、前記他のカテゴリの件数を含む前記カテゴリの件数と、前記他のカテゴリの件数を含まない前記カテゴリのみの件数との対比に基づいて、学習モデルを作成する１または複数のカテゴリを決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定したカテゴリに対し、学習モデルを作成する作成手段と、
前記作成した学習モデルによる学習効果を評価する評価手段とを備え、
前記決定手段は、前記評価した学習効果に基づいて、前記カテゴリの学習モデルを維持するか否かを決定することを特徴とする請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
前記データは、文書検索のための検索テキストと正解文書の識別情報とを含む学習データであることを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記データには、さらに、文書検索のための検索テキストを含む検索ログデータを含むことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記学習モデルは、検索された文書に対して再順位付けを行う順位学習モデルであることを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
分類項目を持つデータを用いて学習モデルを作成する情報処理装置の制御方法であって、
取得手段が、前記分類項目により決定されるカテゴリごとに、前記データの件数を取得する取得ステップと、
決定手段が、前記カテゴリごとに取得した前記データの件数に基づいて、学習モデルを作成する１または複数のカテゴリを決定する決定手段と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１０】
分類項目を持つデータを用いて学習モデルを作成する情報処理装置において実行可能なプログラムであって、
前記情報処理装置を、
前記分類項目により決定されるカテゴリごとに、前記データの件数を取得する取得手段と、
前記カテゴリごとに取得した前記データの件数に基づいて、学習モデルを作成する１または複数のカテゴリを決定する決定手段と
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索対象となる文書群の中から指定された検索条件に適切と思われる文書を提示するための文書検索の技術に関する。
【背景技術】
【０００２】
従来からユーザに対して適切な検索結果を提示するため、検索条件と文書群に含まれる各文書に含まれるターム（形態素解析、Ｎ−Ｇｒａｍなど一定の基準で切り出した文字列）の関連性を統計値として算出する技術がある。これらの技術を類似検索などと呼ぶ（以下、当該技術を本発明の説明において、統一的に類似検索と呼ぶこととし、本願発明における後述の順位学習による検索とは区別することにする）。
【０００３】
また、学習データと検索対象となる文書群が類似する場合の特徴量を機械学習によりモデル化し、新たな検索条件が指定された場合に、当該学習モデルに基づきランキング調整をすることで、類似検索の精度を向上させる順位学習の技術がある。
【０００４】
順位学習には大量の学習データが必要であるが、学習データの収集は困難である。類似検索をシステムとして運用開始した後にユーザの検索ログから学習データを収集することも考えられるが、検索結果の評価にはユーザの負荷がかかることもあり、十分な量のログ収集が可能とは言い切れない。また運用開始前には、開発者がテスト用に作成した学習データなどに限定される。
【０００５】
特許文献１は、予め用意された回答（いわばＦＡＱの文書群）に対して、ユーザからの問い合わせに対して最も類似した質問（学習データの質問文）を見つけ、対応する回答を返す技術に対して、質問文が少ない場合でもトピック推定精度を高める技術を提供している。
【０００６】
具体的には、学習データの質問文に現れる単語に対して、対応する回答内の単語に置換することによって、学習データの質問文を拡張する、すなわち学習データの件数を増やしている。また拡充した質問文のうち不自然な質問文を除外するため、確率言語モデルを用いて質問文の存在確率を計算し、存在確率がある閾値を超える場合のみ学習データとして用いるとしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−３７５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術においては、確率言語モデルを用いて拡充された質問文が適切であるか否かを判定しているが、置換された単語はあくまで予め用意された回答に含まれるものであり、専門用語やある組織特有の用語が使用されている可能性がある。その場合、確率言語モデルでは事例が不足していて、質問文が適切に拡充されない場合も発生する。
【０００９】
さらに特許文献１の技術においては、学習データとして用いる質問文を拡充させることで学習効果を高めること目的である。しかしながら学習データの件数が増加すると学習に要する計算時間が膨大になり、実用的ではなくなってしまうことある。
【００１０】
本発明の目的は、情報検索における順位学習等において、学習モデルを効率的に作成することを可能とする技術を提供することである。
【課題を解決するための手段】
【００１１】
本発明は、分類項目を持つデータを用いて学習モデルを作成する情報処理装置であって、
前記分類項目により決定されるカテゴリごとに、前記データの件数を取得する取得手段と、前記カテゴリごとに取得した前記データの件数に基づいて、学習モデルを作成する１または複数のカテゴリを決定する決定手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明により、情報検索における順位学習等において、学習モデルを効率的に作成することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る機能構成の一例を示す図である。
【図２】本発明の実施形態に係る情報処理装置１００に適用可能なハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施形態に係わる類似検索対象となる文書の一例である。
【図４】本発明の実施形態に係わる検索対象文書の分類と文書数の一例である。
【図５】本発明の実施形態に係る検索時のユーザインタフェースの一例である。
【図６】本発明の実施形態に係わる学習データの一例である。
【図７】本発明の実施形態に係るカテゴリに対して学習モデルを生成するか否かを判定するための情報の一例である。
【図８】本発明の実施形態に係るカテゴリに対して学習モデルを生成するか否かを判定する基準の一例である。
【図９】本発明の実施形態に係る学習時の処理を説明するフローチャートの一例である。
【図１０】本発明の実施形態に係る学習時に１つのカテゴリ評価処理を説明するフローチャートの一例である。
【図１１】本発明の実施形態に係る学習時の精度評価の処理を説明するフローチャートの一例である。
【図１２】本発明の実施形態に係る学習モデルとカテゴリを対応づけて記憶する記憶部の一例である。
【図１３】本発明の実施形態に係る検索処理を説明するフローチャートの一例である。
【図１４】本発明の実施形態に係る検索時にカテゴリを選択する処理を説明するフローチャートの一例である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１５】
本発明においては機械学習により従来型の文書の検索結果を、機械学習を利用して検索順位を改めて指定し直す。これを順位学習などと呼ぶ。特に本発明では説明の便宜上、事前に学習モデルを決定する処理を“学習モデルの生成”、実際にユーザなどの検索条件に基づく検索結果を、生成された学習モデルを用いて順位を指定し直す処理を“再ランク付け”と呼ぶことにする。
【００１６】
図１は、本発明の実施形態に係る機能構成の一例を示す図である。本機能構成は、大きく学習時の機能と検索時の機能に分けて考えることができる。
【００１７】
学習カテゴリ決定部１０１は、学習データ記憶部１２１に記憶された学習データ（検索条件や正解の選択などのユーザログ）と検索対象文書記憶部１２３に格納されている検索対象文書の情報から、学習モデルを生成する文書カテゴリを決定する機能部である。何れのカテゴリを学習対象とするか評価するための基準は学習実行条件記憶部１２２に設定されており、学習カテゴリ決定部１０１から参照される。また評価する対象の各カテゴリに対応づけられる情報を、文書・学習状況記憶部７００に格納する。
【００１８】
学習モデル生成部１０２は、学習カテゴリ決定部１０１で決定した学習対象の各カテゴリに対して学習モデルを生成し、学習モデル記憶部１２４に学習モデルを格納する。学習に際して、学習モデル生成部１０２は類似検索部１０３を呼び出して検索対象文書記憶部１２３を検索する。
【００１９】
検索条件受付部１１１は、検索処理を利用するユーザからユーザインタフェースを介して、あるいは他のアプリケーションから検索条件を受け付けるための機能部である。
【００２０】
カテゴリ取得部１１２は、検索条件受付部１１１で受け付けた検索条件、学習モデル記憶部１２４、文書・学習状況記憶部７００を参照していずれのカテゴリの学習モデルを利用して再ランク付けを実行するかを決定する。
【００２１】
再ランク付け部１１３は、検索条件受付部１１１で受け付けた検索条件を類似検索部１０３に渡して、類似検索部１０３はその条件に基づいて検索対象文書記憶部１２３に対して類似検索を実行する。さらに再ランク付け部１１３は学習モデル記憶部１２４を参照し、決定された前記カテゴリに対応する学習モデルを用いて、前記検索結果に対して再ランク付けを行う。
【００２２】
結果提示部１１４は、検索結果をユーザインタフェースあるいは本発明の検索機能を呼び出したアプリケーションに検索結果を提示する。
【００２３】
ただしカテゴリ取得部１１２において、カテゴリを決定できない場合がある。その際は、再ランク付けを行わず、類似検索部１０３の類似検索結果をそのまま提示する。
【００２４】
図２は、本発明の実施形態に係る情報処理装置１００に適用可能なハードウェア構成の一例を示すブロック図である。
【００２５】
図２に示すように、情報処理装置１００は、システムバス２０４を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、入力コントローラ２０５、ビデオコントローラ２０６、メモリコントローラ２０７、通信Ｉ／Ｆコントローラ２０８等が接続された構成を採る。
【００２６】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２７】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、各サーバあるいは各ＰＣが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
【００２８】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０３あるいは外部メモリ２１１からＲＡＭ２０２にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【００２９】
また、入力コントローラ２０５は、キーボード（ＫＢ）２０９や不図示のマウス等のポインティングデバイス等からの入力を制御する。
【００３０】
ビデオコントローラ２０６は、ディスプレイ２１０等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
【００３１】
メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、あるいは、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）カードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３２】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いた通信等が可能である。
【００３３】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上に表示することが可能である。また、ＣＰＵ２０１は、ディスプレイ２１０上のマウスカーソル（図示しない）等によるユーザ指示を可能とする。
【００３４】
本発明を実現するための後述する各種プログラムは、外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３５】
図３は本発明の実施形態に係わる検索対象となる文書の一例である。例として、ソフトウェア製品のサポートに用いられるＦＡＱ（よくある質問）集を記載しているが、本願発明における選択対象の文書は論文、新聞記事、会社規定、ＳＮＳ上の投稿などテキストを含むものであれば何でもよく、ＦＡＱに限定するものではない。
【００３６】
３００ａ、３００ｂに記載の例では、１つのＦＡＱには、ＦＡＱを一意的に識別する“ＦＡＱＩＤ”、ＦＡＱ全体の内容を分類するものとして“製品種別”と“問合せ分類”、さらにサポート内容、例えば前記ソフトウェア製品のユーザの問合せに対してどのＦＡＱを参照したらよいかの目安となる“質問”、その応答を記載した“回答”などのフィールドから構成され、それぞれのフィールドに対応する内容の記載を含む。ここで、ＦＡＱＩＤは後述する学習データにおいて問合せ（クエリ）の文字列と特定のＦＡＱを対応づけるものであり、フィールドの名称として限定するものではない。その他のフィールドについては、名称や個数を限定するものではない
【００３７】
図４は、本発明の実施形態に係わる検索対象文書の分類と文書数の一例である。図３に示した文書の集合が検索対象文書記憶部１２３に格納されており、また当該検索対象文書記憶部１２３で、例えば異なるデータベースに保存されるなど管理上分類されている必要はないが、図３の製品種別、問合せ分類などのフィールドにより分類可能な状態である。
【００３８】
本発明の実施例の通り、製品種別、問合せ分類の２つの体系で分類される場合、図４のような２次元の表となるが、任意の次元でよいことはいうまでもない。また、これらの分類は文書の絞込条件に対応するもので、これらをカテゴリと呼ぶことにする。表の各セルに記載の数値は、製品種別、問合せ分類の２つの条件で絞り込んだカテゴリに対応する文書群の文書数であるとする。いずれか一方で絞り込んだ場合でも対応する文書の集合をカテゴリとする。
【００３９】
まず、製品種別で分類する場合を説明する。前記文書の集合は３つのグループ、すなわち個人向け、法人向け、教育機関向けに分類される。これら３つのうち１つ（例えば「個人向け」）を指定することで、縦方向に文書数を合計すると「製品種別＝個人向け」で絞り込んだ場合の文書数となる。
【００４０】
一方、問合せ分類で分類する場合を説明する。前記文書の集合は操作手順、トラブル、製品情報、・・・（省略）、ライセンスのグループに分類される。これらのうち１つ（例えば「ライセンス」）を指定することで、横方向に文書数を合計すると「問合せ分類＝ライセンス」で絞り込んだ場合の２００文書となる。また、更に製品分類で絞り込むと、２つの分類が交差したセルで、「個人向け」が５０文書、「法人向け」が１００文書、「教育機関向け」が５０文書となる。
【００４１】
なお、この例のように「製品種別＝個人向け＆問合せ分類＝ライセンス」で絞り込んだ文書の集合は、「製品種別＝個人向け」または「問合せ分類＝ライセンス」のいずれかで絞り込んだ文書集合の部分集合となる。本発明では、集合としての包含関係がある場合、「製品種別＝個人向け」または「問合せ分類＝ライセンス」で絞り込まれた大きな集合を上位カテゴリ、また２条件「製品種別＝個人向け＆問合せ分類＝ライセンス」で絞り込まれた小さな集合を下位カテゴリと呼ぶことがある。文書全体は、最上位のカテゴリとなる。従って、この２次元の例では３つのカテゴリ階層ができることになるが、更に多くの条件で絞り込んだ場合には、それよりも多くの階層から構成されることになる。
【００４２】
なお前記の説明では、「問合せ分類＝ライセンス」というように１つの体系は１つの値で絞り込まれていたが、これらの値は図４の表から決まるものではなく、図６で説明する学習データによるものである。例えば「問合せ分類＝（製品情報  ＯＲ  ライセンス）」というようにＯＲ条件を使った学習データがあれば、当該絞込条件は１つのカテゴリとなり、当該カテゴリは「問合せ分類＝製品情報」と「問合せ分類＝ライセンス」の上位カテゴリとなる。この場合は、図４の表が２次元であっても階層は３次元以上となる場合があることは言うまでもない。
【００４３】
図５は、本発明の実施形態に係る検索時のユーザインタフェースの一例である。本発明の実施形態においてユーザインタフェースは、学習データの収集方法を説明するために例示するものである。
【００４４】
検索条件入力画面５０１で、ユーザは質問文（検索条件）を入力する（５０２）。また絞込条件を指定することが可能である。図４で説明したとおり絞込条件により検索対象となる文書集合が絞り込まれ、相対的に精度向上する効果を得ることができる。本例では「製品種別」（５０３）、「問合せ分類」（５０６）のフィールドに対して、選択ボタン５０４を押下することで選択リスト５０５を表示し、リストから選択させてもよい。ただし絞り込みは必須の条件ではない。キーボードから入力してもよく、本例は入力方法を制限するものではない。検索条件を入力した後、検索するボタン５０７を押下すると、検索条件を情報処理装置１００の検索条件受付部１１１に送付し、検索結果一覧（不図示）を表示する。
【００４５】
検索結果一覧からユーザが詳細を閲覧したい文書を選択すると、文書閲覧画面５１１が表示される。また５１２、５１３の欄にはユーザが指定した検索条件が表示されている。
【００４６】
当該文書閲覧画面５１１に表示された文書がユーザにとって求めていた情報であれば、ユーザはボタン５１５を押下して、情報処理装置１００に通知し、学習データ記憶部１２１に格納させることができる。学習データ記憶部１２１に格納するデータの形式を図６で説明する。
【００４７】
図６は、学習データ記憶部１２１のデータ形式の例を詳細に記載したものであり、１行が１つの学習データを表している。例えば図５の文書閲覧画面５１１でボタン５１５を押下した場合は、６０７で示す行の情報が登録される。
【００４８】
学習データは、実際に検索する際に入力した文字列を質問文６０１、ユーザにとって求めていた情報として正しい文書であるとしたＦＡＱＩＤ６０２（文書を特定する情報）、絞込条件６０３から構成される。製品種別で絞り込んだ場合は６０４、製品種別と問合せ分類で絞り込んだ場合は６０５、絞り込みをせず全ての文書を検索対象とした場合は６０６のように絞込条件は空白になる。
【００４９】
また、図６は学習データだけを示しているためＦＡＱＩＤ６０２には必ず値があるが、ボタン５１５を押下しなかった（正解を提示されなかった）場合は空白として、学習データとはならない検索ログを同じテーブルに登録してもよい。その場合でもユーザが頻繁に問い合わせる情報はいかなる絞込条件が指定されているか、などカテゴリに関する情報を収集することができる。
【００５０】
説明を文書閲覧画面５１１に戻す。ボタン５１５を押下するか否かにかかわらず検索ログを情報処理装置１００に通知し格納させてもよい。
【００５１】
これらの画面はあくまで例であって、例えば検索結果一覧画面において複数の検索結果それぞれをチェック可能なユーザインタフェースとしておき、文書閲覧画面５１１で詳細を確認しなくても学習データを指定できるようにしてもよい。
【００５２】
図７は、本発明の実施形態に係るカテゴリに対して学習モデルを生成するか否かを判定するための情報の一例である。図６で説明した学習データ記憶部１２１を集計して作成した表を示しており、文書・学習状況記憶部７００に格納されている。
【００５３】
本表に示された数と図８に示された学習実行範囲８０２で各カテゴリを評価し、全てのカテゴリを学習するのではなく運用上学習効果が高いと思われるカテゴリに絞って学習をすることで学習時間を短縮することが目的である。優先順位をつけた後、学習データの件数から学習時間を推定し、一定の時間内（例えば深夜０時から朝６時までの６時間）で学習実行可能なカテゴリのみを学習することが考えられる。
【００５４】
図７の１行が、最左に示すカテゴリ（絞込条件に対応）を示し、そのカテゴリに対して集計した値が項目毎に右に並ぶ。この数値を図８の学習実行条件記憶部１２２で示された各閾値と比較して、当該カテゴリについて学習すべきか否かを判断する。なお、図示した表は一部省略があり、全てのカテゴリに関する情報を記載しているわけではないため、以降の説明における数値は、本表には記載されていない項目も計算に利用している。
【００５５】
まず「製品種別＝法人向け」で指定されるカテゴリを例として説明する。同カテゴリ（および下位カテゴリ）に含まれる文書件数は１，５００件であり、図８の条件、２００〜５，０００の範囲であるため、学習した方がよい旨の「○」を付与する。同様に検索回数（同カテゴリおよび下位のカテゴリの合計）は２０，０００回であり「○」を付与する。
【００５６】
検索回数のカバー率は、同カテゴリを「学習モデルを生成しなかった場合」どの程度の検索ログに含まれる検索が「学習していない状態で実行されるか」の割合を示す数値である。すなわち同カテゴリが学習していなくても下位カテゴリ（例えば７０４）などでさらに絞り込めば、そこには対応する学習モデルがあるため、精度の高い検索が可能である。しかしながら下位カテゴリに絞り込まず「製品別種別＝法人向け」で検索すれば学習モデルが存在しないため精度が下がる。その検索回数の割合が図８「検索回数のカバー率」（３０％）を超えるようであれば、下位カテゴリが全て学習されていても同カテゴリも学習した方がよいと判断し「○」を付与する。次に、学習データ量、学習データ量のカバー率も同様に判断する。
【００５７】
最後に「精度（平均順位）であるが、これは検索した際に、検索結果一覧の何位に検索ユーザが望む情報が表示されたかに基づく情報である。すなわちユーザが図５のボタン５１５を押下した際に、その文書は何位の文書であったかを図６の学習データ記憶部１２１の不図示の欄に記憶しておいてもよい。すなわち前回の学習以降、どれだけ学習効果が検索結果の順位として現れていたか、に基づき新たな学習をするか否かを学習モデル毎に判断することになる。
【００５８】
例えば、未学習の状態でも正解が２０位以内に入るような７０３〜７０５は学習の優先順位を下げてもよいため「○」を付与しない。一方で７０１のように未学習時は平均２４位であるが、学習により平均して１３位も向上するのであれば、学習効果があると見なして「○」を付与する、などの判断を行う。
【００５９】
同欄に「−」がある場合には、前回学習時はしていないカテゴリであるため学習後の精度評価はない。この場合の扱いは設計事項であり様々な実装があるが、例えば「未学習時」の順位と「学習時の向上差異」を２つ評価することで、付与する「○」の数を０〜２と３段階にする方法が可能である。
【００６０】
また、最新の学習データのうち、一定の割合を仮の学習データ、残りを評価用データとして仮の学習データで学習させ、評価用データで学習効果があるか否かを実際に評価してもよい。ただしそもそも本発明の目的が学習を効率化させることにあるため、評価のためだけに学習することはその趣旨に反することになる。そこで、上記評価のうち精度以外の評価結果として、複数のカテゴリが同じ優先順位となり、そのうちの一部のカテゴリだけ選択しなければならない場合にのみ精度の評価を行うということにしてもよい。
【００６１】
もう１つ学習するか否かを判断する例を説明する。７０２の行の「問合せ分類＝ライセンス」に対応するカテゴリである。同カテゴリでは検索回数のカバー率が０％である。これは下位カテゴリ（７０３〜７０５）の学習モデルが生成された場合の数値である。すなわち検索回数は１０，０００件あるもののこれらは全て下位カテゴリに対応し、「問合せ分類＝ライセンス」のみの絞り込みで検索されるケースはない。従って、同カテゴリは学習しなくてもよいとして「○」が付与されない。ところが、下位カテゴリ（７０３〜７０５）は例えば文書件数が少なく、また未学習時でも順位が良いため他の評価で「○」が付与されず結果的に学習されない可能性がある。その場合は、７０２の行の「問合せ分類＝ライセンス」のカバー率を改めて評価し、下位カテゴリが全て学習されないのであればカバー率１００％となり、この欄に「○」を付与して優先順位を再評価する必要がある。この優先順位の再評価は、処理は図９のフローチャートのステップＳ９１１で判断されるものである。つまり評価に用いた図７の数値に変更があった場合には、再評価を行うことがあるものである。
【００６２】
また図８は、文書件数、検索回数、学習データ件数など件数、回数を記載しているが、全体の数の中の割合であってもよい。例えば、全体でも学習データが千件しかないような運用開始直後では、各カテゴリの学習データ数は何れも条件を満たさない。その場合は割合で計算してもよい。また件数、回数と割合を合わせて用いてることで特定のカテゴリのデータの割合が多くでも、絶対数としての閾値以上は必要であるものとして、全く学習を行わない場合もあってもよい。
【００６３】
いずれにしても本発明の実施の形態を示す１つの例に過ぎず、様々な情報を組み合わせて判断してよい。また、図７では条件を満たした場合に「○」を付与しその数で学習すべきか否か判定するように図示しているが、各項目に重み８０３を付与する、あるいは計算式を用意してスコアを算出する、としてもよい。その場合、例えば学習データが１万件の場合を最高のスコアとして、図８の８０２における境界（最低５，０００、最高２万）に近づくにつれスコアが悪くなるようにしてもよい。
【００６４】
以上で、図７、図８の説明を完了する。
【００６５】
図９は、本発明の実施形態に係る学習時の処理を説明するフローチャートの一例である。学習データ等に基づき優先順位の高いカテゴリに対して学習を実行する。図９のフローチャートの各ステップは、情報処理装置１００上のＣＰＵ２０１で実行される。
【００６６】
ステップＳ９０１においては、学習データ記憶部１２１から学習データを読み込む。ここで学習データではない（正解となるＦＡＱＩＤが指定されていないもの）検索ログも含めて読み込んでもよい（検索回数等確認のため）。
【００６７】
ステップＳ９０２においては、ステップＳ９０１で読み込んだ学習データ（検索ログを含む）を用いて、文書・学習状況記憶部７００で説明した表を生成する。ただし「○の数」の欄は、以降のステップでの評価に従って付与されていく。また精度（平均順位）の欄も、後述する図１１で実際に学習する場合には、この時点では空欄である。
【００６８】
ステップＳ９０３からステップＳ９０６は、ステップＳ９０２で説明した前記表に登録されたカテゴリに対応する行の全てに繰り返し実行される処理である。この時点では、全く評価していないため学習データ（検索ログ）に１件でも登録がある全てのカテゴリが対象となる。
【００６９】
ステップＳ９０４においては、前記表の中から１つのカテゴリを取り出して着目するカテゴリとし、ステップＳ９０５において、当該カテゴリに対応する評価を実行（図１０で後述）する。評価に際しては、図８で説明した学習実行条件記憶部１２２を参照する。
【００７０】
ステップＳ９０７においては、評価したカテゴリに付与された「○」の数（あるいは図７で説明したスコアなど）により実際に学習するカテゴリを選択する。
【００７１】
ステップＳ９０８においては、ステップＳ９０７のカテゴリ選択により、図７の情報に変更があるか否かを確認する。例えば、７０３〜７０５に対応するカテゴリの学習をしないとされた場合であれば、３カテゴリ共通の上位カテゴリである７０２に対応するカテゴリの検索回数カバー率、学習データカバー率が変更される。即ち下位カテゴリのいずれも学習しないので、両カバー率は１００％となり、上位カテゴリ７０２の学習実行優先順位は変わることになる。優先順位が変わった（ＹＥＳ）場合は、ステップＳ９０７に戻り、改めて学習カテゴリを選択する。変わらない（ＮＯ）場合には、ステップＳ９０９に進む。
【００７２】
ステップＳ９０９は、選択されたカテゴリに対する学習モデルを生成し、図１２で後述するように学習データを格納する。
【００７３】
図１０は、本発明の実施形態に係る学習時に１つのカテゴリ評価処理を説明するフローチャートの一例である。図１０のフローチャートの各ステップは、情報処理装置１００上のＣＰＵ２０１で実行される。図９において評価するためのカテゴリは指定されている。
【００７４】
ステップＳ１００１においては、図７で対応する行に記載された検索件数・全体の値が、図８の文書件数で指定された学習実行範囲８０２の範囲にあるか否かを判定する。範囲にある場合にはステップＳ１００２に進み「○」を付与する。範囲にない場合は、ステップＳ１００３に進む。
【００７５】
ステップＳ１００３、ステップＳ１００４においては、検索回数の判定に応じて「○」を付与する。
【００７６】
ステップＳ１００５、ステップＳ１００６においては、検索件数・カバー率の判定に応じて「○」を付与する。
【００７７】
ステップＳ１００７、ステップＳ１００８においては、学習データ量・全体の判定に応じて「○」を付与する。
【００７８】
ステップＳ１００９、ステップＳ１０１０においては、学習データ量・カバー率の判定に応じて「○」を付与する。
【００７９】
ステップＳ１０１１においては、前ステップまでで付与された「○」の数（あるいは図７、図８で説明したスコアなど）により、学習するカテゴリの優先順位を決める。
【００８０】
ステップＳ１０１２においては、各カテゴリの学習にかかる時間を見積もる。具体的には、図７の学習データ量から学習時間を推定することが可能である。この推定は、計算式として本ステップに組み込まれていてもよいし、学習データ量に応じた推定時間を人手で表などにしておき、それを参照してもよい。時間を推定した後、学習に許される時間、例えば深夜０時から朝の６時までの６時間で学習するように指定（不図示の設定ファイル等）されていたとすると、優先順位が高いカテゴリから累積で６時間を超えるカテゴリ以降は、仮に学習対象ではないとされる。
【００８１】
ステップＳ１０１３においては、精度評価を実行するか否か、実行するとすればどのカテゴリに対して実行するかを決定する。例えば、前述の「○」の数によっては、精度評価の結果にかかわらず学習するか否かの判断が変わらないカテゴリがある。一方で精度評価によっては、前項で仮に決めた学習対象が入れ替わる場合もある。その場合は、評価が入れ替わる可能性がある最低限のカテゴリについて評価をすればよい。評価用の学習自体時間がかかるため、その時間も考慮し、評価用に学習するカテゴリを決定する。精度評価するカテゴリがある場合にはステップＳ１０１４に進む。ない場合には本フローチャートの処理を完了して、図９のフローチャートに戻る。ステップＳ１０１４の説明は図１１を用いて後述する。
【００８２】
ステップＳ１０１５、ステップＳ１０１６においては、精度（平均順位）の未学習時の順位に応じて「○」を付与する。
【００８３】
ステップＳ１０１７、ステップＳ１０１８においては、精度（平均順位）の学習時向上差異に応じて「○」を付与する。
【００８４】
図１１は、本発明の実施形態に係る学習時の精度評価の処理を説明するフローチャートの一例である。図１１のフローチャートの各ステップは、情報処理装置１００上のＣＰＵ２０１で実行される。
【００８５】
ステップＳ１１０１においては、最新の学習データ（学習データ記憶部１２１）で学習するか否かを判断する。この判定は、例えば人手により設定するものであって、評価としての学習を実行するか否かを事前に決定されたものであってもよい。判定式を用意して情報処理装置１００が判断するものであってもよい。判定式の例としては、評価用の学習に要する時間を学習データの量から推定し、それが評価完了後の実際の学習時間とあわせて学習の可能時間（例えば前述の６時間）に処理可能かどうかで判定してもよい。学習すると判定した場合にはステップＳ１１０１に進む。しないと判定した場合にはステップＳ１１０５に進む。
【００８６】
ステップＳ１１０２においては、全ての学習データのうち、一部を評価用の学習モデルを生成する目的、他の一部を当該学習モデルの効果を評価するための目的、として使用するために一定の基準で分ける。例えばランダムに各々５０％に分けてもよい。また評価に利用できる時間によって学習用、評価用のデータを減らしてもよい。
【００８７】
ステップＳ１１０３においては、前記学習用の目的に分けた学習データを用いて、着目中のカテゴリに対する評価用の学習モデルを生成する。
【００８８】
ステップＳ１１０４においては、前記評価用の目的に分けた学習データを用いて、着目中のカテゴリを実際に検索し、類似検索部１０３と再ランク付け部１１３の各々の結果に含まれる正解の順位を取得し評価する。これらの評価結果は、図７の精度（平均順位）の未学習時、学習時向上差異の欄に記載していく。
【００８９】
ステップＳ１１０５においては、図７で既存の学習データに基づき、最新の学習モデルを使用しても前回の学習モデルと順位が向上する傾向は大きく変動しないと推定して、精度評価結果とするものである。すなわち精度評価をするものの実際に評価用の学習処理や検索・再ランク付けをしての評価処理はせず、過去の実績を利用する。なお実際の運用時には、検索条件が入力されると類似検索部１０３で検索した結果に対して（学習モデルがある場合には）再ランク付け部１１３で最終的な検索結果をランク付けするため、１度の検索で「未学習時」「学習時」の順位が取得できる。以上の処理で図１１のフローチャートを完了し、図１０の処理に戻る。
【００９０】
なおフローチャートでは明記していないが、学習データは必ずしも全て利用する必要はない。例えば、本発明の情報処理装置１００を長期間運用している場合には、数年前の学習データも残っている。しかしながらユーザの検索条件や登録されている文書が更新されることにより、１年以内のものに限り学習データを本発明の実施形態に使用する、としてもよい。以上により図１１の説明を完了する。
【００９１】
図１２は、本発明の実施形態に係る学習モデルとカテゴリを対応づけて記憶する記憶部の一例である。学習モデル１２０２は後述する検索処理の再ランク付け部１１３において使用するが、検索条件で指定された絞込条件と対応づけるため学習済みカテゴリテーブル１２０１も記憶する（他の記憶部でもよい）。
【００９２】
なお絞込条件とカテゴリの対応付けにおいて、絞込条件に記載されたフィールド名、条件の値は順番が入れ替わってもよいものとする。すなわち、「製品種別＝個人向け＆問合せ分類＝（製品情報ＯＲライセンス）」に対応するカテゴリの学習モデルは、検索条件の絞り込みにおいて「製品種別」と「問合せ分類」の指定順、また問合せ分類のＯＲの値「製品情報」と「ライセンス」の指定順に依存せず（順番が違っていても）条件として同じであれば、対応付けができるものとする。
【００９３】
以上で、本発明における学習モデルを生成する処理の実施形態について説明を完了する。次に、生成された学習モデルを用いた検索処理について図１３、図１４を用いて説明する。
【００９４】
図１３は、本発明の実施形態に係る検索処理を説明するフローチャートの一例である。図１４は、本発明の実施形態に係る検索時にカテゴリを選択する処理を説明するフローチャートの一例である。図１３、図１４のフローチャートの各ステップは、情報処理装置１００上のＣＰＵ２０１で実行される。
【００９５】
ステップＳ１３０１においては、図５のユーザインタフェースを通してユーザから、あるいは他のアプリケーションから検索条件を受け付ける。図５で説明したように、ユーザが指定する検索条件は質問文と絞込条件が含まれる。ここで絞込条件がない場合は、文書全体の集合を示す「全文書」というカテゴリが対応するものと仮定してもよい。
【００９６】
ステップＳ１３０２においては、ステップＳ１３０１で受け付けた検索条件から絞込条件の部分を抽出し、カテゴリを特定する。図１２でも説明したように、検索条件の絞り込みにおいて記載の順番は本質的ではないので考慮せず、後述の処理で実質的な絞り込みが同一の文書群を指すのであれば同一のカテゴリに対応し、従って図１２の対応するカテゴリの学習モデル１２０２を取得できるものとする。学習モデルがない場合であっても、絞込条件そのものがカテゴリに対応している。前記カテゴリを「起点カテゴリ」とする。すなわち、検索ユーザが明示的に条件としたカテゴリである。
【００９７】
ステップＳ１３０３は、検索対象とするカテゴリを決定する。詳細は図１４のフローチャートを用いて説明する。
【００９８】
ステップＳ１４０１においては、起点カテゴリに対応する学習モデルがあるか否か、図１２を参照して判定する。学習モデルがある（ＹＥＳ）場合には、ステップＳ１４０５に進み、起点カテゴリの学習モデル、すなわちユーザが指定した絞り込みに適した学習モデルを利用して再ランク付けするよう指定する。学習モデルがない（ＮＯ）場合には、ステップＳ１４０２に進む。
【００９９】
ステップＳ１４０２においては、起点カテゴリの上位に当たるカテゴリのうち、学習モデルがあるものを全てリストアップする。
【０１００】
上位カテゴリで学習モデルがない場合、検索条件に含まれる絞込条件で結局は絞り込んで検索し、その後の再ランク付け部１１３でのランキング調整をしないため、検索結果は同じ結果となる。学習モデルがある場合には、ユーザの絞り込み条件で、同じ文書群を検索した後、上位カテゴリの学習モデルで再ランク付けされるため、学習効果があり優先的にすべきと推定される。従って、上位カテゴリのうち学習モデルがあるものだけをリストアップすればよい。
【０１０１】
ステップＳ１４０３においては、上位カテゴリのうち、図７の精度（平均順位）を参照して、もっとも精度が高いカテゴリを選択する。また複数のカテゴリで優劣がつかない場合には、最も文書数が少ないものを選択してもよい。
【０１０２】
ステップＳ１４０４においては、選択されたカテゴリがあるか否かを判定する。例えば、ステップＳ１４０２で、そもそも学習モデルが生成されている上位カテゴリが１つもなければ選択されたカテゴリはない場合が考えら得られる。また上位カテゴリに対応する学習モデルがあったとしても、起点カテゴリよりも広い範囲に対する文書群を対象にして学習モデルを生成しているため、起点カテゴリに対応する絞込条件で絞り込んだ文書群に対しては、学習効果がなく、却って精度が下がる可能性もある。その場合は、上位カテゴリを選択しない。上位カテゴリがない（ＮＯ）場合には、ステップＳ１４０５に進み、起点カテゴリを検索対象とする。ただし学習モデルは存在しない（この場合の処理は図１３のステップＳ１３０５で説明）。選択された上位カテゴリがある（ＹＥＳ）場合には、ステップＳ１４０６に進み、選択された上位カテゴリの学習のデルを用いて再ランク付けすることと決定する。ここで図１４のフローチャートの説明を完了し、図３のステップＳ１３０３の処理が完了したところに話を戻す。
【０１０３】
ステップＳ１３０４では、ステップＳ１３０１で受け付けた絞込条件で、類似検索部１０３により検索対象文書記憶部１２３を検索する。例えば学習モデルとして上位カテゴリに対応するものを使用するにしても、類似検索部１０３では、絞込条件が一番強い起点カテゴリで絞り込んで少ない文書の中から検索したほうが最も精度がよいためである。後のステップで、学習モデルを用いた再ランク付けするにしても類似検索で精度が高い方がよい。
【０１０４】
ステップＳ１３０５においては学習モデルが存在するか否かを判定する。即ち図１４において起点カテゴリで再ランク付けすると決定されている場合には起点カテゴリの、また上位カテゴリで再ランク付けすると決定されている場合は、当該上位カテゴリの対応する学習モデルを学習モデル記憶部１２４から探す。
【０１０５】
ステップＳ１３０６においては、ステップＳ１３０４において類似検索で取得した検索結果に対して再ランク付けを実施する。
【０１０６】
ステップＳ１３０７においては、ステップＳ１３０４の類似検索結果、また再ランク付けが行われている場合にはステップＳ１３０６における再ランク付けの結果を呼び出し側に提示する。これにより図１３、図１４のフローチャートの処理の説明を完了する。
【０１０７】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１０８】
以上、いくつかの実施形態について示したが、本発明は、例えば、システム、装置、方法、コンピュータプログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１０９】
また、本発明におけるコンピュータプログラムは、図９〜図１１、図１３、図１４に示すフローチャートの処理方法をコンピュータが実行可能なコンピュータプログラムであり、本発明の記憶媒体は図９〜図１１、図１３、図１４の処理方法をコンピュータが実行可能なコンピュータプログラムが記憶されている。なお、本発明におけるコンピュータプログラムは図９〜図１１、図１３、図１４の各装置の処理方法ごとのコンピュータプログラムであってもよい。
【０１１０】
以上のように、前述した実施形態の機能を実現するコンピュータプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたコンピュータプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１１】
この場合、記録媒体から読み出されたコンピュータプログラム自体が本発明の新規な機能を実現することになり、そのコンピュータプログラムを記憶した記録媒体は本発明を構成することになる。
【０１１２】
コンピュータプログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１１３】
また、コンピュータが読み出したコンピュータプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのコンピュータプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１４】
さらに、記録媒体から読み出されたコンピュータプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのコンピュータプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にコンピュータプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのコンピュータプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１１６】
さらに、本発明を達成するためのコンピュータプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１１７】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１１８】
１００  情報処理装置
１０１  カテゴリ決定部
１０２  学習モデル生成部
１０３  類似検索部
１１１  検索条件受付部
１１２  カテゴリ取得部
１１３  再ランク付け部
１１４  結果提示部
１２１  学習データ記憶部
１２２  学習実行条件記憶部
１２３  検索対象文書記憶部
１２４  学習モデル記憶部
７００  文書・学習状況記憶部
【図１】
2020161011.tif 000003
【図２】
2020161011.tif 000004
【図３】
2020161011.tif 000005
【図４】
2020161011.tif 000006
【図５】
2020161011.tif 000007
【図６】
2020161011.tif 000008
【図７】
2020161011.tif 000009
【図８】
2020161011.tif 000010
【図９】
2020161011.tif 000011
【図１０】
2020161011.tif 000012
【図１１】
2020161011.tif 000013
【図１２】
2020161011.tif 000014
【図１３】
2020161011.tif 000015
【図１４】
2020161011.tif 000016