(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-02
(45)【発行日】2023-05-15
(54)【発明の名称】決定装置、決定方法、および決定プログラム
(51)【国際特許分類】
G06F 16/28 20190101AFI20230508BHJP
G06F 16/90 20190101ALI20230508BHJP
【FI】
G06F16/28
G06F16/90 100
(21)【出願番号】P 2021078771
(22)【出願日】2021-05-06
(62)【分割の表示】P 2019096910の分割
【原出願日】2019-05-23
【審査請求日】2022-04-19
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山崎 朋哉
(72)【発明者】
【氏名】真壁 拓也
(72)【発明者】
【氏名】西 賢太郎
(72)【発明者】
【氏名】西本 智浩
(72)【発明者】
【氏名】岩澤 宏希
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2018-151800(JP,A)
【文献】特開2014-002446(JP,A)
【文献】特開2018-005690(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コンテンツから、所定の関係性を有する第1対象と第2対象とを所定のデータベースに対する登録対象の候補として取得する取得部と、
前記候補の取得元となるコンテンツに関する情報に基づいて、前記候補のうち登録対象とする候補を決定する決定部と
を有することを特徴とする決定装置。
【請求項2】
前記決定部は、前記取得元となるコンテンツに関する情報として、前記コンテンツに対する信頼性を示す数値である信頼度に基づいて、登録対象を決定する
ことを特徴とする請求項1に記載の決定装置。
【請求項3】
前記決定部は、前記取得元となるコンテンツに関する情報として、前記コンテンツのドメインに応じた信頼度に基づいて、登録対象を決定する
ことを特徴とする請求項2に記載の決定装置。
【請求項4】
前記決定部は、前記候補に紐付られた信頼度が所定の条件を満たす場合は、当該候補を登録対象とする
ことを特徴とする請求項2または3に記載の決定装置。
【請求項5】
前記決定部は、それぞれ異なるコンテンツから取得された複数の候補であって、前記第1対象と、前記第2対象と、当該第1対象と当該第2対象との間の関係を示す関係情報とが一致する複数の候補のそれぞれと紐付られた信頼度が所定の条件を満たす場合は、当該第1対象と、当該第2対象と、当該関係情報とを含むトリプルを登録対象とする
ことを特徴とする請求項2~4のうちいずれか1つに記載の決定装置。
【請求項6】
前記決定部は、前記第1対象と、前記第2対象と、前記関係情報とが一致する複数の候補に紐付られた信頼度の荷重和が所定の閾値を超える場合は、当該第1対象と、当該第2対象と、当該関係情報とを含むトリプルを登録対象とする
ことを特徴とする請求項5に記載の決定装置。
【請求項7】
前記決定部は、各候補の取得元となるコンテンツ同士の関連性に応じた重みを用いて、前記第1対象と、前記第2対象と、前記関係情報とが一致する複数の候補に紐付られた信頼度の荷重和を算出する
ことを特徴とする請求項6に記載の決定装置。
【請求項8】
前記取得部は、前記コンテンツとして、対象間の関係性があらかじめ定義されている構造化データ、若しくは、データの属性が設定された半構造化データから、前記候補を取得する
ことを特徴とする請求項1~7のうちいずれか1つに記載の決定装置。
【請求項9】
前記決定部は、前記構造化データから取得した候補が所定の閾値よりも高い値の信頼度を有し、前記半構造化データから取得した候補が前記所定の閾値よりも低い値の信頼度を有するものとして、前記候補のうち信頼度が所定の条件を満たす候補を登録対象とする候補に決定する
ことを特徴とする請求項8に記載の決定装置。
【請求項10】
異なるコンテンツから取得された候補が、同一の第1対象を示す第1要素と、同一の第2対象を示す第2要素とを含むか否かを判定する判定部
を有し、
前記決定部は、同一の第1対象を示す第1要素と、同一の第2対象を示す第2要素とを含むと判定された複数の候補の取得元となるコンテンツに関する情報に基づいて、当該候補を登録対象とするか否かを決定する
ことを特徴とする請求項1~9のうちいずれか1つに記載の決定装置。
【請求項11】
前記決定部は、前記取得元となるコンテンツに関する情報が所定の条件を満たす場合は、前記第1対象を示す第1要素と、前記第2対象を示す第2要素と、当該第1対象と当該第2対象との間の関係を示す関係情報とを含むトリプルを登録対象とする
ことを特徴とする請求項10に記載の決定装置。
【請求項12】
前記決定部が登録対象としたトリプルと前記取得元となるコンテンツに関する情報とを対応付けてデータベースに登録する登録部
を有することを特徴とする請求項1~11のうちいずれか1つに記載の決定装置。
【請求項13】
決定装置が実行する決定方法であって、
コンテンツから、所定の関係性を有する第1対象と第2対象とを所定のデータベースに対する登録対象の候補として取得する取得工程と、
前記候補の取得元となるコンテンツに関する情報に基づいて、前記候補のうち登録対象とする候補を決定する決定工程と
を含むことを特徴とする決定方法。
【請求項14】
コンテンツから、所定の関係性を有する第1対象と第2対象とを所定のデータベースに対する登録対象の候補として取得する取得手順と、
前記候補の取得元となるコンテンツに関する情報に基づいて、前記候補のうち登録対象とする候補を決定する決定手順と
をコンピュータに実行させるための決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、決定装置、決定方法、および決定プログラムに関する。
【背景技術】
【0002】
従来、人物や事象等の概念をエンティティとし、エンティティ間の関係性を構造化したナレッジベースと呼ばれる技術が知られている。また、このようなナレッジデータベースを効率的に作成するため、エンティティのクラスタリングを行い、クラスタリングの結果に基づいて、エンティティ間の関係性を更新する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】”On Emerging Entity Detection” Michael Farber, Achim Rettinger, Boulos El Asmar
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した技術では、有用なナレッジデータベースを提供しているとは言えない場合があった。
【0006】
例えば、ナレッジデータベースにエンティティを登録する手法として、インターネット等のネットワーク上に投稿されたコンテンツから新たなエンティティと、エンティティ間の関係性を抽出し、抽出したエンティティと関係性とを登録する手法が考えられる。しかしながら、ネットワーク上のコンテンツを用いた場合、エンティティ間の関連性として誤った情報を登録してしまう恐れがある。
【0007】
本願は、上記に鑑みてなされたものであって、有用なナレッジデータベースを提供することを目的とする。
【課題を解決するための手段】
【0008】
本願に係る決定装置は、コンテンツから、所定の関係性を有する第1対象と第2対象とを所定のデータベースに対する登録対象の候補として取得する取得部と、前記候補の取得元となるコンテンツに関する情報に基づいて、前記候補のうち登録対象とする候補を決定する決定部とを有することを特徴とする。
【発明の効果】
【0009】
実施形態の一態様によれば、有用なナレッジデータベースを生成することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施形態に係る情報提供装置が実行する決定処理の一例を示す図である。
【
図2】
図2は、実施形態にかかる情報提供装置が実行する検索処理の一例を示す図である。
【
図3】
図3は、実施形態に係る情報提供装置が実行する処理の流れの一例を説明する図である。
【
図4】
図4は、実施形態に係る情報提供装置の構成例を示す図である。
【
図5】
図5は、実施形態に係るエンティティデータベースに登録される情報の一例を示す図である。
【
図6】
図6は、実施形態に係るトリプルデータベースに登録される情報の一例を示す図である。
【
図7】
図7は、実施形態に係る信頼度テーブルに登録される情報の一例を示す図である。
【
図8】
図8は、実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。
【
図9】
図9は、実施形態に係る情報提供装置が実行する検索処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下に、本願に係る決定装置、決定方法、および決定プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る決定装置、決定方法、および決定プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0012】
〔1.情報提供装置について〕
まず、
図1を用いて、決定装置の一例である情報提供装置10が実行する処理の一例について説明する。
図1は、実施形態に係る情報提供装置が実行する決定処理の一例を示す図である。
図1では、情報提供装置10が実行する処理として、知識を体系化、組織化した情報が登録されるナレッジデータベースに登録する新たなトリプルを決定する決定処理の一例について説明する。
【0013】
〔1-1.情報提供装置の概要〕
情報提供装置10は、インターネット等の所定のネットワークN(例えば、
図4を参照。)を介して、データサーバ100および端末装置200と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。なお、情報提供装置10は、ネットワークNを介して、任意の数のデータサーバ100や端末装置200と通信可能であってよい。
【0014】
データサーバ100は、各種の情報を管理する情報処理装置であり、例えば、サーバ装置やクラウドシステムにより実現される。例えば、データサーバ100は、予め情報間の関係性が構造として定義され、このような構造を有するデータが登録されたウィキデータや既に構築済みのナレッジデータベース等の構造化データが登録されている。また、データサーバ100は、HTML(Hyper Text Markup Language)やXML(Extensible Markup Language)等のタグ言語等を用いて、各種のデータに対して属性を示す情報が付与された半構造化データが登録されている。
【0015】
なお、データサーバ100は、任意の内容の情報を含む構造化データや半構造化データを管理していてよい。例えば、データサーバ100は、ウェブ検索、路線検索、電子商店街における取引対象の検索、地図検索、コンテンツ検索等、任意の検索における検索クエリのログ等を含むデータを管理してもよい。また、例えば、データサーバ100は、ウェブサイト上に投稿されたニュース、ブログ、SNS(Social Networking Service)等を管理していてもよい。また、データサーバ100は、人物、物体、建築物、コンテンツ、事象等、各種の対象を説明する説明コンテンツの管理を行っていてもよい。また、例えば、データサーバ100は、ウィキペディア(登録商標)やインターネットを介した辞書サービス等、ナレッジデータベースにおいてエンティティの対象となりえる各種の対象を説明するコンテンツである説明コンテンツの管理を行っていてもよい。
【0016】
端末装置200は、利用者が利用する端末装置であり、例えば、PC(Personal Computer)やサーバ装置、各種のスマートデバイス等により実現される。例えば、端末装置200は、利用者から各種の情報の入力を受付けると、情報提供装置10と通信を行い、通信結果となる情報を出力する機能を有する。
【0017】
このような構成の元、例えば、情報提供装置10は、端末装置200からの要求に基づいて、ナレッジデータベースに登録された各種情報の提供を行う。例えば、端末装置200は、ナレッジデータベースの検索を行う際の検索クエリを情報提供装置10に送信する。このような場合、情報提供装置10は、検索クエリと対応する情報をナレッジデータベースから検索し、検索結果を利用者端末へと提供する。
【0018】
〔1-2.ナレッジデータベースの概要〕
ここで、情報提供装置10が検索するナレッジデータベースについて説明する。ナレッジデータベースには、各種の知識が体系化、組織化された状態で登録されている。例えば、ナレッジデータベースには、登録される2つのエンティティと、エンティティが示す対象間の関係性を示す情報(以下、「関係情報」と記載する。)との組であるトリプルが登録されている。
【0019】
ここで、エンティティは、実世界における人物、物体、建築物等の主語となりうる各種の物、職業や国籍等といった属性、各種の状態や事象等、世の中における各種の物事に対応する情報である。なお、以下の説明では、エンティティに対応する各種の物事を「対象」と記載する場合がある。
【0020】
また、関係情報は、2つのエンティティ間の関係性を示す情報である。より具体的には、関係情報は、第1エンティティが示す第1対象と、第2エンティティが示す第2対象との間の関係性を示す情報である。例えば、情報提供装置10は、第1対象が人物であり、第2対象が書籍であり、第1対象が第2対象の著者である場合は、関係情報として「著者」や「auther」といった情報の登録を受付けることとなる。
【0021】
なお、情報提供装置10が有するナレッジデータベースにおけるエンティティは、任意の物事や事象と対応していてよい。例えば、情報提供装置10は、第1対象と第2対象が人物であり、第1対象が第2対象の親や伴侶であるといったトリプルを管理していてもよい。また、情報提供装置10は、第1対象と第2対象とが食品であり、第1対象が第2対象の材料であるといったトリプルを管理してもよい。すなわち、情報提供装置10は、任意の対象間における任意の関係性を示すトリプルを管理することで、対象間の関連性や事象を示す情報、すなわち、知識ベースを管理することとなる。
【0022】
〔1-3.決定処理について〕
ここで、ナレッジデータベースに新たなトリプルを登録する処理を考える。このようなナレッジデータベースに新たなトリプルを登録するには、各対象を示す文字列のみならず、対象が他の対象とどのような関係を有するかを示す関係情報が必要となる。このようなトリプルを効率よくナレッジデータベースに追加するため、ニュース記事等、インターネット上に投稿されたコンテンツからトリプルを抽出するといった手法が考えられる。しかしながら、このようなインターネット上に投稿されたコンテンツには、誤った情報も含まれるため、必ずしも正しいトリプルを抽出することができるとは言えない場合がある。
【0023】
そこで、情報提供装置10は、以下の決定処理を実行する。まず、情報提供装置10は、ネットワーク上のコンテンツから、第1対象と第2対象と対象間の関係を示す関係情報とを含むトリプルの候補を取得する。続いて、情報提供装置10は、取得された候補に対し、候補の取得元となるコンテンツと対応する取得元情報を紐付ける。そして、情報提供装置10は、各候補に対して紐付られた取得元情報に基づいて、候補の中から登録対象とするトリプルを決定する。
【0024】
例えば、ウィキペディア等、複数の利用者によって内容の正確性が検証されるドメインのコンテンツから抽出されるトリプルは、個人のブログやSNS等のドメインに投稿されたコンテンツから抽出したトリプルよりも正確性が高いと推定される。そこで、情報提供装置10は、各トリプルの候補の取得元となる取得元情報を各トリプルの候補に紐付けておく。そして、情報提供装置10は、あるトリプルの候補に紐付られた取得元情報が信頼できる取得元を示す場合は、かかるトリプルの候補を登録対象とする。
【0025】
ここで、個人のブログやSNS等に投稿されたコンテンツから抽出したトリプルであっても、多くのコンテンツに同一内容のトリプル、すなわち、同一の対象間における同一の関係性を示すトリプルが含まれる場合、かかるトリプルは、正しい情報を示していると推定される。そこで、情報提供装置10は、同一内容のトリプルの候補であって、各トリプルに紐付られた取得元情報が所定の条件を満たす場合は、各トリプルの候補と同一内容のトリプルを登録対象とする。すなわち、情報提供装置10は、各トリプルの候補に紐付られた取得元情報に基づいて、各トリプルの候補が示す内容の信頼性が所定の閾値を超えるか否かを判定し、信頼性が所定の閾値を超える場合は、各トリプルの候補が示す内容のトリプルを登録対象とする。
【0026】
例えば、情報提供装置10は、各トリプルの候補に対し、各トリプルの候補の取得元となるコンテンツの信頼性を示す数値である信頼度を紐付ける。より具体的な例を挙げると、情報提供装置10は、各トリプルの候補の取得元となるドメインに応じた信頼度を紐付ける。すなわち、情報提供装置10は、各トリプルの候補に対し、各トリプルの取得元に対応する情報である取得元情報として、取得元のドメインに応じた信頼度を紐付ける。
【0027】
また、情報提供装置10は、各トリプルの候補から、同一の対象間における同一の関係性を示す複数のトリプルの候補を特定する。例えば、情報提供装置10は、各種正規化等の技術を用いて、同一の第1対象を示す第1エンティティ、同一の第2対象を示す第2エンティティ、および同一の関係性を示す関係性情報を含むトリプルの候補を特定する。
【0028】
そして、情報提供装置10は、特定したトリプルの候補に紐付られた信頼度が所定の条件を満たすか否かを判定し、信頼度が所定の条件を満たす場合は、特定したトリプルの候補と同一の対象間における同一の関係性を示すトリプルを登録候補とする。例えば、情報提供装置10は、特定したトリプルの候補と紐付られた信頼度の合計が所定の閾値を超える場合は、特定したトリプルの候補と同一内容のトリプルを登録候補とする。なお、情報提供装置10は、特定したトリプルの候補が1つだけであっても、信頼度が所定の閾値を超える場合は、かかるトリプルの候補を登録対象として決定してもよい。
【0029】
このように、情報提供装置10は、各トリプルの候補の取得元と対応する取得元情報を各トリプルの候補に対して紐付ける。そして、情報提供装置10は、ある対象間のある関連性を示すトリプルの候補に紐付られた取得元情報が所定の条件を満たす場合は、かかるトリプルの候補、若しくは、かかるトリプルの候補と同一内容のトリプルをナレッジデータベースへの登録対象とする。このような処理の結果、情報提供装置10は、内容の信頼性が高いトリプルをナレッジデータベースに登録することができるので、ナレッジデータベースの精度を向上させる結果、利用者に有用な情報を提供することができる。
【0030】
なお、上述した例では、情報提供装置10は、トリプルの候補に対して取得元のドメインに応じた信頼度を紐付けたが、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、取得元情報として、取得元のドメインをトリプルの候補に対して紐付けてもよい。このような場合、情報提供装置10は、トリプルの候補に対して紐付られたドメインが、予め信頼性の高いドメインとして設定されたものであれば、このトリプルの候補を登録対象としてもよい。また、情報提供装置10は、同一内容を示す複数のトリプルの候補に対して紐付られた各ドメインが、予め信頼性の低いドメインとして設定されたものであっても、同一内容を示すトリプルの候補の数が所定の閾値を超える場合、信頼性が担保されるものとして、係るトリプルの候補や同一内容のトリプルの候補を登録対象としてもよい。すなわち、情報提供装置10は、トリプルの候補の取得元の信頼性に応じて、トリプルの候補のうち登録対象とするトリプルを決定するのであれば、任意の情報を取得元情報としてトリプルの候補に紐付けてよい。
【0031】
〔1-4.決定処理について〕
以下、
図1を用いて、情報提供装置10が実行する処理の流れの一例について説明する。なお、以下の説明では、コンテンツから取得されたトリプルの候補を単に「トリプル」と記載し、登録対象となるトリプルを「登録トリプル」と記載する場合がある。また、以下の説明では、同一の第1対象を示す第1エンティティ、同一の第2対象を示す第2エンティティ、および同一の関係性を示す関係性情報を含む複数のトリプルを「同一トリプル」と記載する場合がある。
【0032】
まず、情報提供装置10は、データサーバ100から、各種のコンテンツを収集する(ステップS1)。例えば、情報提供装置10は、既に構築済みのナレッジデータベースや、投稿された各種のコンテンツを収集する。
【0033】
続いて、情報提供装置10は、各コンテンツからトリプルを取得する(ステップS2)。例えば、情報提供装置10は、取得元のコンテンツが構築済みのナレッジデータベースである場合、ナレッジデータベースに登録されたトリプルを取得する。また、情報提供装置10は、取得元のコンテンツがSNSに投稿されたコンテンツやウィキペディアのコンテンツ等、テキストベースのコンテンツである場合、形態素解析や意図解析等を用いて、トリプルの抽出を行う。例えば、情報提供装置10は、テキストに含まれる主語と述語と目的語とを抽出し、主語を第1エンティティ、目的語を第2エンティティ、述語を関係性情報とするトリプルを生成する。なお、このようなテキストからトリプルを生成する技術については、各種の公知技術が採用可能であるものとし、詳細な説明については、省略する。
【0034】
例えば、
図1に示す例では、情報提供装置10は、ドメイン#1に属するコンテンツ#1-1から、エンティティ#1-1A、エンティティ#1-1B、および関係情報#1-1を含むトリプル#1-1を取得する。また、情報提供装置10は、ドメイン#2に属するコンテンツ#2-1から、エンティティ#2-1A、エンティティ#2-1B、および関係情報#2-1を含むトリプル#2-1を取得する。情報提供装置10は、ドメイン#3に属するコンテンツ#3-1から、エンティティ#3-1A、エンティティ#3-1B、および関係情報#3-1を含むトリプル#3-1を取得する。なお、ドメイン#1に含まれるコンテンツ#1-1は、構造化データであり、ドメイン#2に含まれるコンテンツ#2-1およびドメイン#3に含まれるコンテンツ#3-1は、反構造化データであるものとする。
【0035】
続いて、情報提供装置10は、各トリプルに倒して取得元情報を紐付ける(ステップS3)。例えば、情報提供装置10は、トリプル#1-1に対してドメイン#1を取得元情報として紐付け、トリプル#2-1に対してドメイン#2を取得元情報として紐付け、トリプル#3-1に対してドメイン#3を取得元情報として紐付ける。なお、情報提供装置10は、ステップS3において、取得元情報として、各ドメイン#1~#3に対応する信頼度を紐付けてもよい。
【0036】
続いて、情報提供装置10は、取得したトリプルから同一の関係性を示すトリプルを特定し、特定したトリプルに付与された取得元情報が示す取得元の信頼度の合計に基づいて、登録対象となる登録トリプルを決定する(ステップS4)。例えば、情報提供装置10は、取得したトリプルの中から、エンティティ#1-1Aと同じ対象と示す文字列(例えば、エンティティ#1-1Aと同義語)を第1エンティティとし、エンティティ#1-1Bとと同じ対象と示す文字列を第2エンティティとし、関係情報#1-1と同じ関係性を示す文字列を関係情報とする他のトリプル、すなわち、同一トリプルを検索する。同様に、情報提供装置10は、トリプル#2-1との同一トリプルやトリプル#3-1との同一トリプルを検索する。
【0037】
例えば、情報提供装置10は、エンティティ#2-1Aが示す対象とエンティティ#3-1Aが示す対象とが一致し、エンティティ#2-1Bが示す対象とエンティティ#3-1Bが示す対象とが一致し、関係情報#2-1が示す関係性と関係情報#3-1が示す関係性とが一致する場合、各エンティティや関係情報の文字列が異なるとしても、トリプル#2-1とトリプル#3-1が同一トリプルであると判定する。
【0038】
より具体的な例を挙げて説明する。例えば、トリプル#2-1に含まれるエンティティ#2-1Aが日本語表記の「シェイクスピア」であり、エンティティ#2-2が日本語表記の「リア王」であり、関係情報#1-1が日本語表記の「著者」であるものとする。また、トリプル#3-1に含まれるエンティティ#3-1Aが日本語表記の「ウィリアム=シェイクスピア」であり、エンティティ#2-2が日本語表記の「リア王」であり、関係情報#1-1が英語表記の「auther」であるものとする。
【0039】
このような場合、トリプル#2-1に含まれるエンティティ「シェイクスピア」とトリプル#3-1に含まれるエンティティ「ウィリアム=シェイクスピア」とは、文字列が異なるが、同一の人物(所謂16世紀における英国人であるシェイクスピア)を示していると認められる。また、トリプル#2-1に含まれる関係情報「著者」とトリプル#3-1に含まれる関係情報「auther」とは、文字列が異なるが、同一の関係性(すなわち、第1エンティティが示す人物が第2エンティティが示す作品を著したという関係性)を示していると認められる。そこで、情報提供装置10は、トリプル#2-1とトリプル#3-1とが、同一の関係性を示すトリプル、すなわち、同一トリプルであるものとする。
【0040】
このように、情報提供装置10は、異なるコンテンツから取得されたトリプルの候補が、同一の第1対象を示す第1エンティティと、同一の第2対象を示す第2エンティティと、同一の関係を示す関係情報とを含むか否かを判定し、同一の第1対象を示す第1エンティティと、同一の第2対象を示す第2エンティティと、同一の関係を示す関係情報とを含むと判定された複数のトリプルの候補に紐付られた取得元情報に基づいて、候補を登録対象とするか否かを決定することとなる。
【0041】
なお、このような処理は、例えば、予め作成されたリストであって、同一の対象を示すエンティティの候補をまとめたリストを参照することにより実現可能である。また、例えば、情報提供装置10は、連想記憶や同義語辞書、同義語同士を対応付けたナレッジデータベースを参照することにより、このような同一トリプルの検索を実現することができる。また、このような処理以外も、情報提供装置10は、例えば、各種正規化の公知技術を用いて、同一トリプルの検索を行ってよい。
【0042】
そして、情報提供装置10は、各同一トリプルの取得元情報に基づいて、登録トリプルを決定する。例えば、情報提供装置10は、トリプル#1-1に同一トリプルが存在しない場合、トリプル#1-1に紐付られた取引元情報「ドメイン#1」を特定する。ここで、ドメイン#1に登録されているコンテンツは、構造化データであるため、ある程度の信頼性が担保されていると考えらえる。そこで、情報提供装置10は、ドメイン#1に対して、所定の閾値(例えば、「50」)よりも高い信頼度「80」を付与する。
【0043】
また、例えば、情報提供装置10は、同一トリプルであるトリプル#2-1とトリプル#3-1に紐付られた取引元情報「ドメイン#2」および「ドメイン#3」を特定する。ここで、ドメイン#2およびドメイン#3に登録されているコンテンツは、半構造化データであるため、内容の信頼性がドメイン#1のコンテンツと比較して低いと考えられる。そこで、情報提供装置10は、ドメイン#2に対して、信頼度「50」を付与し、ドメイン#3に対して、信頼度「30」を付与する。なお、どのドメインのコンテンツに対してどのような信頼度を付与するかについては、予め任意の設定が可能であるが、例えば、情報提供装置10は、構造化データのコンテンツに対して半構造化データのコンテンツよりも高い信頼度を付し、複数の利用者により内容が精査されるドメインのコンテンツに対して、単一の利用者の行動により投稿が可能なドメインのコンテンツよりも高い信頼度を付してもよい。
【0044】
そして、情報提供装置10は、各同一トリプルの信頼度の合計が所定の値(例えば、「80」)を超えるか否かを判定し、超えた場合には、同一トリプルのいずれか、若しくは、これら同一トリプルと同一内容のトリプルを登録トリプルとする。例えば、情報提供装置10は、トリプル#1-1の信頼度が「80」であるので、エンティティ#1-1Aをエンティテイ#1Aとし、エンティティ#1-1Bをエンティテイ#1Bとし、関係情報#1-1を関係情報#1とするトリプルを登録トリプル#1とする。すなわち、情報提供装置10は、トリプル#1-1を登録トリプル#1とする。
【0045】
一方、情報提供装置10は、トリプル#2-1の信頼度「50」とトリプル#3-1の信頼度「30」との合計が「80」となるので、トリプル#2-1およびトリプル#3-1の内容と同一内容のトリプルを登録トリプル#2とする。例えば、情報提供装置10は、エンティティ#2-1Aやエンティティ#3-1Aと同一の対象を示すエンティティ#2A、エンティティ#2-1Bやエンティティ#3-1Bと同一の対象を示すエンティティ#2B、および関係情報#2-1や関係情報#3-1と同一の関係性を示す関係情報#2を含むトリプルを登録トリプル#2とする。すなわち、情報提供装置10は、最終的に生成するナレッジデータベースにおけるルールに従って、同一トリプルの内容を正規化したトリプルを生成し、生成したトリプルを登録トリプルとする。
【0046】
例えば、トリプル#2-1やトリプル#3-1が上述した文字列を含む場合、情報提供装置10は、エンティティ#2Aとして日本語表記の「ウィリアム=シェイクスピア」を含み、エンティテイィ#2Bとして日本語表記の「リア王」を含み、関係情報#2として日本語表記の「著者」を含むトリプルを登録トリプル#2とする。
【0047】
そして、情報提供装置10は、各登録トリプル#1、#2に対し、取得元と対応する取得元情報を付与して、ナレッジデータベースに登録する。例えば、情報提供装置10は、登録トリプル#1に対し、登録トリプル#1の元となったトリプル#1-1の取得元情報「ドメイン#1」を紐付けてナレッジデータベースに登録する。また、情報提供装置10は、登録トリプル#2に対し、元となったトリプル#2-1の取得元情報「ドメイン#2」およびトリプル#3-1の取得元情報「ドメイン#3」を紐付けてナレッジデータベースに登録する。
【0048】
また、情報提供装置10は、端末装置200から検索クエリを受付ける(ステップS5)。このような場合、情報提供装置10は、検索クエリと対応する情報をナレッジデータベースから検索し、検索結果を端末装置200へと提供する(ステップS6)。この際、情報提供装置10は、各登録トリプルに紐付けた取得元情報を用いて、検索対象とするトリプルやエンティティ、関係情報の絞り込みを行うこととなる。
【0049】
〔1-5.検索処理について〕
続いて、
図2を用いて、情報提供装置10が実行する検索処理について説明する。
図2は、実施形態にかかる情報提供装置が実行する検索処理の一例を示す図である。なお、かかる検索処理は、
図1に示すステップS5およびステップS6に対応する。また、
図2に示す例では、
図1のステップS4に示すように、ナレッジデータベース内のトリプルに対して取得元を示す取得元情報が紐付けられているものとする。
【0050】
例えば、情報提供装置10は、第1の利用者が利用する端末装置201から検索クエリを受付ける(ステップS1)。より具体的には、情報提供装置10は、検索クエリと、検索対象となるドメインの指定とを受付ける。このような場合、情報提供装置10は、指定されたドメインが紐付られたトリプルを用いて、検索クエリに対応する情報の検索を行う(ステップS2)。
【0051】
例えば、
図2に示す例では、エンティティ#1とエンティティ#2とを含む登録トリプル#1に対し、ドメイン#1が紐付けられており、エンティティ#1とエンティティ#3とを含む登録トリプル#2にドメイン#2、#3が紐付けられており、エンティティ#1とエンティティ#4とを含む登録トリプル#3に、ドメイン#1、#2が紐付けられているものとする。ここで、情報提供装置10は、第1の利用者から検索クエリとして「エンティティ#1」と検索対象「ドメイン#1」とを受付けていた場合、登録トリプル#1~#3のうち、「ドメイン#1」が紐付られた登録トリプル#1、#3から、「エンティティ#1」と所定の関連性を有する他のエンティティ(例えば、エンティティ#2やエンティティ#4等)を検索する。そして、情報提供装置10は、検索結果を端末装置201に送信する。
【0052】
一方、情報提供装置10は、例えば、第2の利用者が利用する端末装置202から検索クエリ「エンティティ#1」と検索対象「ドメイン#2」とを受付けていた場合、登録トリプル#1~#3のうち、「ドメイン#2」が紐付られた登録トリプル#2、#3から、「エンティティ#1」と所定の関連性を有する他のエンティティ(例えば、エンティティ#3やエンティティ#4等)を検索する。そして、情報提供装置10は、検索結果を端末装置202に送信する。
【0053】
すなわち、情報提供装置10は、取得元情報をトリプルに紐付けることで、ナレッジデータベースを取得元ごとに多重化する。より具体的には、情報提供装置10は、取得元となるドメインをトリプルに紐付けることで、ドメインごとに多重化したナレッジデータベース、すなわち、マルチドメインナレッジデータベースを生成する。そして、情報提供装置10は、利用者から受付けた検索クエリと対応する情報を、指定された取得元と対応する取得元情報が対応付けられたトリプルを用いて検索する。
【0054】
なお、
図2に示す例では、情報提供装置10は、取引元情報として、トリプルの取得元となるドメインを紐付けたが、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、各トリプルに対して信頼度を紐付けてもよい。より具体的には、情報提供装置10は、登録トリプル#1に対して、ドメイン#1と対応する信頼度「80」を付与し、登録トリプル#2に対して、ドメイン#2と対応する信頼度「50」とドメイン#3と対応する信頼度「30」との合計である信頼度「80」を付与し、登録トリプル#3に対して、ドメイン#1と対応する信頼度「80」とドメイン#2と対応する信頼度「50」との合計である信頼度「130」を付与する。
【0055】
そして、情報提供装置10は、例えば、利用者から指定された信頼度が「80」である場合、信頼度が「80」以上となる登録トリプル#1、#3を検索対象とし、利用者から指定された信頼度が「100」である場合、信頼度が「100」以上となる登録トリプル#3を検索対象としてもよい。また、例えば、情報提供装置10は、各トリプルに対して、取得元となるドメインを紐付けて登録しておき、利用者から信頼度の指定を受付けた場合は、各トリプルのうち、紐付られたドメインと対応する信頼度の和が指定された信頼度を超えるトリプルを検索対象としてもよい。
【0056】
〔1-6.信頼度の合計手法について〕
上述した例では、情報提供装置10は、トリプルの取得元に応じた信頼度の和が所定の閾値を超えるか否かに応じて、登録トリプルを決定した。ここで、情報提供装置10は、各種の重みづけを考慮した信頼度の値が所定の閾値を超えるか否かに応じて、登録トリプルを検索してもよい。
【0057】
例えば、情報提供装置10は、同一トリプルに紐付られた信頼度の荷重和が所定の閾値を超える場合は、これら同一トリプルと同じ関係性を有するトリプルを登録トリプルとしてもよい。なおこのような重みは、例えば、任意の情報に応じて調整可能であってよい。例えば、情報提供装置10は、トリプルの抽出元となるコンテンツの登録時期が古いほど、他の利用者からの評価が高い程、若しくは閲覧回数が多いほど、より大きい重みを設定してもよい。また、情報提供装置10は、トリプルの抽出元となるコンテンツの登録時期が新しい程、他の利用者からの評価が低いほど、若しくは、閲覧回数が低いほど、より小さい重みを設定してもよい。また、情報提供装置10は、トリプルに含まれる各エンティティの文字列や関係情報の文字列と、基準となる辞書情報に登録された文字列との一致度が高ければ高いほど、より大きい重みを設定してもよい。
【0058】
また、例えば、各ドメインに対する信頼度は、絶対的に決定されるもの以外にも、相対的に決定されるものが存在すると考えられる。そこで、情報提供装置10は、各トリプルの取得元となるコンテンツ同士の関連性に応じた重みを用いて、同一トリプルに紐付られた信頼度の荷重和を算出してもよい。例えば、情報提供装置10は、ドメイン#4よりもドメイン#5の方が、相対的に信頼度が高い場合、ドメイン#4から取得したトリプルよりも、ドメイン#5から取得したトリプルに対してより高い値の信頼度や重みを付与して、信頼度の合計を算出してもよい。また、例えば、情報提供装置10は、ドメイン#5よりおドメイン#6の方が、相対的に信頼度が高い場合、ドメイン#5から取得したトリプルよりも、ドメイン#6から取得したトリプルに対してより高い値の信頼度や重みを付与して、信頼度の合計を算出してもよい。すなわち、情報提供装置10は、同一トリプルの取得元となる各ドメイン間の相対的な信頼性に応じて、各同一トリプルの信頼度の合計を算出する際の重みを変動させてもよい。
【0059】
また、情報提供装置10は、構造化データから取得したトリプルに対し、所定の閾値よりも高い値の信頼度を紐付け、半構造化データから取得したトリプルに対し、所定の閾値よりも低い値の信頼度を紐付けてもよい。すなわち、情報提供装置10は、構造化データから取得したトリプルに対し、半構造化データから取得したトリプルよりも高い値の信頼度を紐付けてもよい。
【0060】
また、情報提供装置10は、取得元のドメインと、取得したトリプルに含まれる関係情報が示す関係とに応じた信頼度をトリプルに紐付けてもよい。例えば、情報提供装置10は、書籍に関する情報の信頼性が高い第1ドメインから取得したトリプルに含まれる関係情報が「著者」等、書籍との関連性が高い関係を示す場合は、比較的高い値の信頼性をトリプルに紐付けし、第1ドメインから取得したトリプルに含まれる関係情報が「所在地」等、書籍との関連性が低い関係を示す場合は、比較的低い値の信頼性をトリプルに紐付けしてもよい。
【0061】
〔1-7.具体的な処理の一例について〕
上述した例では、情報提供装置10は、コンテンツから取得したトリプルに対して取得元情報を紐付けし、トリプルに紐付られた取得元情報に基づいて、登録トリプルの決定を行った。ここで、情報提供装置10は、上述した処理以外にも、各種の処理を実行することで、ナレッジデータベースの精度を向上させてもよい。
【0062】
例えば、上述したように、ウェブ上には、同一対象間における同一の関係性を異なる言葉で表現したコンテンツが含まれる場合がある。そこで、情報提供装置10は、各種の正規化を行うことで、各エンティティとエンティティが示す対象とのマッピングを行ってもよい。また、情報提供装置10は、ナレッジデータベースの多様性を担保するため、構造化データのみならず、半構造化データからもトリプルを取得するが、このように半構造化データからトリプルを取得するために必要な機能(例えば、どのタグが付された情報からトリプルを抽出するか等)を有していてもよい。また、情報提供装置10は、人手で入力された情報を参考に用いることで、ナレッジデータベースの精度をさらに向上させてもよい。
【0063】
以下、
図3を用いて、情報提供装置10がナレッジデータベースを生成する処理の具体例について説明する。
図3は、実施形態に係る情報提供装置が実行する処理の流れの一例を説明する図である。
図3に示すように、情報提供装置10は、システムSで示される一連の処理を実行することで、構造化データや被構造化データからナレッジデータベースを生成する。
【0064】
例えば、情報提供装置10が実行するシステムSには、ImporterS1、Information ExtractorS2、Attribute ConverterS3、Entitiy MatcherS4、Entitiy ConnectorS5、Id AssignerS6、Additional Data CombinerS7、Entity MergerS8、Object ConverterS9、Attribute CompleterS10、ValidatorS11、およびExporterS12(以下、「各処理S1~S12」と総称する場合がある。)といった処理が含まれる。なお、システムSは、各処理S1~S12を実行する機能構成を含むハードウェアであってもよく、ニューラルネットワーク等の各種モデルであってもよい。
【0065】
以下、各処理S1~S12における処理の一例を説明する。ImporterS1は、様々なスキーマのデータから、最終的に作成するナレッジデータベースのスキーマに合致するようにエンティティとして取り込む。例えば、ImporterS1は、既にエンティティ間の関係性が設定されているような構造化データから、トリプルを抽出し、抽出したトリプルに対して、取得元情報を付与したデータを生成する。
【0066】
例えば、ImporterS1は、構造化データのトリプルに含まれる関係情報が、どのような関係性を示しているかを特定し、最終的に生成するナレッジデータベースにおいて、特定した関係性を示す関係情報を特定する。例えば、ImporterS1は、主語を示す第1エンティティ、目的語を示す第2エンティティ、および述語を示す関係性情報として含むトリプルを特定する。なお、各エンティティや関係性情報は、同一の対象や関係性を示すものであっても、それぞれ文字列が異なる場合がある。この結果、ImporterS1は、実世界において同一の対象間における同一の関係性を示すトリプルとして、エンティティや関係性情報の文字列が異なる複数のトリプルを特定することとなる。また、ImporterS1は、取得したトリプルに対して取得元情報を紐付けるとともに、各トリプルに対して一意な仮IDを付与する。
【0067】
Information ExtractorS2は、ウェブ文章等の半構造化データからトリプルを取得する。例えば、Information ExtractorS2は、タグの解析や形態素解析等の技術を用いて、半構造化データからトリプルを取得する。また、Information ExtractorS2は、ナレッジデータベースに登録済みのエンティティと、取得したトリプルに含まれるエンティティとを比較し、同一の対象を示すエンティティ同士の紐付けを行う。
【0068】
Attribute ConverterS3は、入力データのクラスをナレッジデータベースのクラスに変換する。例えば、Attribute ConverterS3は、トリプルの取得元となる構造化データにおいて各エンティティに付与されたクラス(すなわち、エンティティが示す対象の属性を示す情報)と、ナレッジデータベースにおける各エンティティのクラスとを対応付けたマッピング情報を参照し、取得したトリプルに含まれる各エンティティのクラスをナレッジデータベースのクラスに変換する。例えば、Attribute ConverterS3は、同一の対象を示すエンティティの文字列を正規化するとともに、同一の関係性を示す関係性情報の正規化を行う。例えば、Attribute ConverterS3は、英語表記の関係情報「auter」を日本語表記の関係情報「著者」に変換したトリプルを取得する。
【0069】
Entity MatcherS4は、同じ対象を示すエンティティをマッチングし、同一エンティティのグループを生成する。例えば、Entity MatcherS4は、各トリプルに含まれるエンティティを比較し、同一対象の同一関係を示すと推定されるエンティティを特定する。そして、Entity MatcherS4は、特定したエンティティに対して、グループIDを付与する。なお、Entity MatcherS4は、各エンティティのクラス(属性)について矛盾がないように同一トリプルの特定を行ってもよい。また、Entity MatcherS4は、属性について矛盾がないエンティティ同士を紐付けた場合に、エンティティ同士を結ぶグラフ構造においてクリーク構造を満たすエンティティを同一のエンティティと見做してもよい。
【0070】
Entity ConnectorS5は、クラスが異なるが互いに関連するエンティティのグループ同士を紐付ける。すなわち、Entity ConnectorS5は、クラスが異なるが、互いに同一の対象を示すと推定されるエンティティのグループ同士の紐付けを行う。
【0071】
Id AssignerS6は、各エンティティのグループに対し、最終的なナレッジデータベースにおいてエンティティに付与されるID(Identifier)を紐付ける。例えば、Id AssignerS6は、登録済みのエンティティのうち、グループ化されたエンティティと同一の対象を示すエンティティを特定し、特定したエンティティに付与されたIDをグループ化されたエンティティに対して付与する。
【0072】
Additional Data CombinerS7は、人手によりId AssignerS6によって付与されたIDの修正を反映させる。また、Additional Data CombinerS7は、Information ExtractorS2により取得されたエンティティに対し、同一対象を示す登録済みのエンティティに付与されたIDを紐付ける。
【0073】
Entity MergerS8は、同一の対象を示す複数のエンティティ、すなわち、同一エンティティを1つのエンティティに統合する。この際、Entity MergerS8は、エンティティに紐付られた取得元情報に応じた信頼度の足し合わせや荷重和の算出を行う。
【0074】
Object ConverterS9は、トリプルに含まれるエンティティのうち、目的語となるエンティティと同一の対象を示す登録済みエンティティのIDとを紐付ける。
【0075】
Attribute CompleterS10は、エンティティに新たな情報の追加を行う。例えば、Attribute CompleterS10は、予め設定されたオントロジに基づいて、情報の追加を行う。また、Attribute CompleterS10は、オントロジに基づいて、欠損しているトリプルの発見や追加を行ってもよい。なお、このようなトリプルの発見や追加や、ルールベース、機械学習等、任意の手法により実現可能である。
【0076】
ValidatorS11は、取得元情報に基づいて、信頼度が低いトリプルの削除や修正を行う。例えば、ValidatorS11は、Entity MergerS8によって算出された信頼度の和が所定の閾値を超える場合にのみ、登録トリプルとする。なお、ValidatorS11は、あらかじめ人手で設定されたブラックリストと一致するトリプルについては、信頼度によらず、登録対象から除外してもよい。
【0077】
ExporterS12は、信頼度が所定の閾値を超えるトリプルを所定のフォーマットでナレッジデータベースに登録する。なお、ExporterS12は、トリプルの各エンティティに付与された情報のうち、予め設定された情報以外の情報を削除してもよい。
【0078】
〔2.情報提供装置の構成〕
以下、上記した情報提供装置10が有する機能構成の一例について説明する。
図4は、実施形態に係る情報提供装置の構成例を示す図である。
図4に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
【0079】
通信部20は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、データサーバ100や端末装置200との間で情報の送受信を行う。
【0080】
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、エンティティデータベース31、トリプルデータベース32、および信頼度テーブル33(以下、「各データベース31~33」と総称する場合がある。)を記憶する。
【0081】
以下、
図5~7を用いて、各データベース31~33に登録される情報の一例を説明する。エンティティデータベース31には、エンティティに関する情報が登録される。例えば、
図5は、実施形態に係るエンティティデータベースに登録される情報の一例を示す図である。
図5に示すように、エンティティデータベース31には、「エンティティID」、「エンティティ種別」、「ノードID」、「ノード種別」、および「データ」といった項目を有する情報が登録される。
【0082】
ここで、「エンティティID」とは、エンティティの識別子である。また、「エンティティ種別」とは、対応付けられた「エンティティID」が示すエンティティの種別を示す情報であり、例えば、エンティティが「人物」を示すエンティティであるか「職業」を示すエンティティであるかといった情報を示す。「ノードID」は、対応付けられた「エンティティID」が示すエンティティと関連するノードの識別子である。「ノード種別」は、対応付けられた「ノードID」が示すノードの種別を示す情報であり、ノードが名前を示すか、写真を示すか、職業を示すか等といった情報である。また、「データ」とは、対応付けられた「ノードID」が示すノードのデータである。
【0083】
例えば、
図5に示す例では、エンティティID「E11」、エンティティ種別「人物」、ノードID「I111」、ノード種別「名前」、およびデータ「名前#1」が対応付けて登録されている。このような情報は、エンティティID「E11」が示すエンティティ(すなわち、エンティティE11)が「人物」を示すエンティティであり、そのエンティティが示す人物の「名前」を示すノードとしてノードID「I111」が登録されており、その名前が「名前#1」である旨を示す。なお、
図5に示す例では、「名前#1」や「写真#1」等といった概念的な値を記載したが、実際には、エンティティデータベース31には、対応付けられたエンティティと対応する人物の名前、写真、生年月日等を示す各種の情報が登録されることとなる。
【0084】
トリプルデータベース32には、トリプルを示す情報が登録される。例えば、
図6は、実施形態に係るトリプルデータベースに登録される情報の一例を示す図である。
図6に示す例では、トリプルデータベース32には、「トリプルID」、「関係情報ID」、「種別」、「第1要素」、「第2要素」、および「取得元情報」といった項目を有する情報が登録される。
【0085】
ここで、「トリプルID」とは、トリプルを識別する識別子である。また、「関係情報ID」とは、トリプルに含まれる関係情報を識別する識別子である。また、「種別」とは、トリプルに含まれるエンティティ間の関係性を示す情報である。また、「第1要素」および「第2要素」とは、対応付けられた「トリプルID」が示すトリプルに含まれるエンティティのエンティティIDである。また、「取得元情報」とは、対応付けられたトリプルの取得元と対応する情報であり、例えば、取得元のドメインを示す情報や信頼度を示す情報である。
【0086】
例えば、
図6に示す例では、トリプルID「トリプル#1」、関係情報ID「C1」、種別「職業」、第1要素「E11」、第2要素「E21」、および「ドメイン#1」が対応付けて登録されている。このような情報は、トリプルID「トリプル#1」が示すトリプルとして、エンティティE11とエンティティE12と関係情報C1とが対応付けて登録されており、エンティティE21がエンティティE11の職業である旨を示す。また、このような情報は、このトリプルが「ドメイン#1」から取得された情報である旨を示す。
【0087】
信頼度テーブル33には、トリプルの取得元に応じた信頼度の情報が登録される。例えば、
図7は、実施形態に係る信頼度テーブルに登録される情報の一例を示す図である。
図7に示すように、信頼度テーブル33には、「ドメイン」および「信頼度」が対応付けて登録されている。ここで「ドメイン」は、トリプルの取得元となるドメインを示す情報である。例えば、
図7に示す例では、ドメイン「ドメイン#1」および信頼度「80」が対応付けて登録されている。このような情報は、ドメイン「ドメイン#1」が示すドメインのコンテンツから取得したトリプルの信頼度が「80」である旨を示す。
【0088】
図4に戻り、説明を続ける。制御部40は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、情報提供装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0089】
図2に示すように、制御部40は、取得部41、紐付部42、判定部43、決定部44、登録部45、および検索部46を有する。なお、
図4に示す機能構成は、
図3に示すシステムSと必ずしも一致するものではないが、
図3に示す各処理S1~S12の一部もしくは全体を実行することで、
図3に示すシステムと同様に、トリプルの信頼度に応じて登録トリプルをナレッジデータベースに登録することで、ナレッジデータベースの精度を向上させることができる。換言すると、
図4に示す機能構成は、
図3に示す各処理S1~S12が発揮する主要な機能を示すものである。
【0090】
取得部41は、ネットワーク上のコンテンツから、第1対象と第2対象と対象間の関係を示す関係情報とを含むトリプルの候補を取得する。例えば、取得部41は、データサーバ100から構造化データや半構造化データを取得し、取得したコンテンツから、第1エンティティと、第2エンティティと、各エンティティが示す対象間の関係性を示す関係情報との組であるトリプルを抽出する。なお、取得部41は、ネットワーク上のコンテンツとして、対象間の関係性があらかじめ定義されている構造化データ、若しくは、データの属性が設定された半構造化データから、トリプルを取得してもよい。
【0091】
紐付部42は、取得部により取得されたトリプルに対し、取得元となるコンテンツと対応する取得元情報を紐付ける。例えば、紐付部42は、トリプルの取得元となったコンテンツを示す情報、コンテンツが属するドメインを示す情報、若しくは、取得元となったコンテンツやドメインに応じた信頼度を取得元情報としてトリプルに紐付ける。なお、紐付部42は、例えば、構造化データから取得したトリプルに対し、所定の閾値よりも高い値の信頼度を紐付け、半構造化データから取得したトリプルの候補に対し、所定の閾値よりも低い値の信頼度を紐付けてもよい。
【0092】
判定部43は、異なるコンテンツから取得されたトリプルの候補が、同一の第1対象を示す第1エンティティと、同一の第2対象を示す第2エンティティと、同一の関係を示す関係情報とを含むか否かを判定する。例えば、判定部43は、各種の辞書やオントロジー等を用いて、取得部41に取得されたトリプルに含まれる各エンティティや関係情報が同一の対象や関係を示しているか否かを判定する。すなわち、判定部43は、各トリプルが同一トリプルであるか否かを判定する。
【0093】
決定部44は、各トリプルに対して紐付られた取得元情報に基づいて、各候補の中から登録対象とするトリプルを決定する。例えば、決定部44は、トリプルに紐付られた信頼度が所定の条件を満たす場合は、トリプルの候補を登録対象とする。また、決定部44は、同一トリプルに紐付られた信頼度の和や荷重和が所定の閾値を超える場合に、かかる同一トリプルと同じ対象の同じ関係性を示すトリプルを登録対象としてもよい。すなわち、決定部44は、それぞれ異なるコンテンツから取得された複数のトリプルであって、第1エンティティが示す第1対象と、第2エンティティが示す第2対象と、関係情報が示す関係とが一致する複数のトリプルのそれぞれと紐付られた信頼度が所定の条件を満たす場合は、各トリプルと同一内容のトリプルを登録対象としてもよい。
【0094】
なお、決定部44は、取得元となるコンテンツ同士の関連性に応じた重みを用いて、荷重和の算出を行ってもよい。例えば、決定部44は、取得元となるコンテンツのドメイン同士の相対的な信頼度に応じた重みを荷重和に適用してもよい。また、例えば、決定部44は、各トリプルに対して取得元のドメインを示す取得元情報が紐付けられている場合、取得元情報と対応付けられた信頼度を信頼度テーブル33から読出し、読み出した信頼度が所定の条件を見做すか否かに基づいて、トリプルを登録対象とするか否かを決定してもよく、例えば、取得元情報が示す取得元と、同一トリプルの数とが所定の条件を満たすか否かに基づいて、トリプルを登録対象とするか否かを決定してもよい。
【0095】
登録部45は、登録対象としたトリプルと取得元情報とを対応付けてデータベースに登録する。例えば、登録部45は、登録対象とされたトリプルに含まれる各エンティティの情報をエンティティデータベース31に登録する。また、登録部45は、トリプルに含まれる各エンティティのエンティティIDと関係情報と、取得元情報とを対応付けてトリプルデータベース32に登録する。
【0096】
検索部46は、各トリプルに紐付られた取得元情報に応じて、検索クエリと対応する情報を検索する。例えば、検索部46は、端末装置200から、検索クエリと共に、ドメインの指定を受付ける。このような場合、検索部46は、トリプルデータベース32から、端末装置200から指定されたドメインが取得元情報として紐付られたトリプルを特定し、特定したトリプルに含まれる各エンティティのデータを検索対象として、検索クエリと対応する情報を検索する。
【0097】
なお、検索部46は、例えば、端末装置200から信頼度を受付けた場合、トリプルデータベース32と信頼度テーブル33とを参照し、紐付られた取得元情報が示す信頼度が端末装置200から受付けた信頼度よりも高いトリプルを特定する。そして、検索部46は、特定したトリプルに含まれる各エンティティのデータを検索対象として、検索クエリと対応する情報を検索してもよい。その後、検索部46は、検索結果を端末装置200に対して提供する。
【0098】
〔3.情報提供装置が実行する処理の流れの一例〕
続いて、
図8を用いて、情報提供装置10が実行する決定処理の流れについて説明する。
図8は、実施形態に係る情報提供装置が実行する決定処理の流れの一例を示すフローチャートである。
【0099】
まず、情報提供装置10は、各コンテンツからトリプルを取得する(ステップS101)。続いて、情報提供装置10は、トリプルの取得元に対応する取得元情報をトリプルに紐付ける(ステップS102)。また、情報提供装置10は、同一の関連性を示すトリプルを特定する(ステップS103)。そして、情報提供装置10は、特定した各トリプルに紐付られた取得元情報に基づいて、これらのトリプルが示す関連性を示すトリプルを登録対象とするか否かを決定する(ステップS104)。その後、情報提供装置10は、登録対象としたトリプルを、取得元情報を紐付けた状態でデータベースに登録し(ステップS105)、処理を終了する。
【0100】
続いて、
図9を用いて、情報提供装置10が実行する検索処理の流れについて説明する。
図9は、実施形態に係る情報提供装置が実行する検索処理の流れの一例を示すフローチャートである。
【0101】
まず、情報提供装置10は、端末装置200から検索クエリを受付けたか否かを判定し(ステップS201)、受付けていない場合は(ステップS201:No)、処理を待機する。一方、情報提供装置10は、検索クエリを受付けた場合は(ステップS201:Yes)、各トリプルのうち、検索クエリが示す取得元と対応するトリプルを特定する(ステップS202)。そして、情報提供装置10は、特定したトリプルを辿り、検索クエリと対応するエンティティを検索する(ステップS203)。その後、情報提供装置10は、検索結果を提供し(ステップS204)、処理を終了する。
【0102】
〔4.変形例〕
上記では、情報提供装置10による決定処理および検索処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供装置10が実行する決定処理および検索処理のバリエーションについて説明する。
【0103】
〔4-1.エンティティの種別について〕
上述した例では、ナレッジデータベースの一例として、人物と作品との関連性を示すトリプル等を説明したが、実施形態は、これに限定されるものではない。すなわち、情報提供装置10は、任意の物事を示すナレッジデータベースの更新を行ってよい。
【0104】
〔4-2.装置構成〕
情報提供装置10は、自装置でナレッジデータベースを管理せずともよい。例えば、記憶部30に登録された各データベース31~33は、外部のストレージサーバに保持されていてもよい。また、情報提供装置10は、検索処理を実現するフロントエンドサーバと、決定処理を実現するバックエンドサーバとで実現されてもよい。このような場合、バックエンドサーバには、
図4に示す各部41~45が配置され、フロントエンドサーバには、ナレッジデータベースに検索を行う機能を発揮するための検索部46が配置される。
【0105】
〔4-3.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0106】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0107】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0108】
〔4-4.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば
図10に示すような構成のコンピュータ1000によって実現される。
図10は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0109】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
【0110】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0111】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0112】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0113】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0114】
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
【0115】
〔5.効果〕
上述したように、情報提供装置10は、ネットワーク上のコンテンツから、第1対象と第2対象と対象間の関係を示す関係情報とを含むトリプルの候補を取得する。また、情報提供装置10は、取得された候補に対し、候補の取得元となるコンテンツと対応する取得元情報を紐付ける。そして、情報提供装置10は、各候補に対して紐付られた取得元情報に基づいて、候補の中から登録対象とするトリプルを決定する。このような処理の結果、情報提供装置10は、例えば、信頼性が高い取得元から取得されたトリプルを登録対象とするので、自動でナレッジデータベースを拡張しつつ、信頼性を担保することができる結果、有用なナレッジデータベースを提供することができる。
【0116】
ここで、情報提供装置10は、取得元情報として、コンテンツに対する信頼性を示す数値である信頼度を紐付けてもよい。また、情報提供装置10は、取得元情報として、コンテンツのドメインに応じた信頼度を紐付けてもよい。そして、情報提供装置10は、トリプルの候補に紐付られた信頼度が所定の条件を満たす場合は、トリプルの候補を登録対象とする。例えば、情報提供装置10は、それぞれ異なるコンテンツから取得された複数の候補であって、第1対象と、第2対象と、関係情報とが一致する複数の候補のそれぞれと紐付られた信頼度が所定の条件を満たす場合は、第1対象と、第2対象と、関係情報とを含むトリプルを登録対象とする。なお、情報提供装置10は、第1対象と、第2対象と、関係情報とが一致する複数の候補に紐付られた信頼度の荷重和が所定の閾値を超える場合は、第1対象と、第2対象と、関係情報とを含むトリプルを登録対象としてもよい。このような処理の結果、情報提供装置10は、登録するトリプルの信頼性を担保することができるので、有用なナレッジデータベースを提供することができる。
【0117】
また、情報提供装置10は、各候補の取得元となるコンテンツ同士の関連性に応じた重みを用いて、第1対象と、第2対象と、関係情報とが一致する複数の候補に紐付られた信頼度の荷重和を算出してもよい。この結果、情報提供装置10は、例えば、コンテンツ同士の関連性を考慮して、トリプルの信頼性を算出するので、登録するトリプルの信頼性をさらに向上させることができる。
【0118】
また、情報提供装置10は、ネットワーク上のコンテンツとして、対象間の関係性があらかじめ定義されている構造化データ、若しくは、データの属性が設定された半構造化データから、トリプルの候補を取得する。ここで、情報提供装置10は、構造化データから取得したトリプルの候補に対し、所定の閾値よりも高い値の信頼度を紐付け、半構造化データから取得したトリプルの候補に対し、所定の閾値よりも低い値の信頼度を紐付けてもよい。このため、情報提供装置10は、ナレッジデータベースの自動的な拡張を実現するとともに、信頼性の高いナレッジデータベースを提供することができる。
【0119】
また、情報提供装置10は、異なるコンテンツから取得されたトリプルの候補が、同一の第1対象を示す第1要素と、同一の第2対象を示す第2要素と、同一の関係を示す関係情報とを含むか否かを判定する。そして、情報提供装置10は、同一の第1対象を示す第1要素と、同一の第2対象を示す第2要素と、同一の関係を示す関係情報とを含むと判定された複数のトリプルの候補に紐付られた取得元情報に基づいて、候補を登録対象とするか否かを決定する。このため、情報提供装置10は、ナレッジデータベースに登録されるトリプルの信頼性を担保することができる。
【0120】
また、情報提供装置10は、取得元情報が所定の条件を満たす場合は、第1対象を示す第1要素と、第2対象を示す第2要素と、関係を示す関係情報とを含むトリプルを登録対象とする。このため、情報提供装置10は、登録するトリプルの信頼性を担保することができる。
【0121】
また、情報提供装置10は、登録対象としたトリプルと取得元情報とを対応付けてデータベースに登録する。このため、情報提供装置10は、例えば、取得元や取得元の信頼性を考慮した検索を実現可能なナレッジデータベースを提供することができる。
【0122】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0123】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、付与部は、特定手段や特定回路に読み替えることができる。
【符号の説明】
【0124】
10 情報提供装置
20 通信部
30 記憶部
31 エンティティデータベース
32 トリプルデータベース
33 信頼度テーブル
40 制御部
41 取得部
42 紐付部
43 判定部
44 決定部
45 登録部
46 検索部
100 データサーバ
200、201、202 端末装置