以下、情報検索装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、主題語と関連エンティティとの集合情報から、主題語に対する意外な情報を取得し、出力する情報システム1について説明する。
図1は、本実施の形態における情報システム1の概念図である。情報システム1は、情報検索装置11、および1以上の端末装置12を備える。情報検索装置11は、例えば、いわゆるサーバ装置である。端末装置12は、ユーザが使用する装置である。
図2は、本実施の形態における情報システム1のブロック図である。情報検索装置11は、主題語情報格納部1101、カテゴリ情報格納部1102、上位語情報格納部1103、同位語情報格納部1104、受付部1105、主題語情報取得部1106、同位語情報取得部1107、第一関連エンティティ取得部1108、同位語取得部1109、第二関連エンティティ取得部1110、エッジ生成部1111、エッジ切断部1112、意外情報取得部1113、および出力部1114を備える。
また、意外情報取得部1113は、第一カテゴリ取得手段11131、第二カテゴリ取得手段11132、貢献度算出手段11133、および意外情報取得手段11134を備える。
端末装置12は、端末受付部121、端末送受信部122、および端末出力部123を備える。
主題語情報格納部1101は、2以上の主題語情報を格納し得る。主題語情報は、用語である主題語と当該主題語に関連する用語である1以上の関連エンティティとを有する。ここで、主題語とは、検索対象になり得る用語である。また、検索対象とは、例えば、検索する意外な情報に対応する用語である。また、関連エンティティとは、主題語に関する情報であり、主題語の属性値または主題語の特徴を示す用語等である。また、主題語情報とは、主題語と関連エンティティとの組でも良いし、一の主題語と1以上の関連エンティティとを有する情報でも良い。つまり、主題語情報のデータ構造は問わない。なお、用語とは、一の単語でも良いし、2以上の単語でも良いし、文や文の一部でも良く、広く解する。
カテゴリ情報格納部1102は、1以上のカテゴリ情報を格納し得る。カテゴリ情報は、関連エンティティと関連エンティティの1以上のカテゴリとを有する。カテゴリとは、通常、関連エンティティの上位語に相当する用語であるが、関連エンティティの属性値などでも良い。なお、上位語とは、上位概念の語である。上位語とは、1以上の下位語が属するグループを特定する語である、とも言える。また、カテゴリ情報は、関連エンティティとカテゴリとの組でも良いし、一の関連エンティティと1以上のカテゴリとを有する情報でも良い。つまり、カテゴリ情報のデータ構造は問わない。
上位語情報格納部1103は、1以上の上位語情報を格納し得る。上位語情報は、主題語と当該主題語の1以上の上位語とを有する。また、上位語情報は、主題語と上位語との組でも良いし、一の主題語と1以上の上位語とを有する情報でも良いし、1以上の主題語と一の上位語とを有する情報でも良い。つまり、上位語情報のデータ構造は問わない。
同位語情報格納部1104は、1以上の同位語情報を格納し得る。同位語情報とは、2以上の主題語間の関係であり、同一のカテゴリに属する2以上の主題語である2以上の同位語を特定する情報である。また、同位語とは、共通の上位語を持つ語である。予め決められた条件を満たすほど多くの上位語が共通する語を同位語としても良い。予め決められた条件とは、共通する上位語の数が閾値以上であること、共通する上位語の割合が閾値以上であること等である。なお、同位語情報は、同位語である2以上の主題語の集合、2以上の主題語の識別子の集合、主題語に付与されたカテゴリ識別子等である。つまり、同位語情報のデータ構造は問わない。また、「閾値以上」は「閾値より大」を含む概念であり、「閾値以下」は「閾値未満」を含む概念である、とする(以下、同様である)。
受付部1105は、一の主題語を受け付ける。また、受付部1105は、命令や他の情報を受け付けても良い。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
一の主題語等の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部1105は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
主題語情報取得部1106は、主題語情報を取得する。主題語情報取得部1106は、例えば、予め決められた1以上のウェブサイトの1以上の各所定の項目(例えば、タイトル)の情報を主題語、所定の項目の情報が含まれる一連のウェブページの中のリンクが貼られている1以上の用語を1以上の関連エンティティとして取得し、1以上の主題語情報を構成する。予め決められたウェブサイトは、例えば、ウィキベディア(インターネットホームページ:URL「http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8」参照。)である。つまり、ウィキベディアのタイトルを主題語、当該タイトルの一連のウェブページの中のリンクが貼られている1以上の用語を1以上の関連エンティティとして取得し、1以上の主題語情報を構成する
また、主題語情報取得部1106は、図示しない辞書(用語と用語の説明文からなる辞書)から、用語を主題語として取得し、説明文を構成する用語を関連エンティティとして取得するなどしても良い。主題語情報取得部1106が主題語情報を取得するアルゴリズムは問わない。
同位語情報取得部1107は、一の主題語と、予め決められた条件を満たすほど共通する上位語を有する1以上の主題語を取得し、一の主題語と取得した1以上の各主題語とを、同一のカテゴリに属する2以上の同位語として、同位語情報を構成する。なお、予め決められた条件とは、一の主題語の上位語と、閾値以上の数または割合の上位語が共通することである。
第一関連エンティティ取得部1108は、受付部1105が受け付けた主題語の1以上の関連エンティティを、主題語情報格納部1101から取得する。
同位語取得部1109は、受付部1105が受け付けた主題語の1以上の同位語を、同位語情報格納部1104から取得する。
第二関連エンティティ取得部1110は、同位語取得部1109が取得した1以上の各同位語の1以上の関連エンティティを、主題語情報格納部1101から取得する。第二関連エンティティ取得部1110は、通常、同位語と対応付けて、当該同位語の関連エンティティを、図示しないバッファに一時蓄積する。
エッジ生成部1111は、上位語情報格納部1103の1以上の上位語と1以上の主題語との間、主題語情報格納部1101の1以上の主題語と1以上の関連エンティティとの間、カテゴリ情報格納部1102の1以上の関連エンティティと1以上のカテゴリとの間の直接的なエッジを生成する。なお、エッジは、リンクと言っても良く、通常、有向である。つまり、エッジ生成部1111がエッジを生成することにより、各上位語、各主題語、各関連エンティティ、および各カテゴリをノードとし、各語間のリンクをエッジとする有向グラフが構成される。また、エッジの向きは、例えば、受付部1105が受け付けた主題語から上位語、上位語から受付部1105が受け付けた主題語以外の主題語、受付部1105が受け付けた主題語以外の主題語から関連エンティティ、関連エンティティからカテゴリ、カテゴリから関連エンティティである。また、エッジの生成とは、2つのノードの接続を示す情報を保持するようになることである。エッジ生成部1111が構成する有向グラフのデータ構造は問わないことは言うまでもない。
エッジ切断部1112は、受付部1105が受け付けた主題語と、第一関連エンティティ取得部1108が取得した1以上の各関連エンティティとの直接的なエッジを切断する。ここで、エッジの切断とは、エッジを使用しない態様にすることを言う。エッジの切断とは、必ずしも、エッジを示す情報を削除する必要はない。なお、エッジの切断とは、一つずつ行う。
意外情報取得部1113は、第一関連エンティティ取得部1108が取得した1以上の関連エンティティと第二関連エンティティ取得部1110が取得した1以上の関連エンティティとを用いて、第一関連エンティティ取得部1108が取得した1以上の関連エンティティの中で、受付部1105が受け付けた主題語に対して意外な1以上の関連エンティティである1以上の意外情報を取得する。意外情報取得部1113は、第一関連エンティティ取得部1108が取得した1以上の関連エンティティの中で、第二関連エンティティ取得部1110が取得した1以上の関連エンティティとの共通点が少ない1以上の関連エンティティを意外情報として取得する。なお、複数の関連エンティティの共通点が少ないとは、関連エンティティ同士が異なること、関連エンティティのカテゴリが共通しないこと、関連エンティティの属性が共通しないこと等である。
意外情報取得部1113を構成する第一カテゴリ取得手段11131は、第一関連エンティティ取得部1108が取得した1以上の各関連エンティティの1以上のカテゴリを、カテゴリ情報格納部1102から取得する。ここで、取得とは、例えば、カテゴリと、当該カテゴリの出現回数とを取得することである。また、取得は、例えば、カテゴリを、重複を許して取得することでも良い。
第二カテゴリ取得手段11132は、第二関連エンティティ取得部1110が取得した1以上の各関連エンティティの1以上のカテゴリを、カテゴリ情報格納部1102から取得する。ここで、取得とは、例えば、カテゴリと、当該カテゴリの出現回数とを取得する。また、取得は、例えば、カテゴリを、重複を許して取得することでも良い。
貢献度算出手段11133は、主題語から、エッジ切断部1112が切断したリンクの先の1以上の各関連エンティティへ、切断されたエッジを通過せずに、到着し難さを示す1以上の貢献度を、1以上の各関連エンティティについて算出する。なお、貢献度は、切断されたエッジの貢献の度合いである。また、貢献度は、意外度と言っても良い。意外度は、切断されたエッジにより主題語と直接的に繋がる関連エンティティが意外な情報である度合いである。
貢献度算出手段11133は、受付部1105が受け付けた主題語に対して1を付与し、他の主題語、関連エンティティ、およびカテゴリに対して0を付与して、baised PageRankアルゴリズムにより、第一関連エンティティ取得部1108が取得した1以上の関連エンティティの重要度を取得し、当該重要度をパラメータとする減少関数により貢献度を算出することは好適である。なお、減少関数とは、重要度が小さい主題語の方が、その貢献度(意外度)を大きく算出する関数である。
以下、baised PageRankアルゴリズムについて説明する。当該アルゴリズムは、Webページの重要度を算出するアルゴリズムであるが、本発明における、主題語からi番目の関連エンティティへの直接的なリンクの貢献度の算出に利用できる。リンクの貢献度は、i番目の関連エンティティの重要度(PRi)をパラメータとする減少関数により算出され得る。減少関数とは、例えば、「貢献度=n/PRi(nは正数)」である。
つまり、i番目の関連エンティティの重要度(PRi)は、数式1により算出できる。数式1において、dは、ダンピングファクターである。また、Biは、重要度の算出対象である関連エンティティiをリンクしているノードである。また、Fjは、関連エンティティjがリンクしているノードである。そして、|Fj|は、関連エンティティjがリンクしているノードの数である。また、Qは、ここでは主題語である。
なお、i番目の関連エンティティの重要度の算出は、数式1に限らない。例えば、数式2のPageRankアルゴリズムを用いても良い。また、i番目の関連エンティティの重要度の算出アルゴリズムは他のアルゴリズムでも良い。なお、数式2において、nは、ノードの総数である。baised PageRankアルゴリズム、およびPageRankアルゴリズムは公知技術であるので、詳細な説明を省略する。
意外情報取得手段11134は、第一カテゴリ取得手段11131が取得した1以上のカテゴリの中で、第二カテゴリ取得手段11132が取得した1以上のカテゴリとの重複が予め決められた条件を満たすほど少ない1以上のカテゴリに対応する1以上の関連エンティティである1以上の意外情報を取得する。また、意外情報取得手段11134は、貢献度算出手段11133が算出した1以上の貢献度が、予め決められた条件を満たすほど大きいエッジに対応する1以上の関連エンティティである1以上の意外情報を取得する。ここで、予め決められた条件とは、例えば、数が閾値以内(閾値未満も含む概念)、割合が閾値以内(閾値未満も含む概念)である。また、予め決められた条件とは、例えば、貢献度が最大、貢献度が上位N(Nは1以上の整数)、貢献度が閾値以上等である。
出力部1114は、意外情報取得部1113が取得した1以上の意外情報を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
主題語情報格納部1101、カテゴリ情報格納部1102、上位語情報格納部1103、および同位語情報格納部1104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、主題語情報格納部1101等に主題語情報等が記憶される過程は問わない。例えば、記録媒体を介して主題語情報等が主題語情報格納部1101等で記憶されるようになってもよく、通信回線等を介して送信された主題語情報等が主題語情報格納部1101等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された主題語情報等が主題語情報格納部1101等で記憶されるようになってもよい。
主題語情報取得部1106、同位語情報取得部1107、第一関連エンティティ取得部1108、同位語取得部1109、第二関連エンティティ取得部1110、エッジ生成部1111、エッジ切断部1112、意外情報取得部1113、第一カテゴリ取得手段11131、第二カテゴリ取得手段11132、貢献度算出手段11133、意外情報取得手段11134は、通常、MPUやメモリ等から実現され得る。主題語情報取得部1106等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部1114は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部1114は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
端末装置12を構成する端末受付部121は、一の主題語を受け付ける。なお、端末受付部121は、通常、ユーザから一の主題語を受け付ける。主題語の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。端末受付部121は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末送受信部122は、端末受付部121が受け付けた主題語を情報検索装置11に送信する。また、端末送受信部122は、主題語の送信に対応して、情報検索装置11から1以上の意外情報を受信する。端末送受信部122は、通常、無線または有線の通信手段で実現される。
端末出力部123は、端末送受信部122が受信した1以上の意外情報を出力する。端末出力部123は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部123は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システム1の動作について説明する。まず、情報検索装置11の動作について、図3のフローチャートを用いて説明する。
(ステップS301)情報検索装置11の受付部1105は、一の主題語を受け付けたか否かを判断する。一の主題語を受け付ければステップS302に行き、一の主題語を受け付けなければステップS301に戻る。
(ステップS302)第一関連エンティティ取得部1108は、ステップS301で受け付けられた主題語の1以上の関連エンティティを、主題語情報格納部1101から取得する。
(ステップS303)同位語取得部1109は、ステップS301で受け付けられた主題語の1以上のすべての同位語を、同位語情報格納部1104から取得し、図示しないバッファに格納する。
(ステップS304)第二関連エンティティ取得部1110は、カウンタiに1を代入する。
(ステップS305)第二関連エンティティ取得部1110は、ステップS303で取得された同位語の中で、i番目の同位語が存在するか否かを判断する。i番目の同位語が存在すればステップS306に行き、存在しなければステップS308に行く。
(ステップS306)第二関連エンティティ取得部1110は、i番目の同位語の1以上の関連エンティティを、主題語情報格納部1101から取得し、図示しないバッファに蓄積する。なお、ここで、関連エンティティは、i番目の同位語と対応付けて蓄積される。
(ステップS307)第二関連エンティティ取得部1110は、カウンタiを1、インクリメントし、ステップS305に戻る。
(ステップS308)意外情報取得部1113は、ステップS302で取得された1以上の関連エンティティとステップS306で取得された1以上の関連エンティティとを用いて、ステップS302で取得された1以上の関連エンティティの中で、主題語に対して意外な1以上の関連エンティティである1以上の意外情報を取得する。なお、かかる処理を意外情報取得処理と言う。意外情報取得処理について、図4、および図5のフローチャートを用いて説明する。
(ステップS309)出力部1114は、ステップS308で取得された1以上の意外情報を出力する。ステップS301に戻る。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS308の意外情報取得処理の第一の例について、図4のフローチャートを用いて説明する。
(ステップS401)意外情報取得部1113は、カウンタiに1を代入する。
(ステップS402)意外情報取得部1113の第一カテゴリ取得手段11131は、主題語情報格納部1101に、主題語のi番目の関連エンティティが存在するか否かを判断する。i番目の関連エンティティが存在すればステップS403に行き、存在しなければステップS405に行く。
(ステップS403)第一カテゴリ取得手段11131は、i番目の関連エンティティを主題語情報格納部1101から取得する。そして、第一カテゴリ取得手段11131は、i番目の関連エンティティの1以上のカテゴリをカテゴリ情報格納部1102から取得し、図示しないバッファに蓄積する。なお、カテゴリは、通常、i番目の関連エンティティと対応付けて蓄積される。また、ここで蓄積されたカテゴリの集合を、第一のカテゴリ群と言う。
(ステップS404)第一カテゴリ取得手段11131は、カウンタiを1、インクリメントし、ステップS402に戻る。
(ステップS405)意外情報取得部1113は、カウンタiに1を代入する。
(ステップS406)第二関連エンティティ取得部1110は、同位語取得部1109が取得した1以上の各同位語のi番目の関連エンティティが存在するか否かを判断する。i番目の関連エンティティが存在すればステップS407に行き、存在しなければステップS409に行く。なお、同位語取得部1109は取得した1以上の各同位語の関連エンティティは、ステップS306で取得された1以上の関連エンティティである。
(ステップS407)第二関連エンティティ取得部1110は、同位語取得部1109が取得した1以上の各同位語のi番目の関連エンティティを、主題語情報格納部1101から取得する。そして、第二関連エンティティ取得部1110は、i番目の関連エンティティの1以上のカテゴリをカテゴリ情報格納部1102から取得し、図示しないバッファに蓄積する。なお、カテゴリは、通常、i番目の関連エンティティと対応付けて蓄積される。また、ここで蓄積されたカテゴリの集合を、第二のカテゴリ群と言う。
(ステップS408)第二関連エンティティ取得部1110は、カウンタiを1、インクリメントし、ステップS406に戻る。
(ステップS409)意外情報取得部1113は、第一のカテゴリ群のカテゴリの中で、第二のカテゴリ群での存在が、条件を満たすほど少ない1以上のカテゴリを取得する。なお、条件とは、閾値以下の数、閾値以下の割合等である。なお、「以下」を「未満」と読み替えても同意義である。
(ステップS410)意外情報取得部1113は、ステップS409で取得した1以上のカテゴリに対応する関連エンティティを取得する。上位処理にリターンする。なお、ここで取得された1以上の関連エンティティは、意外情報である。
次に、ステップS308の意外情報取得処理の第二の例について、図5のフローチャートを用いて説明する。
(ステップS501)エッジ生成部1111は、上位語情報格納部1103の1以上の上位語情報を用いて、1以上の主題語と、各主題語に対応する1以上の上位語との間のエッジ(リンク)を生成する。
(ステップS502)エッジ生成部1111は、主題語情報格納部1101の1以上の主題語情報を用いて、1以上の主題語と、各主題語に対応する1以上の関連エンティティとの間のエッジ(リンク)を生成する。
(ステップS503)エッジ生成部1111は、カテゴリ情報格納部1102の1以上のカテゴリ情報を用いて、1以上の関連エンティティと、各関連エンティティに対応する1以上のカテゴリとの間のエッジ(リンク)を生成する。
なお、ステップS501からステップS503の処理により、上位語、主題語、関連エンティティ、カテゴリの間のエッジ(リンク)が貼られたネットワーク構造ができる。また、ステップS501からステップS503の処理を別途実施し、かかるネットワーク構造は予め用意されていても良い。
(ステップS504)意外情報取得部1113は、受付部1105が受け付けた主題語の1以上の関連エンティティを、主題語情報格納部1101から取得する。
(ステップS505)意外情報取得部1113は、カウンタiに1を代入する。
(ステップS506)意外情報取得部1113は、初期設定をする。なお、初期設定とは、貢献度の算出の対象となるノード(例えば、主題語)の初期値を「1」に設定し、貢献度の算出の対象とならないノードの初期値を「0」に設定すること等である。なお、エッジの貢献度は、ノードの意外度である、と言える。
(ステップS507)意外情報取得部1113は、ステップS504で取得した1以上の関連エンティティの中で、i番目の関連エンティティが存在するか否を判断する。i番目の関連エンティティが存在すればステップS508に行き、存在しなければステップS512に行く。
(ステップS508)エッジ切断部1112は、受付部1105が受け付けた主題語とi番目の関連エンティティとの直接的なエッジを切断する。
(ステップS509)意外情報取得部1113は、ステップS508で切断されたエッジの貢献度を算出する。なお、ステップS508で切断されたエッジの貢献度は、i番目の関連エンティティの意外度と同意義である。また、かかる処理を貢献度算出処理と言う。貢献度算出処理について、図6のフローチャートを用いて説明する。
(ステップS510)意外情報取得部1113は、i番目の関連エンティティに対応付けて、ステップS509で算出した貢献度をバッファに一時蓄積する。
(ステップS511)意外情報取得部1113は、カウンタiを1、インクリメントし、ステップS506に戻る。
(ステップS512)意外情報取得部1113は、ステップS510で一時蓄積された関連エンティティの中で、条件を満たすほど貢献度の大きいエッジに対応する1以上の関連エンティティを取得する。上位処理にリターンする。
次に、ステップS509の貢献度算出処理について、図6のフローチャートを用いて説明する。
(ステップS601)意外情報取得部1113は、ダンピングファクター(d)を取得する。なお、ダンピングファクター(d)は、意外情報取得部1113が予め格納している、とする。
(ステップS602)意外情報取得部1113は、貢献度の算出対象のエッジに対応するノードをリンクしているノードを識別する情報を取得する。なお、ノードは、上位語、主題語、関連エンティティ、またはカテゴリである。
(ステップS603)意外情報取得部1113は、カウンタjに1を代入する。
(ステップS604)意外情報取得部1113は、ステップS602で取得したノードの識別子で識別されるノードのうち、j番目のノードが存在するか否かを判断する。j番目のノードが存在すればステップS605に行き、存在しなければステップS608に行く。
(ステップS605)意外情報取得部1113は、上記のj番目のノードがリンクしているノードの数|Fj|を取得する。
(ステップS606)意外情報取得部1113は、j番目のノードの貢献度を算出する。なお、ここでは、意外情報取得部1113は、貢献度を算出する前の、ノードの重要度(PRj)も取得する。なお、貢献度を算出する処理は、図6のフローチャートにおける処理である。つまり、図6のフローチャートの処理は、再帰処理である。
(ステップS607)意外情報取得部1113は、カウンタjを1、インクリメントし、ステップS604に戻る。
(ステップS608)意外情報取得部1113は、ダンピングファクター(d)、ノード数|Fj|、重要度(PRj)を用いて、対象とするノードの重要度(PRi)を算出する。なお、ノードの重要度(PRi)は、例えば、数式1により算出する。
(ステップS609)意外情報取得部1113は、ステップS608で算出した重要度(PRi)をパラメータとする減少関数により、貢献度を取得し、図示しないバッファに一時蓄積する。上位処理にリターンする。
次に、同位語情報取得部1107が同意語情報を取得する処理について、図7のフローチャートを用いて説明する。
(ステップS701)同位語情報取得部1107は、カウンタiに1を代入する。
(ステップS702)同位語情報取得部1107は、上位語情報格納部1103に、i番目の用語が存在するか否かを判断する。i番目の用語が存在すればステップS703に行き、i番目の用語が存在しなければ処理を終了する。
(ステップS703)同位語情報取得部1107は、i番目の用語の1以上の上位語を、上位語情報格納部1103から取得する。
(ステップS704)同位語情報取得部1107は、カウンタjに1を代入する。
(ステップS705)同位語情報取得部1107は、上位語情報格納部1103に、j番目の用語が存在するか否かを判断する。j番目の用語が存在すればステップS706に行き、i番目の用語が存在しなければステップS711に行く。なお、j番目の用語は、ステップS702でi番目の用語として選択されていない用語である。
(ステップS706)同位語情報取得部1107は、j番目の用語の1以上の上位語を、上位語情報格納部1103から取得する。
(ステップS707)同位語情報取得部1107は、ステップS703で取得した1以上の上位語とステップS706で取得した1以上の上位語との共通する用語を取得する。
(ステップS708)同位語情報取得部1107は、ステップS707で取得した共通する用語が、条件を満たすほど多いか否かを判断する。条件を満たすほど多い場合はステップS709に行き、条件を満たすほど多くない場合はステップS710に行く。
(ステップS709)同位語情報取得部1107は、i番目の用語とj番目の用語とを同位語として、同位語情報を構成し、同位語情報格納部1104に蓄積する。
(ステップS710)同位語情報取得部1107は、カウンタjを1、インクリメントし、ステップS705に戻る。
(ステップS711)同位語情報取得部1107は、カウンタiを1、インクリメントし、ステップS702に戻る。
次に、端末装置12の動作について説明する。端末装置12の端末受付部121は、ユーザから主題語を受け付ける。次に、端末送受信部122は、受け付けられた主題語を情報検索装置11に送信する。次に、端末送受信部122は、情報検索装置11から1以上の意外情報を受信する。そして、端末出力部123は、受信された1以上の意外情報を出力する。
以下、本実施の形態における情報システム1の具体的な動作について説明する。情報システム1の概念図は図1である。
情報検索装置11は、ある主題語に対して関連エンティティ集合を与えたときに、主題語と各関連エンティティの組合せの意外度を計算する。なお、意外度は、上述した貢献度と同意義である。
情報検索装置11が主題語と各関連エンティティの組合せの意外度を計算する際の流れは以下のようになる。
(1)主題語tを与え、tに対する関連エンティティ集合E={e1,e2,・・・en}を収集する。
(2)主題語tの上位語集合と同位語集合、関連エンティティの上位語集合を収集する。
(3)主題語tと各関連エンティティeiの組合せの意外度を求める。
まず、関連エンティティ集合の収集について説明する。情報検索装置11、または図示しない手段は、以下のように、主題語および関連エンティティを有する主題語情報を収集する。ここでは、例えば、主題語情報取得部1106は、ウィキベディアの記事から見出し語を主題語として取得する。そして、主題語情報取得部1106は、見出し語のウィキベディアの記事中でリンクが貼られている全ての語を関連エンティティとして収集する。そして、主題語情報取得部1106は、一の主題語と1以上の関連エンティティを有する主題語情報を構成し、主題語情報格納部1101に蓄積する。
なお、主題語情報取得部1106は、例えば、語tをクエリとしてウェブ検索を行い、検索結果のタイトルやスニペット中の語、あるいはページ内に含まれる語を関連エンティティとして収集しても良い。なお、語tは、図示しない辞書等から取得する。
また、主題語情報取得部1106は、語tに関する意外な情報を発見することが目的であるならば、語tに"蘊蓄"や"トリビア"といった語を加えてウェブ検索結果を取得し、その中に含まれる語を関連エンティティとして収集しても良い。
さらに、例えば、主題語情報取得部1106は、予め決められたQAサイトなど、特定のサービスにおいて語tについて言及されているページのみを収集し、そのページの中から関連エンティティ集合を取得しても良い。
次に、同位語情報取得部1107は、例えば、ALAGINフォーラムから提供されている上位語階層データ(インターネットホームページ:URL「http://nlpwww.nict.go.jp/corpus/」参照。)を用いて、主題語の同位語を取得する。つまり、上位語情報格納部1103には、ALAGINフォーラムから提供されている上位語階層データが格納されている。そして、同位語情報取得部1107は、例えば、前記上位語階層データから、例えば、"山田太郎"という語の上位語 "野球監督""神主打法の選手" "男性"など、全部で46個を取得する。そして、これら46個のうち、"山田太郎"と少なくとも1つ上位語を共有している語は、なんらかの観点において"山田太郎"と同位語であると言える。また、"山田太郎"とより多くの上位語を共有している語は、"山田太郎"のより強い同位語であると言える。そして、同位語情報取得部1107は、"山田太郎"の上位語と、閾値以上の上位語を有する用語を同意語として取得し、同位語情報格納部1104に蓄積する。なお、ALAGINフォーラムから提供されている上位語階層データとは、ウィキベディアに含まれる約69,000名詞句を階層化したものである。
また、関連エンティティの上位語集合は、関連エンティティをキーとして、上位語階層データを検索し、取得され得る。
また、ここで、情報検索装置11は、受付部1105が受け付けた主題語(ここでは、例えば、「山田太郎」)に対する意外な情報を取得し、出力する。そして、ここでは、意外な情報を、"主題語の1以上の強い同位語が、関連エンティティの上位語と関連を持たないような主題語と関連エンティティを含む情報"と定義する、とする。なお、強い同位語とは、予め決められた条件を満たすほど、主題語と共通の上位語を有する語である。
そして、情報検索装置11は、以下のように意外情報を取得する。まず、エッジ生成部1111は、語集合(上位語、主題語、関連エンティティ、およびカテゴリ)をノード、語間のリンクの有無や上位下位関係をエッジとして有向グラフを構築する。そして、エッジ生成部1111は、図8に示す有向グラフを得た、とする。
次に、グラフの構築の詳細について説明する。グラフは、以下のノード集合から構成される。ただし、クエリをq、語tの上位語集合をhyper(t)、語tの下位語集合をhypo(t)、語tの関連エンティティ集合をrel(t)とする。
・Q={q}
・Hq={x|x∈hyper(q)}
・Cq={x|x∈hypo(y),y∈Hq}
・Lq={x|x∈rel(q)}
・Hlq={x|x∈hyper(y),y∈Lq}
・Lc={x|x∈rel(y),y∈Cq,x∈/Lq}(なお、x∈/Lqは、xはLqに属さないことを示す。)
また、エッジについては、上位語・下位語の関係にある2語の間や、ある語とその関連エンティティの間に存在する。それぞれのエッジの向きは以下のようになっている。ただし、n1→n2は、ノードn1からノードn2に向かってエッジが存在することを表す。
・q→x where x∈Hq
・x→y where x∈Hq,y∈Cq,and y=hypo(x)
・x→y where x∈Cq,y∈Lq, and y=rel(x)
・x→y where x∈Lc,y∈Hlq, and y=hyper(x)
・x→y where x∈Hlq,y∈Lq, and x=hyper(y)
なお、上述したように、このグラフにおいて、主題語qからx∈Lqへのエッジは存在しない。
そして、主題語と関連エンティティの関連の有無を、その2語間のパスの有無とみなす。そして、意外情報取得部1113は、主題語と関連エンティティの関連の強さを、主題語から関連エンティティへのグラフ上での辿り着きやすさとみなすことで、2語の組合せの意外度を測る。つまり、主題語から辿り着きにくい関連エンティティほど、意外な語となる。ただし、主題語の同位語と主題語の関連エンティティの関係の強さを測るためには、主題語からその同位語を経由した際の、主題語から各関連エンティティへの辿り着きやすさを求める必要がある。そのため、主題語からその関連エンティティへのエッジは存在しないものとしてグラフを構築する。つまり、エッジ切断部1112は、主題語「山田太郎」からその関連エンティティへのエッジ(図8の破線)を、順番に切断する処理を行う。
次に、意外情報取得部1113は、数式1を用いて、主題語「山田太郎」と各関連エンティティ(例えば、「首位打者」「打点王」「ゴルフ」「秋田県」・・・「ガンダム」等)との意外度(貢献度)を、数式1を用いて算出する。なお、かかる場合、意外情報取得部1113は、ノードの初期値を主題語「山田太郎」のみ「1」 とし、その他の語の初期値は「0」 とする。さらに、ランダムジャンプの際のジャンプ先を主題語「山田太郎」のノードのみとする。
そして、意外情報取得部1113は、予め決められた条件を満たすほど意外度が大きい関連エンティティ「ガンダム」を、意外情報として取得する。
次に、出力部1114は、意外情報「ガンダム」を出力する。
(実験)
以下、実験結果について説明する。あるクエリとより多くの共通の上位語をもつ語が、そのクエリのより適切な同位語であるかを確かめるために、3つのクエリに対して、上述した情報検索装置11の手法を適用した。実験に用いたクエリは"京都市"、"京都大学"、"ドラえもん"の3つである。結果を図9に示す。
図9によれば、いずれのクエリに対しても、共通の上位語が多い語ほど、クエリの同位語として適切な語を発見できていると言える。例えばクエリが"京都市"であった場合、多くの同位語を共有する語として、県庁所在地であり、観光名勝が多い国内の都市が抽出される。共通の同位語の数が少なくなるにつれて、県庁所在地でない都市や、国内の都市ではない外国の都市や個人が多くなる。
以上、本実施の形態によれば、主題語とその同位語とを適切に利用しているため、意外な情報を適切に取得できる。
なお、本実施の形態によれば、意外情報取得部1113が意外情報を取得するアルゴリズムは種々あり得る。意外情報取得部1113は、主題語に対する意外情報を、主題語とその上位語と関連エンティティとそのカテゴリを用いて取得する。
また、本実施の形態において、上述した有向グラフは予め用意していても良い。また、本実施の形態において、情報検索装置11は、図10のような構成でも良い。つまり、情報検索装置11は、主題語情報格納部1101、カテゴリ情報格納部1102、上位語情報格納部1103、同位語情報格納部1104、受付部1105、第一関連エンティティ取得部1108、同位語取得部1109、第二関連エンティティ取得部1110、意外情報取得部1113、および出力部1114を備えるだけの構成でも良い。
また、本実施の形態において、情報検索装置11はスタンドアロンで動作しても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、用語である主題語と当該主題語に関連する用語である1以上の関連エンティティとを有する2以上の主題語情報と、2以上の主題語間の関係であり、同一のカテゴリに属する2以上の主題語である2以上の同位語を特定する情報である1以上の同位語情報とを格納しており、コンピュータを、一の主題語を受け付ける受付部と、前記受付部が受け付けた主題語の1以上の関連エンティティを、前記主題語情報格納部から取得する第一関連エンティティ取得部と、前記受付部が受け付けた主題語の1以上の同位語を、前記同位語情報格納部から取得する同位語取得部と、前記1以上の各同位語の1以上の関連エンティティを、前記主題語情報格納部から取得する第二関連エンティティ取得部と、前記第一関連エンティティ取得部が取得した1以上の関連エンティティと前記第二関連エンティティ取得部が取得した1以上の関連エンティティとを用いて、前記第一関連エンティティ取得部が取得した1以上の関連エンティティの中で、前記受付部が受け付けた主題語に対して意外な1以上の関連エンティティである1以上の意外情報を取得する意外情報取得部と、前記1以上の意外情報を出力する出力部として機能させるためのプログラムである。
また、上記プログラムにおいて、記録媒体に、関連エンティティと、当該関連エンティティの1以上のカテゴリとを有する1以上のカテゴリ情報をさらに格納しており、前記意外情報取得部は、前記第一関連エンティティ取得部が取得した1以上の各関連エンティティの1以上のカテゴリを、前記カテゴリ情報格納部から取得する第一カテゴリ取得手段と、前記第二関連エンティティ取得部が取得した1以上の各関連エンティティの1以上のカテゴリを、前記カテゴリ情報格納部から取得する第二カテゴリ取得手段と、前記第一カテゴリ取得手段が取得した1以上のカテゴリの中で、前記第二カテゴリ取得手段が取得した1以上のカテゴリとの重複が予め決められた条件を満たすほど少ない1以上のカテゴリに対応する1以上の関連エンティティである1以上の意外情報を取得する意外情報取得手段とを具備するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、記録媒体に、主題語と当該主題語の1以上の上位語とを有する1以上の上位語情報をさらに格納しており、コンピュータを、前記上位語情報格納部の1以上の上位語と1以上の主題語との間、前記主題語情報格納部の1以上の主題語と1以上の関連エンティティとの間、前記カテゴリ情報格納部の1以上の関連エンティティと1以上のカテゴリとの間の直接的なエッジを生成するエッジ生成部と、前記受付部が受け付けた主題語と、前記第一関連エンティティ取得部が取得した1以上の各関連エンティティとの直接的なエッジを切断するエッジ切断部とをさらに具備し、前記意外情報取得部は、前記主題語から、前記エッジ切断部が切断したインクの先の1以上の各関連エンティティへ、前記切断されたエッジを通過せずに、到着するし難さを示す1以上のエッジ貢献度を、前記1以上の各関連エンティティについて算出するエッジ貢献度算出手段と、
前記エッジ貢献度算出手段が算出した1以上のエッジ貢献度が、予め決められた条件を満たすほど大きい切断されたエッジに対応する1以上の関連エンティティである1以上の意外情報を取得する意外情報取得手段として、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記エッジ貢献度算出手段は、前記受付部が受け付けた主題語に対して1を付与し、他の主題語、関連エンティティ、およびカテゴリに対して0を付与して、baised PageRankアルゴリズムにより、前記第一関連エンティティ取得部が取得した1以上の関連エンティティの重要度を取得し、当該重要度をパラメータとする減少関数によりエッジ貢献度を算出するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、予め決められたウェブサイトのタイトルを主題語、当該タイトルの一連のウェブページの中のリンクが貼られている1以上の用語を1以上の関連エンティティとして取得し、1以上の主題語情報を構成する主題語情報取得部をさらに具備し、前記主題語情報格納部の2以上の主題語情報のうちの少なくとも一部は、前記主題語情報取得部が構成した1以上の主題語情報であるものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、記録媒体に、主題語と当該主題語の1以上の上位語とを有する1以上の上位語情報をさらに格納しており、一の主題語と、予め決められた条件を満たすほど共通する上位語を有する1以上の主題語を取得し、前記一の主題語と当該1以上の各主題語とを、同一のカテゴリに属する2以上の同位語として、同位語情報を構成する同位語情報取得部とをさらに具備し、前記同位語情報格納部の2以上の同位語情報のうちの少なくとも一部は、前記同位語情報取得部が構成した1以上の同位語情報であるものとして、コンピュータを機能させるプログラムであることは好適である。
(実施の形態2)
本実施の形態において、情報システム1とは、情報検索装置の意外情報取得部のみが異なる情報システム2について説明する。本実施の形態における情報システム2の概念図は、図1と同様である。
図11は、本実施の形態における情報システム2のブロック図である。
情報システム2は、情報検索装置21、端末装置12を備える。
情報検索装置21は、主題語情報格納部1101、同位語情報格納部1104、受付部1105、第一関連エンティティ取得部1108、同位語取得部1109、第二関連エンティティ取得部1110、意外情報取得部2113、出力部1114を備える。
情報検索装置21を構成する意外情報取得部2113は、第一関連エンティティ取得部1108が取得した1以上の関連エンティティと第二関連エンティティ取得部1110が取得した1以上の関連エンティティとを用いて、第一関連エンティティ取得部1108が取得した1以上の関連エンティティの中で、受付部1105が受け付けた主題語に対する1以上の意外情報を取得する。
さらに具体的には、意外情報取得部2113は、第一関連エンティティ取得部1108が取得した1以上の関連エンティティの中で、第二関連エンティティ取得部1110が取得した1以上の関連エンティティと重複が、予め決められた条件を満たすほど少ない1以上の関連エンティティである1以上の意外情報を取得する。ここで、予め決められた条件とは、重複する関連エンティティの数が閾値以内、重複する関連エンティティの割合が閾値以内等である。
意外情報取得部2113は、通常、MPUやメモリ等から実現され得る。意外情報取得部2113の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報システム2の情報検索装置21の動作について説明する。情報検索装置21の動作と情報検索装置11の動作で異なるところは意外情報取得処理である。情報検索装置21の意外情報取得処理について、図12のフローチャートを用いて説明する。図12のフローチャートにおいて、図4のフローチャートと同一の処理の説明は省略する。
(ステップS1201)意外情報取得部2113は、i番目の関連エンティティが、主題語の1以上の同位語の関連エンティティである場合の度合い(1以上の同位語との重複度)を取得する。なお、1以上の同位語の関連エンティティは、ステップS306で蓄積されている。そして、意外情報取得部2113は、例えば、i番目の関連エンティティの、ステップS306で蓄積されている数または割合を取得する。なお、その数または割合を重複度とする。
(ステップS1202)意外情報取得部2113は、重複度が予め決められた条件を満たすほど、小さいか否かを判断する。予め決められた条件を満たす場合はステップS1203に行き、満たさない場合はステップS404に行く。
(ステップS1203)意外情報取得部2113は、i番目の関連エンティティを意外情報として取得する。なお、ここで取得された1以上の関連エンティティは、意外情報である。
なお、図12のフローチャートにおいて、意外情報取得部2113は、重複度が最も小さい1または閾値以上の関連エンティティを、意外情報として取得しても良い。
以上、本実施の形態によれば、高速に、意外な情報を取得できる。
なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、用語である主題語と当該主題語に関連する用語である1以上の関連エンティティとを有する2以上の主題語情報と、2以上の主題語間の関係であり、同一のカテゴリに属する2以上の主題語である2以上の同位語を特定する情報である1以上の同位語情報とを格納しており、コンピュータを、一の主題語を受け付ける受付部と、前記受付部が受け付けた主題語の1以上の関連エンティティを、前記主題語情報格納部から取得する第一関連エンティティ取得部と、前記受付部が受け付けた主題語の1以上の同位語を、前記同位語情報格納部から取得する同位語取得部と、前記1以上の各同位語の1以上の関連エンティティを、前記主題語情報格納部から取得する第二関連エンティティ取得部と、前記第一関連エンティティ取得部が取得した1以上の関連エンティティと前記第二関連エンティティ取得部が取得した1以上の関連エンティティとを用いて、前記第一関連エンティティ取得部が取得した1以上の関連エンティティの中で、前記受付部が受け付けた主題語に対して意外な1以上の関連エンティティである1以上の意外情報を取得する意外情報取得部と、前記1以上の意外情報を出力する出力部として機能させるためのプログラムである。
また、上記プログラムにおいて、前記意外情報取得部は、前記第一関連エンティティ取得部が取得した1以上の関連エンティティの中で、前記第二関連エンティティ取得部が取得した1以上の関連エンティティと重複が、予め決められた条件を満たすほど少ない1以上の関連エンティティである1以上の意外情報を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
また、図13は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報検索装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図13は、このコンピュータシステム300の概観図であり、図14は、システム300のブロック図である。
図13において、コンピュータシステム300は、FDドライブ、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304と、マイク305と、スピーカー306とを含む。
図14において、コンピュータ301は、FDドライブ3011、CD−ROMドライブ3012に加えて、MPU3013と、MPU3013、CD−ROMドライブ3012及びFDドライブ3011に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、CPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の情報検索装置の機能を実行させるプログラムは、CD−ROM3101、またはFD3102に記憶されて、CD−ROMドライブ3012またはFDドライブ3011に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101、FD3102またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の情報検索装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(端末情報送信部、端末情報受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。