(58)【調査した分野】(Int.Cl.,DB名)
前記生起確率算出部は、前記組み合わせ毎に、前記第1指標値と、前記第2指標値と、前記リストに前記コンテキストとして仮定された前記ワードが含まれるか否かを指定することによって定義された関数の値との乗算値を算出し、算出した前記乗算値が最も大きな組み合わせを、前記エンティティの名前に相当するワードと、前記エンティティと、前記コンテキストに相当するワードとの組み合わせと判定する、
請求項1から3のいずれか一項に記載の情報処理装置。
前記生起確率算出部は、前記組み合わせ毎に、前記第1指標値と、前記第2指標値と、前記リストに前記コンテキストとして仮定された前記ワードが含まれるか否かを指定することによって定義された関数の値と、前記コンテキスト付与率との乗算値を算出し、算出した前記乗算値が最も大きな組み合わせを、前記エンティティの名前に相当するワードと、前記エンティティと、前記コンテキストに相当するワードとの組み合わせと判定する、
請求項3に記載の情報処理装置。
前記第2指標値算出部は、エンティティおよびコンテキストとなりうるワードを仮想的なグループに分けた場合の特徴量を最適化する手法によって生成されるグループの情報と、与えられた頻度情報とに基づいて、前記第2指標値を算出する、
請求項1から5のいずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【0012】
以下、図面を参照し、本発明の情報処理装置、情報処理方法、及びプログラムの実施形態について説明する。本実施形態においては、情報処理装置が、ナレッジデータサーバの一部を構成するものとして説明する。ナレッジデータサーバは、例えば、収集対象データ(例えば、画像やテキストデータ)を収集し、収集したデータに基づいてナレッジグラフを生成するサーバである。本実施形態において、ナレッジグラフは、エンティティやクラス、プロパティと、エンティティに関連する関連データが記載されているウェブページの所在情報とが関連付けられたデータである。
【0013】
エンティティとは、例えば、ある対象事物の実体(例えば、実世界で存在している物体)を表していてもよいし、ある対象事物の概念(例えば、実世界または仮想世界の中で定義された概念)を表していてもよい。例えば、対象事物が「建物」という概念である場合、エンティティは、「○○塔」や「○○ビルディング」などといった実体を表してよい。また、例えば、対象事物が「経済学」という概念である場合、エンティティは、「ミクロ経済学」や「マクロ経済学」などといった実体のない抽象的な概念を表してよい。以下、実施形態について詳細に説明する。
【0014】
<実施形態>
<1−1.ナレッジデータサーバの使用環境>
図1は、本実施形態に係るナレッジデータサーバ100の使用環境及び構成を示す図である。ナレッジデータサーバ100は、端末装置200と、ウェブサーバ300と、クロール対象機器DVと、ネットワークNWを介して通信可能に接続される。ネットワークNWは、ワールドワイドウェブ(World Wide Web)を意味し、インターネットやイントラネットで標準的に用いられるHTML文書などを利用したシステムである。ネットワークNWは、無線基地局やプロバイダ装置、専用回線などを更に含んでよい。
【0015】
端末装置200は、ユーザによって使用される装置であり、例えば、スマートフォンなどの携帯電話、タブレット型コンピュータ、ノート型コンピュータ、デスクトップ型コンピュータなどである。ウェブサーバ300は、検索エンジンを用いて検索結果を表示するためのウェブページを生成し、端末装置200に提供するサーバである。
【0016】
ナレッジデータサーバ100は、例えば、制御部110と、記憶部120とを備える。記憶部120は、例えば、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、記憶部120の一部または全部は、NAS(Network Attached Storage)や外部のストレージサーバなど、ナレッジデータサーバ100がアクセス可能な外部装置であってもよい。記憶部120には、例えば、ナレッジグラフ(以下、ナレッジグラフD1)と、コンテンツ情報D2と、コンテキスト情報D3と、ホワイトリスト情報D4と、コンテンツ付与率情報D5とが記憶される。
【0017】
図2は、本実施形態に係るナレッジグラフD1の一例を示す図である。ナレッジグラフD1において記述された事物は、オントロジーによって定義される。オントロジーとは、事物のクラスおよびプロパティを定義したものであり、クラスとプロパティとの間に成り立つ制約を集めたものである。
【0018】
クラスとは、オントロジーにおいて、同じ性質を持つ事物同士を一つのグループにしたものである。事物の性質がどういったものであるのか、すなわち事物がどのクラスに属するのかは、後述するプロパティにより決定される。
【0019】
例えば、くちばしを持ち、卵生の脊椎動物であり、前肢が翼になっている、という性質を持つ事物は、「鳥」というクラスに分類される。また、「鳥」というクラスの中で、飛べない、という性質を持つ事物は、例えば、「ペンギン」や「ダチョウ」という、より下位のクラスに分類される。このように、クラスの体系は、上位と下位の関係を有する階層構造となっていてよい。上位のクラスの性質は、下位のクラスに継承される。上述した例では、「鳥」というクラスの、「くちばしを持ち、卵生の脊椎動物であり、前肢が翼になっている」という性質は、「ペンギン」や「ダチョウ」という下位のクラスの性質にも含まれることになる。クラスを識別するためのクラス名は、例えば、「鳥」というクラスであれば、そのクラス名は「鳥」という文字列によって表されてよい。なお、クラス名は、必ずしも意味を表している必要はなく、例えば、「鳥」というクラスであっても、「情報1」や「C1」といった単なる識別情報を示す文字列が割り当てられてもよい。上述したエンティティ、すなわち事物は、オントロジーにより定義されたクラス体系の中に含まれる、いずれかのクラスに属するものとする。
【0020】
プロパティとは、事物の性質や特徴、クラス間の関係を記述する属性である。例えば、プロパティは、「〜を体の構成要素としてもつ」という性質や、「〜に生息する」という性質を示す属性であってもよいし、「あるクラスが上位クラスであり、あるクラスが下位クラスである」というクラス間の上位下位の関係を示す属性であってもよい。プロパティを識別するためのプロパティ名は、上述したクラス名と同様に、そのプロパティ名自体が意味を表していてもよいし、意味を表していなくてもよい。
【0021】
ナレッジグラフD1は、上述したクラスがノードとして表され、上述したプロパティがラベル付き、且つ方向性のあるエッジとして表された有向グラフである。このようなグラフ構造によって、事物についての情報がノードにより、事物間の関係がエッジによって判別可能となる。
【0022】
図2に示される例のナレッジグラフD1は、エンティティE1と、エンティティE2とが、「所属チーム」というプロパティ名のクラスに属する。本実施形態において、各エンティティには、各エンティティを識別することが可能な情報(以下、「エンティティ識別情報EID」)と、エンティティ名と、当該エンティティのウェブページの所在情報とが関連付けられる。所在情報とは、ウェブ上の位置を特定するための情報であり、例えば、URLである。所在情報が示すウェブページには、当該エンティティの関連データが記載されている。
【0023】
図2に示されるナレッジグラフD1において、エンティティE1には、エンティティ識別情報EIDの「0001」と、エンティティ名の「野球選手A」と、当該エンティティに関連する関連データが記載されているウェブページの所在情報である「http://百科事典ウェブページ/野球選手A」というURLとが対応付けられている。また、エンティティE2には、エンティティ識別情報EIDの「0002」と、エンティティ名「野球チームB」と、当該エンティティに関連する関連データが記載されているウェブページの所在情報である「http://百科事典ウェブページ/野球チームB」というURLとが対応付けられている。以降の説明において、エンティティに関連する関連データをエンティティの関連データと記載する。また、エンティティの関連データが記載されているウェブページを、エンティティのウェブページとも記載する。
【0024】
図3は、本実施形態に係る「野球選手A」のウェブページの一例を示す図である。「野球選手A」のウェブページには、「野球選手A」の関連データが記載されている。また、
図4は、本実施形態に係る「野球チームB」のウェブページの一例を示す図である。「野球チームB」のウェブページには、「野球チームB」の関連データが記載されている。
【0025】
図5は、本実施形態に係るコンテンツ情報D2の一例を示す図である。コンテンツ情報D2とは、エンティティと、テキストデータとが関連付けられた情報である。コンテンツ情報D2は、ウェブページに含まれる関連データを収集した収集結果又は検索エンジンの検索ログに基づいて生成される。コンテンツ情報D2は、例えば、エンティティのウェブページに含まれるテキストデータが収集され、収集されたテキストデータと、エンティティとが関連付けられた情報である。また、コンテンツ情報D2は、例えば、エンティティがクエリとして入力された際、当該エンティティと共に入力されたテキストデータと、エンティティとが関連付けられた情報である。
図5に示される一例のコンテンツ情報D2において、「野球選手A」というエンティティには、「3000本安打」というテキストデータが関連付けられ、「野球チームB」というエンティティには、「2017年優勝」というテキストデータが関連付けられる。
【0026】
<1−2.検索結果ウェブページ>
図6は、本実施形態に係る検索結果ウェブページの一例を示す図である。
図6に示されるように、端末装置200の表示部210には、クエリ入力領域211と、ナレッジパネル220と、検索結果230とが含まれる検索結果ウェブページが表示される。ナレッジパネル220には、クエリに対応するエンティティ221と、エンティティ221に関連する画像222と、エンティティ221に関連する関連情報223とが含まれる。ユーザは、端末装置200を用いて、端末装置200の表示部210に表示された検索ページにクエリを入力する。クエリとは、一つの検索ワードまたは複数の検索ワードの組み合わせである。端末装置200は、ユーザによって入力されたクエリをウェブサーバ300に送信する。
【0027】
ウェブサーバ300は、端末装置200から受信したクエリをナレッジデータサーバ100に送信する。ナレッジデータサーバ100は、受信したクエリに対応するエンティティに関連する情報をウェブサーバ300に送信する。ナレッジデータサーバ100は、例えば、受信したクエリがコンテンツ情報D2のエンティティに含まれている場合、当該エンティティを受信したクエリに関連付けられたエンティティと判定する。ナレッジデータサーバ100は、例えば、コンテンツ情報D2に基づいて、受信したクエリ(テキストデータ)に関連付けられたエンティティを判定する。また、ナレッジデータサーバ100は、ナレッジグラフD1に基づいて、判定したエンティティに対応付けられた所在情報をウェブサーバ300に送信する。ウェブサーバ300は、受信した所在情報に基づいて、当該所在情報が示すウェブページのうち、エンティティの関連データを抽出する。ウェブサーバ300は、抽出したエンティティの関連データ(この一例では、ナレッジパネル220に示す情報)を含めた検索結果ウェブページ(例えば、
図6)を生成する。
【0028】
図6に示される例においては、クエリとして「3000本安打」が入力され、ナレッジパネル220には「3000本安打」に関連する画像や様々な情報が表示されている。ナレッジパネル220には、例えば、「3000本安打」を達成した「野球選手A」の画像222や、「野球選手A」の生年月日や出身地等の関連情報223が表示される。このように、検索結果230だけでなく、ナレッジパネル220を表示部210に表示することで、検索結果に対するユーザ満足度を向上させることができる。
【0029】
<1−3.ナレッジデータサーバ100の構成>
図1に戻り、制御部110は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。制御部110は、例えば、選択部111と、関連ページ収集部112と、第1確率算出部113(第1指標値算出部)と、コンテキスト収集部114と、第2確率算出部115(第2指標値算出部、頻度情報算出部)と、所在情報取得部116(生起確率算出部)と、通信I/F(Interface)117と、ホワイトリスト生成部118と、コンテキスト付与率算出部119とを備える。また、これらの構成要素のうち一部または全部(内包する記憶部を除く)は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。通信I/F117は、ネットワークNWを介した各機能部と、他の機器(例えば、クロールの対象機器(以下、クロール対象機器DV)、端末装置200、及びウェブサーバ300)との通信を仲介する。
【0030】
選択部111は、コンテンツ情報D2から確率算出対象の任意のテキストデータ(以下、「対象テキストデータ」)を選択する。また、選択部111は、コンテンツ情報D2からホワイトリスト生成対象のエンティティを選択する。関連ページ収集部112は、選択部111によって選択された対象テキストデータに関連するウェブページ(以下、「関連ウェブページ」)を、ネットワークNWを介して収集する。関連ページ収集部112により収集されるウェブページとは、例えば、利用者によって編集可能な百科事典のウェブページ(以下、「百科事典ウェブページ」)や、対象テキストデータをクエリとした場合の検索結果ウェブページである。
【0031】
図7は、関連ページ収集部112により収集された百科事典ウェブページの一例を示す図である。
図7に示される例においては、関連ページ収集部112は、百科事典ウェブページのうち、コンテンツ情報D2が示す「野球選手A」のエンティティに関連付けられる「3000本安打」という対象テキストデータが記載された関連ウェブページを収集する。関連ページ収集部112は、例えば、百科事典ウェブページのHTML(HyperText Markup Language)データを含む収集対象データを、ネットワークNWを介してクロール対象機器DVから収集する。関連ページ収集部112は、いわゆるクローラプログラムにより実現される。収集対象データは、ネットワークNW上(クロール対象機器DVの記憶領域内)にあり、ブラウザで閲覧可能なデータである。なお、収集対象データは、ブラウザに限らず、アプリケーションプログラムによって再生されるデータであってもよい。収集対象データは、例えば、HTMLのソースを示すテキストデータを含む関連ウェブページである。関連ページ収集部112は、百科事典ウェブページのうち、対象テキストデータが記載された関連ウェブページが存在する場合、そのすべてを収集する。
【0032】
また、
図8は、関連ページ収集部112により収集された検索結果ウェブページの一例を示す図である。
図8に示される例においては、検索結果ウェブページは、コンテンツ情報D2が示すエンティティ「野球選手A」が検索結果として表示される、「3000本安打」というクエリ(図示するテキストTX21)が入力され、検索ボタン311がクリックされた場合の検索結果を示している。なお、「クリック」とは、選択することの一例であり、タッチ、タップその他の態様であってもよい。以下の説明では代表してクリックと称する。クエリは、対象テキストデータの一例である。
【0033】
図1に戻り、第1確率算出部113は、関連ページ収集部112によって収集された関連ウェブページに基づいて、対象テキストデータとエンティティとの組に対して確率算出処理を行う。第1確率算出部113は、対象テキストデータ(エンティティの名前)が与えられたときの各エンティティの関連付けられる関連度を示す確率(P(エンティティ|名前))(以下、「第1確率」)を算出する。第1確率算出部113は、例えば、式(1)が示すP(e|s)の値を第1確率として算出する。式(1)における各種要素については、後述する式(2)、(3)並びに関連ウェブページの種類ごとに説明する。第1確率は、第1指標値の一例である。
【0035】
以下、関連ウェブページが百科事典ウェブページである場合の確率算出処理の詳細について説明し、次に、関連ウェブページが検索結果ウェブページである場合の確率算出処理の詳細について説明する。
【0036】
<1−4.関連ウェブページが百科事典ウェブページの場合>
第1確率算出部113は、百科事典ウェブページに含まれるテキストデータのうち、対象テキストデータと関連付けられたエンティティを示すテキストデータが、リンク先を示すテキスト(以下、「アンカーテキスト」)として含まれる確率を算出する。関連ウェブページには、対象テキストデータ(この一例では、「3000本安打」(図示するテキストTX11)と関連付けられたエンティティ(この一例では、「野球選手A」)を示すテキストデータ(図示するテキストTX12〜14)が含まれる。また、テキストTX12〜14のうち、テキストTX12は、アンカーテキストである。また、テキストTX12に付与された他のウェブページのリンクは、ナレッジグラフD1において、対象テキストデータに関連付けられたエンティティ(この一例では、「野球選手A」)に対応付けられた所在情報である。
【0037】
ここで、第1確率算出部113は、以下の式(2)によって、対象テキストデータを含むすべての百科事典ウェブページにおける対象テキストの数に対して、アンカーテキストである対象テキストデータの数によって求められる確率(以下、「アンカーテキスト確率」)を算出する。式(2)におけるasは、アンカーテキスト確率を示している。
【0039】
また、第1確率算出部113は、以下の式(3)によって、当該アンカーテキストのリンク先が、ナレッジグラフD1において対象テキストデータと関連付けられた所在情報に対応するエンティティのウェブページ(以下、「特定のウェブページ」)である確率(以下、「第1エンティティ確率」)を算出する。式(3)におけるeとは、第1エンティティ確率を示している。
【0041】
関連ページ収集部112により収集された関連ウェブページが
図7に示されるウェブページのみである場合、第1確率算出部113は、すべての関連ウェブページに含まれる対象テキストデータのうち、当該対象テキストデータがアンカーテキストである確率(つまり、アンカーテキスト確率)を「1/3」と算出する。図示する対象テキストデータの中で、リンクが付与されるのは一つだからである(二つ以上付与されている場合も一つとカウントしてよい)。また、第1確率算出部113は、当該アンカーテキストのリンク先が、対象テキストデータと関連付けられるエンティティの特定のウェブページである確率(第1エンティティ確率)を「1」と算出する。
【0042】
<1−5.関連ウェブページが検索結果ウェブページの場合>
第1確率算出部113は、検索結果ウェブページに含まれる対象テキストデータと関連付けられたエンティティをテキストとして含むリンク先が選択された確率を算出する。対象テキストデータは、「3000本安打」(図示するテキストTX21)であり、対象テキストデータと対応付けられたエンティティは、「野球選手A」である。以降の説明において、対象テキストデータと関連付けられたエンティティに係るテキストを、対象エンティティテキストデータと記載する。
図8に示される例では、関連ウェブページには、対象テキストデータの関連ウェブページのリンクが付与されたテキストデータ(図示するテキストTX22〜24)が含まれる。このうち、対象エンティティテキストデータ(この一例では、「野球選手A」)が含まれるのは、テキストTX22である。テキストTX22に付与されたリンク先は、例えば、ナレッジグラフD1において、対象テキストデータに関連付けられたエンティティ(この一例では、「野球選手A」)に対応付けられた所在情報である。つまり、テキストTX22が有する他のウェブページのリンクは、特定のウェブページであり、一例として百科事典ウェブページである。なお、検索結果ウェブページには、リンクを有さないテキストであって、エンティティを示すテキストTX25が含まれてよい。
【0043】
第1確率算出部113は、式(2)によって、すべての検索結果ウェブページに含まれるそれぞれのリンク先がクリックされた回数に対して、対象エンティティテキストデータを含むリンク先がクリックされた回数の比として求められる確率(以下、「エンティティテキストクリック確率」)を算出する。式(2)におけるasは、エンティティテキストクリック確率を示している。
【0044】
また、第1確率算出部113は、式(3)によって、対象エンティティテキストデータを含むリンク先が、エンティティに関する特定のウェブページである確率(以下、「第2エンティティ確率」)を算出する。式(3)におけるeは、第2エンティティ確率を示している。
【0045】
<1−6.異なる事物を指す同一のエンティティが含まれる場合>
ここで、エンティティは、同一の文言であっても異なる事物を指す場合がある。
図9は、同一の文言によって異なるエンティティのウェブページにリンクしている例を示す図である。
図9に示される例において、テキストTX22は、「野球選手A」のウェブページ(例えば、
図3)のリンク先を示す。これに対し、テキストTX26は、「野球選手A」同姓同名の野球選手であって、「野球選手A」とは異なる野球チームCに所属する選手のウェブページのリンク先を示す。第1確率算出部113は、式(2)において、テキストTX26がクリックされた場合もエンティティクリック確率に算入する。
【0046】
図10は、エンティティを示す文言からリンクした、別のエンティティに関するウェブページの一例を示す図である。
図10に示される「野球選手A」のウェブページには、「3000本安打」というテキストデータに関連付けられる「野球選手A」(
図3に示される「野球選手A」)とは異なる野球選手である「野球選手A」に関連する関連データが記載されている。
【0047】
第1確率算出部113は、第1エンティティ確率を算出する際、当該リンク先が
図10に示されるウェブページの場合には、当該ウェブページをエンティティのウェブページとしてカウントしない。また、第1確率算出部113は、第2エンティティ確率を算出する際も、当該リンク先が
図10に示されるウェブページの場合には、当該ウェブページをエンティティのウェブページとしてカウントしない。
【0048】
<1−7.関連ウェブページ毎の重み付け>
また、第1確率算出部113は、関連ウェブページが百科事典ウェブページである場合において算出されたアンカーテキスト確率に対して第1エンティティ確率を乗じた値に対して、以下の式(4)を更に乗じてもよい。また、第1確率算出部113は、関連ウェブページが検索結果ウェブページである場合において算出されたエンティティテキストクリック確率に対して第2エンティティ確率を乗じた値に対して、以下の式(4)を更に乗じてもよい。そして、第1確率算出部113は、例えば、両者を加算して対数を求めることで、第1確率(スコア)を算出する。
【0050】
式(4)は、百科事典ウェブページを用いて式(2)および式(3)を計算したサンプル数と、検索結果ウェブページを用いて式(2)および式(3)を計算したサンプル数との割合を示す。
【0051】
第1確率算出部113は、百科事典ウェブページを用いて式(2)および式(3)を計算したサンプル数の割合を、アンカーテキスト確率と、第1エンティティ確率とを乗じた値に更に乗じ、検索結果ウェブページを用いて式(2)および式(3)を計算したサンプル数の割合を、エンティティテキストクリック確率と、第2エンティティ確率とを乗じた値に更に乗じ、両者を加算することで、得点に重み付けを行う。
【0052】
第1確率算出部113は、算出した得点をコンテンツ情報D2に対応付けて記憶させる。
図11は、本実施形態に係るコンテンツ情報D2及び得点の一例を示す図である。
【0053】
図1に戻り、コンテキスト収集部114は、記憶部120に記憶されたナレッジグラフD1、関連ページ収集部112によって収集された関連ウェブページ等から、コンテキストを収集する。コンテキストとは、エンティティの属性、種類等のエンティティを特徴付ける任意の情報を示す文字列である。コンテキスト収集部114は、収集したコンテキストをコンテキスト情報D3として、記憶部120に記憶させる。
【0054】
図12は、本実施形態に係るコンテキスト収集部114によるコンテキスト収集処理の一例を説明する図である。コンテキスト収集部114は、例えば、ナレッジグラフにおけるプロパティを示す文字列、隣接エンティティの名前等をコンテキストとして収集する。
図12に示される例において、コンテキスト収集部114は、エンティティである「学者A」と関連付けされるコンテキストとして、「ドイツ」、「175cm」、「出生地」、「身長」等をコンテキストとして収集する。
【0055】
図13は、本実施形態に係るコンテキスト収集部114によるコンテキスト収集処理の他の例を説明する図である。コンテキスト収集部114は、例えば、百科事典ウェブページにおける対象物(エンティティ)の文字列の後に表示された対象物の属性等を示す文字列をコンテキストとして収集する。
図13に示される例において、コンテキスト収集部114は、対象物である「学者A」の文字列の後に記載された「物理学」をコンテキストとして収集する。
図14は、本実施形態に係るコンテキスト情報D3の一例を示す図である。
図14に示される例では、エンティティ「学者A」に対して、コンテキストとして「物理学」、「ドイツ」、「175cm」、「出生地」等が関連付けられている。
【0056】
第2確率算出部115は、あるエンティティが与えられたときの各コンテキストが関連付けられる関連度を示す確率(P(コンテキスト|エンティティ))(以下、「第2確率」)を算出する。第2確率算出部115は、例えば、関連ページのクリックログ、検索エンジンの検索ログ等に基づいて、エンティティ単位で各コンテキストの頻度情報を含む仮想文書を生成する。さらに、第2確率算出部115は、生成した仮想文書に対して、例えば、Latent Dirichlet Allocation(LDA)等のアルゴリズム(非特許文献1参照)を適用することで、第2確率を算出する。すなわち、第2確率算出部115は、エンティティおよびコンテキストとなりうるワードを仮想的なグループに分けた場合の特徴量を最適化する手法によって生成されるグループの情報と、与えられた頻度情報とに基づいて、第2確率を算出する。第2確率は、第2指標値の一例である。
【0057】
図15は、本実施形態に係る第2確率算出部115によるコンテキストの頻度情報の算出処理の一例を説明する図である。第2確率算出部115は、エンティティである「学者A」の関連ページ(例えば、百科事典ウェブページ)をクリックしたユーザが、遷移元である検索結果ページの表示のために利用したクエリのうち「学者A」以外のワード(コンテキストターム)の出現頻度に基づいて、エンティティ単位で各コンテキストの頻度情報を算出する。
図15に示される例では、例えば、出現頻度が高い「物理学」の頻度が「120」と算出されている。一方、出現頻度が低い「身長」の頻度が「10」と算出されている。
図14に示されるように、第2確率算出部115は、算出した頻度情報をコンテキスト情報D3に対応付けて記憶部120に記憶させる。次に、第2確率算出部115は、これらの頻度情報を含むコンテキストをエンティティ単位で集約することで、仮想文書を生成する。
【0058】
第2確率算出部115は、生成した仮想文書に対して、例えば、LDAを適用することで、第2確率を算出する。エンティティは仮想文書に対応し、エンティティに対するコンテキストの頻度情報はその文書中のフレーズに相当する。
【0059】
図1に戻り、所在情報取得部116は、ウェブサーバ300から受信したクエリに対応するエンティティ名、エンティティ、コンテキストの組を決定する。所在情報取得部116は、ナレッジグラフD1に基づいて、判定したエンティティに対応付けられている所在情報を取得する。その後、所在情報取得部116は、取得した所在情報をウェブサーバ300に送信する。
【0060】
ホワイトリスト生成部118は、エンティティに関連付けられうるコンテキストの候補を定義したホワイトリストを生成する。ホワイトリストは、エンティティ毎に定義される。ホワイトリスト生成部118は、生成したホワイトリストを、ホワイトリスト情報D4として記憶部120に記憶させる。
【0061】
コンテキスト付与率算出部119は、エンティティに対する補完的表現であるコンテキストの付きやすさを示すコンテキスト付与率を算出する。すなわち、コンテキスト付与率は、ユーザがエンティティに相当するクエリを入力する際に、さらなるクエリ(すなわち、補完的表現であるコンテキスト)をあわせて使用する度合いを示す。コンテキスト付与率算出部119は、算出したエンティティ毎のコンテキスト付与率を、コンテキスト付与率情報D5として記憶部120に記憶させる。
【0062】
<1−8.ナレッジデータサーバ100の第1オフライン動作>
以下、ナレッジデータサーバ100の第1オフライン動作について説明する。第1オフライン動作では、第1確率を算出する。
図16は、本実施形態のナレッジデータサーバ100の第1確率を算出する動作の一例を示す流れ図である。選択部111は、コンテンツ情報D2のうち、算出対象の対象テキストデータを選択する(S110)。次に、関連ページ収集部112は、対象テキストデータに基づいて、関連ウェブページ(百科事典ウェブページ及び検索結果ウェブページ)を収集する(S120)。次に、第1確率算出部113は、アンカーテキスト確率及びエンティティテキストクリック確率を算出する(S130)。
【0063】
次に、第1確率算出部113は、第1エンティティ確率及び第2エンティティ確率を算出する(S140)。そして、第1確率算出部113は、百科事典ウェブページに基づくアンカーテキスト確率、第1エンティティ確率、及び第1コンテンツ割合を乗じた値と、検索結果ウェブページに基づくエンティティテキストクリック確率、第2エンティティ確率、及び第2コンテンツ割合を乗じた値との和を第1確率として算出し(S150)、算出した第1確率をコンテンツ情報D2に対応付けて記憶部120に記憶させる(S160)。以上により、本フローチャートの処理を終了する。
【0064】
<1−9.ナレッジデータサーバ100の第2オフライン動作>
以下、ナレッジデータサーバ100の第2オフライン動作について説明する。第2オフライン動作では、第2確率を算出する。
図17は、本実施形態のナレッジデータサーバ100の第2確率を算出する動作の一例を示す流れ図である。選択部111は、コンテンツ情報D2のうち、算出対象の対象テキストデータを選択する(S210)。関連ページ収集部112は、対象テキストデータに基づいて、関連ウェブページを収集する。次に、コンテキスト収集部114は、関連ページ収集部112により収集された関連ウェブページに基づいて、コンテキストを収集する(S220)。
【0065】
次に、第2確率算出部115は、エンティティ単位で各コンテキストの頻度情報を算出し(S230)、算出した頻度情報を含む仮想文書を生成する。次に、第2確率算出部115は、生成した仮想文書に対して、例えば、LDA等のアルゴリズムを適用することで、第2確率を算出する(S240)。
【0066】
図18は、本実施形態のナレッジデータサーバ100の第2確率を算出する詳細動作の一例を示す流れ図である。LDAにおいては、文書が複数のトピック(例えば、1000個のトピック等)(グループ)で構成されるという仮定を置くことで、文章の特徴を解析する。複数のトピックがパターン化されたもの(以下、「トピックパターン」)が多数定義されている。すなわち、1つのトピックパターンは複数のトピックを含み、この複数のトピックの分け方の異なるトピックパターンが多数定義されている。本実施形態においては、エンティティが文書に対応し、エンティティに対応するコンテキストの頻度がその文書中のフレーズの頻度に対応する。まず、第2確率算出部115は、多数のトピックパターンの中から1つのパターンを選択する(S241)。
【0067】
次に、第2確率算出部115は、算出対象とするエンティティとコンテキストとの組の候補を選択する(S242)。次に、第2確率算出部115は、第2確率(P(コンテキスト|エンティティ))を算出する(S243)。例えば、第2確率算出部115は、以下の式(5)に基づいて、コンテキストがトピックに属する確率と、トピックがエンティティ(内容別)に属する確率との積を求める。第2確率算出部115は、この確率の積の値が最大化するように分布を学習する。
【0069】
次に、第2確率算出部115は、全てのエンティティとコンテキストとの組の候補について第2確率の算出が完了したか否かを判定する(S244)。第2確率算出部115は、全てのエンティティとコンテキストとの組の候補について第2確率の算出が完了していないと判定した場合、第2確率の算出処理を行っていないエンティティとコンテキストとの組を1つ選択し、S242以降の処理を繰り返す。一方、第2確率算出部115は、全てのエンティティとコンテキストとの組の候補について第2確率の算出が完了したと判定した場合、算出した第2確率を足し合わせる処理を行って、処理対象のトピックパターンに対するスコアを算出する。
【0070】
次に、第2確率算出部115は、全てのトピックパターンに対する処理が完了したか否かを判定する(S245)。第2確率算出部115は、全てのトピックパターンに対する処理が完了していないと判定した場合、処理を行っていないトピックパターンを1つ選択し、S242以降の処理を繰り返す。
【0071】
一方、第2確率算出部115は、全てのトピックパターンに対する処理が完了したと判定した場合、算出したスコアが最も高いトピックパターンを、採用するトピックパターンに決定する(S246)。
【0072】
次に、第2確率算出部115は、上記のように決定したトピックパターンに関して算出された第2確率を採用する第2確率として決定する(S247)。尚、第2確率算出部115は、エンティティとコンテキストとの組の候補の全てに対して第2確率の計算を行わなくてもよい。例えば、エンティティとコンテキストとの組の候補に不適切な表現が含まれている場合には、これを除外するようにしてもよい。また、第2確率算出部115は、追加の条件に応じて、除外処理を行うようにしてもよい。例えば、第2確率算出部115は、エンティティと対応する百科事典ウェブページの概要文に含まれないコンテキストは除外するようにしてもよい。データの除外は、第2確率の算出の前に除外するのではなく、確率算出が終わった後に行ってよい。これは、不適切な表現であっても、LDAでの確率算出には有用であるためである。以上により、本フローチャートの処理を終了する。
【0073】
図17に戻り、第2確率算出部115は、決定した第2確率をコンテキスト情報D3に対応付けて記憶部120に記憶させる(S250)。尚、第2確率算出部115は、決定した第2確率を、例えばSolr等の転置インデックスに格納してもよい。このSolrに対してOR検索クエリを投げることで、何回も問い合わせすることなく、一度の問い合わせで全ての候補を取得することができる。以上により、本フローチャートの処理を終了する。
【0074】
<1−10.ナレッジデータサーバ100の第3オフライン動作>
以下、ナレッジデータサーバ100の第3オフライン動作について説明する。第3オフライン動作では、ホワイトリストを生成する。
図19は、本実施形態のナレッジデータサーバ100のホワイトリストを生成する動作の一例を示す流れ図である。まず、コンテキスト収集部114は、例えば、百科事典ウェブページにおける対象物の文字列の後に表示された対象物の属性等を示す属性文字列を収集する(S310)。例えば、コンテキスト収集部114は、
図13に示される例において、対象物である「学者A」の文字列の後に記載された「物理学」の属性文字列を収集する。コンテキスト収集部114は、百科事典ウェブページに含まれる複数のページ(例えば、全てのページ)に対して、上記の文字列の収集処理を行い、複数の属性文字列の集合を得る。
【0075】
次に、選択部111は、コンテンツ情報D2のうち、ホワイトリスト生成対象のエンティティ(以下、「対象エンティティ」)を選択する(S320)。次に、ホワイトリスト生成部118は、コンテキスト収集部114により収集された複数の属性文字列の中から1つの属性文字列を抽出し、抽出した属性文字列が、対象エンティティが記載された百科事典ウェブページ(例えば、百科事典ウェブページの概要説明文)に含まれているか否かを判定する(S330)。ホワイトリスト生成部118は、抽出した属性文字列が対象エンティティが記載された百科事典ウェブページに含まれていると判定した場合、この属性文字列を、対象エンティティのコンテキスト候補(以下、「第1コンテキスト候補」)とする(S340)。一方、ホワイトリスト生成部118は、抽出した属性文字列が対象エンティティが記載された百科事典ウェブページに含まれていないと判定した場合、この属性文字列を、対象エンティティの第1コンテキスト候補としない(S350)。ホワイトリスト生成部118は、コンテキスト収集部114により収集された複数の属性文字列の全てに対して、上記のS330からS350の処理を行う。
【0076】
次に、コンテキスト収集部114は、ナレッジグラフにおける対象エンティティのプロパティを示す文字列、例えば、ナレッジグラフにおける対象エンティティの1ステップ以内に含まれるエッジに付与された文字列を収集する。コンテキスト収集部114は、さらに、対象エンティティの隣接エンティティの名前の文字列や、2ステップ以上に含まれるエッジに付与された文字列を収集してもよい。ホワイトリスト生成部118は、収集された文字列を対象エンティティのコンテキスト候補(以下、「第2コンテキスト候補」)に設定する(S360)。
図12に示される例において、ホワイトリスト生成部118は、エンティティである「学者A」と関連付けされる「出生地」、「身長」等の文字列を第2コンテキスト候補として設定する。
【0077】
次に、ホワイトリスト生成部118は、第1コンテキスト候補と第2コンテキスト候補とに基づいてホワイトリストを生成し、ホワイトリスト情報D4として記憶部120に記憶させる(S370)。例えば、ホワイトリスト生成部118は、第1コンテキスト候補と第2コンテキスト候補との和集合をホワイトリストとして設定する。
図20は、本実施形態のホワイトリスト情報D4の一例を示す図である。
図20に示される例では、エンティティ「学者A」に対して、「出生地」、「身長」、「物理学」、「ドイツ」等がコンテキスト候補として関連付けされている。以上の処理が、コンテンツ情報D2に含まれるエンティティの全てに対して繰り返し行われる。以上により、本フローチャートの処理を終了する。
【0078】
<1−11.ナレッジデータサーバ100の第4オフライン動作>
以下、ナレッジデータサーバ100の第4オフライン動作について説明する。第4オフライン動作では、エンティティ毎のコンテキスト付与率を算出する。
図21は、本実施形態のナレッジデータサーバ100のコンテキスト付与率を算出する動作の一例を示す流れ図である。まず、コンテキスト付与率算出部119は、例えば、検索エンジンの検索ログに含まれる複数の検索ログデータのうち、処理対象とする1つの検索ログデータを抽出する(S410)。この1つの検索ログデータは、ユーザによる1度の検索処理と対応する。検索ログデータには、検索に利用された少なくとも1つのクエリ、検索結果ウェブページにおいてユーザがクリックしたリンクのURL(以下、「遷移先URL」)、検索日時等の情報が含まれる。
【0079】
次に、コンテキスト付与率算出部119は、抽出した検索ログデータから、検索に利用された少なくとも1つのクエリ、及び遷移先URLを抽出する(S420)。次に、コンテキスト付与率算出部119は、抽出した遷移先URLに基づいて、検索に利用された少なくとも1つのクエリのうち、いずれのクエリがエンティティに相当するかを判定する(S430)。例えば、コンテキスト付与率算出部119は、遷移先URLと、ナレッジグラフD1に含まれるエンティティの所在情報とを比較することで、いずれのクエリがエンティティに相当するかを判定する。例えば、コンテキスト付与率算出部119は、ナレッジグラフD1において遷移先URLと合致する所在情報を持つエンティティが存在し、このエンティティの名前がクエリに含まれている場合には、このクエリをエンティティと判定する。
【0080】
次に、コンテキスト付与率算出部119は、エンティティと判定されたクエリに対して、補完的表現であるコンテキストが付与されているか否かを判定する(S440)。すなわち、コンテキスト付与率算出部119は、検索に利用されたクエリに、エンティティと判定されたクエリ以外のクエリ(第2ワード)が含まれているか否かを判定する。コンテキスト付与率算出部119は、コンテキストが付与されていると判定した場合、エンティティ毎にコンテキストが付与された検索処理の数をカウントするための第1カウンタを1つ増大させる(S450)。一方、コンテキスト付与率算出部119は、コンテキストが付与されていないと判定した場合(すなわち、検索に利用されたクエリの数が1つであった場合)、エンティティ毎にコンテキストが付与されなかった検索処理の数をカウントするための第2カウンタを1つ増大させる(S460)。第1及び第2カウンタは、エンティティ毎に設けられる。
【0081】
次に、コンテキスト付与率算出部119は、検索ログに含まれる全ての検索ログデータに対する処理が完了したか否かを判定する(S470)。コンテキスト付与率算出部119は、検索ログに含まれる全ての検索ログデータに対する処理が完了していないと判定した場合、処理対象とする他の1つの検索ログデータを抽出して(S410)以降の処理を再度行う。
【0082】
一方、コンテキスト付与率算出部119は、検索ログに含まれる全ての検索ログデータに対する処理が完了したと判定した場合、エンティティ毎のコンテキスト付与率を算出し、コンテキスト付与率情報D5として記憶部120に記憶させる(S480)。例えば、コンテキスト付与率算出部119は、以下の式(6)に基づいて、エンティティ毎のコンテキスト付与率を算出する。
【0084】
上記の式(6)において、スイッチ変数とは、コンテキストが付与される確率またはコンテキストが付与されない確率のいずれを算出するかを切り替えるものである。スイッチ変数=1とは、コンテキストが付与される確率を算出することを示し、スイッチ変数=0とは、コンテキストが付与されない確率を算出することを示す。
図22は、本実施形態のコンテキスト付与率情報D5の一例を示す図である。
図22に示される例では、エンティティ「学者A」に対して、コンテキスト付与率「0.40」が関連付けされている。以上により、本フローチャートの処理を終了する。
【0085】
<1−12.ナレッジデータサーバ100のオンライン動作>
図23は、本実施形態のナレッジデータサーバ100のオンライン動作の一例を示す流れ図である。まず、所在情報取得部116は、ウェブサーバ300からクエリを受信する(S510)。
図24は、本実施形態のナレッジデータサーバ100のオンライン動作を説明する図である。
図24は、「学者A」と、「物理学」との2つのワードを含むクエリを受信する例を示している。
【0086】
次に、所在情報取得部116は、コンテンツ情報D2のうち、受信したクエリに含まれるワードの各々と合致するテキストデータに関連付けられているエンティティを読み出す(S520)。このとき、クエリとテキストデータとが完全一致する場合だけでなく、部分一致または意味的に同一とみなされる程度の相違がある場合も、対応するテキストデータとみなしてよい。
図24は、「学者A」という名前のエンティティとして、人であるエンティティEN1の他、2人組の芸能人のエンティティEN2と、競走馬のエンティティEN3とが読み出された例を示している。
【0087】
次に、所在情報取得部116は、受信したクエリ及び読み出されたエンティティを用いて、「エンティティの名前」と、「エンティティ」と、「コンテキスト」との組み合わせの候補(エンティティの名前、エンティティ、コンテキスト)を全通り生成する(S530)。
図24に示される例では、以下6つの組み合わせの候補が生成される。
・(学者A,エンティティEN1,物理学)
・(物理学,エンティティEN1,学者A)
・(学者A,エンティティEN2,物理学)
・(物理学,エンティティEN2,学者A)
・(学者A,エンティティEN3,物理学)
・(物理学,エンティティEN3,学者A)
【0088】
次に、所在情報取得部116は、組み合わせの候補の各々について、以下の評価式(7)の値を算出する(S540)。
【0090】
上記の式(7)は、(エンティティの名前、エンティティ、コンテキスト)の組み合わせ毎に、第1確率と、第2確率と、コンテキスト付与率と、コンテキストがホワイトリストに属するか否かを指定することによって定義されるインジケータ関数(I(ホワイトリスト(エンティティ)includes(コンテキスト)))の値との乗算値を求めている。I(ホワイトリスト(エンティティ)includes(コンテキスト))は、コンテキストがホワイトリストに含まれる場合は1であり、コンテキストがホワイトリストに含まれない場合は0となる。
【0091】
例えば、(学者A,エンティティEN1,物理学)の組み合わせの場合、所在情報取得部116は、コンテンツ情報D2から、エンティティの名前(テキストデータ)としての「学者A」と、エンティティ「エンティティEN1」との組と関連付けられている第1確率を読み出す。さらに、所在情報取得部116は、コンテキスト情報D3から、エンティティ「エンティティEN1」と、コンテキストとしての「物理学」と、の組と関連付けられている第2確率を読み出す。さらに、所在情報取得部116は、ホワイトリスト情報D4から、エンティティ「エンティティEN1」のホワイトリストを読み出す。さらに、所在情報取得部116は、コンテキスト付与率情報D5から、エンティティ「エンティティEN1」のコンテテキスト付与率を読み出す。そして、所在情報取得部116は、読み出した第1確率と、第2確率と、コンテキスト付与率と、インジケータ関数(I(ホワイトリスト(エンティティ)includes(コンテキスト)))の値との乗算値を求める。
【0092】
次に、所在情報取得部116は、算出した乗算値のうち、最大の値を有するエンティティ名、エンティティ、コンテキストの組を、ユーザにより入力されたクエリの検索意図として適切な組として決定する(S550)。例えば、
図24に示される例では、所在情報取得部116は、エンティティ名が「学者A」であり、エンティティが「人(エンティティEN1))」であり、コンテキストが「物理学」である組をクエリの検索意図として適切な組として決定する。所在情報取得部116は、決定した組に含まれるエンティティの所在情報をナレッジグラフD1から取得して、ウェブサーバ300に送信する。以上により、本フローチャートの処理を終了する。
【0093】
尚、ユーザにより入力されたクエリが1つのみである場合には、所在情報取得部116は、この1つのクエリをエンティティ名とした場合の第1確率に基づいて、関連付けされるエンティティを判定してよい。例えば、所在情報取得部116は、コンテンツ情報D2から、この1つのクエリと合致するテキストデータに関連付けられている第1確率を読み出し、最も大きな第1確率を持つエンティティを関連付けされるエンティティと判定する。尚、上記のように算出される評価式の値をデータベースに保管しておき、検索ウェブページにおける関連キーワードの表示処理に使用してもよい。例えば、所在情報取得部116は、1つのクエリであるエンティティ名と、上記のように判定されたエンティティと、を用いて算出された評価式の値のうち、最も高い値の算出に用いられた「コンテキスト」を関連キーワードと判定し、ウェブサーバ300に出力するようにしてもよい。
【0094】
以上、説明したように、本実施形態のナレッジデータサーバ100は、クエリとして入力された2つ以上のワードのそれぞれと、エンティティとの関連度を示す第1指標値を算出する第1確率算出部113(第1指標値算出部)と、前記ワードをコンテキストとして含むエンティティと、前記ワードのそれぞれとの関連度を示す第2指標値を算出する第2確率算出部(第2指標値算出部)と、前記エンティティ毎にコンテキストの候補を定義したリストを生成するリスト生成部と、前記第1指標値算出部により算出された前記第1指標値と、前記第2指標値算出部により算出された前記第2指標値と、前記リスト生成部により生成された前記リストとに基づいて、前記ワードのうちの前記エンティティの名前として仮定されたワードと、前記エンティティと、前記ワードのうちの前記コンテキストとして仮定されたワードとの組み合わせの各々の生起確率を算出する所在情報取得部116(生起確率算出部)とを備える情報処理装置。これによって、本実施形態のナレッジデータサーバ100は、ユーザにより入力されたクエリの検索意図を適切に評価することができる。
【0095】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。