(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023133959
(43)【公開日】2023-09-27
(54)【発明の名称】情報処理プログラム、情報処理方法および情報処理装置
(51)【国際特許分類】
G06F 40/134 20200101AFI20230920BHJP
【FI】
G06F40/134
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022039241
(22)【出願日】2022-03-14
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】松下 京群
【テーマコード(参考)】
5B109
【Fターム(参考)】
5B109NH02
(57)【要約】 (修正有)
【課題】エンティティ・リンキングの適正化を図る情報処理プログラム、情報処理方法及び情報処理装置を提供する。
【解決手段】エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、候補情報に含まれる単語の内の、他の候補情報では比較して出現率の低い単語に対応する情報を外部情報に基づいて特定する情報処理装置であって、特定した出現率の低い単語に対応する情報と、文章に含まれる特定単語周辺の単語とを基にして、特定単語のリンキング対象となる候補情報を判別するための単語を決定する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、候補情報に含まれる単語の内の、他の候補情報では比較して出現率の低い単語に対応する情報を外部情報に基づいて特定し、
特定した前記出現率の低い単語に対応する情報と、前記文章に含まれる特定単語周辺の単語とを基にして、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記単語を決定する処理は、前記出現率の低い情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定することを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記単語を決定する処理は、前記複数の候補情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から単語を決定し、決定した単語を、前記特定単語のリンキング対象となる候補情報を判別するための単語に追加することを特徴とする請求項2に記載の情報処理プログラム。
【請求項4】
前記外部情報は前記候補情報に関する要素を有向グラフで表現された情報であり、
前記特定する処理は、前記複数の候補要素に関する要素を比較し、他の候補情報との共通性が低い要素を、前記出現率の低い情報として特定することを特徴とする請求項1に記載の情報処理プログラム。
【請求項5】
前記特定単語のリンキング対象となる候補情報を判別するための単語を出力する処理を更に実行することを特徴とする請求項1に記載の情報処理プログラム。
【請求項6】
前記特定単語のリンキング対象となる候補情報を判別するための単語の分散表現と、前記複数の候補情報の分散表現とを基にして、前記特定単語のリンキング対象となる候補情報を選択する処理を更に実行することを特徴とする請求項1に記載の情報処理プログラム。
【請求項7】
複数の候補情報の分散表現と、出現率の低い情報の分散表現との関係を定義した訓練データを基にして、分散表現の入力に応じて、入力された前記分散表現に対応する出現率の低い情報の分散表現を出力するように訓練された機械学習モデルに、対象の候補情報に関する情報の分散表現を入力して得られる出力結果に基づいて、前記エンティティ・リンキングに用いる単語の分散表現を決定する処理を更に実行することを特徴とする請求項1に記載の情報処理プログラム。
【請求項8】
エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、候補情報に含まれる単語の内の、他の候補情報では比較して出現率の低い単語に対応する情報を外部情報に基づいて特定し、
特定した前記出現率の低い単語に対応する情報と、前記文章に含まれる特定単語周辺の単語とを基にして、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項9】
エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、候補情報に含まれる単語の内の、他の候補情報では比較して出現率の低い単語に対応する情報を外部情報に基づいて特定する特定部と、
特定した前記出現率の低い単語に対応する情報と、前記文章に含まれる特定単語周辺の単語とを基にして、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する決定部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム等に関する。
【背景技術】
【0002】
自然言語処理のタスクとして、エンティティ・リンキング(Entity Liking)と呼ばれるタスクがある。エンティティ・リンキングは、文中のmentionを適切なentityにリンクさせる。
【0003】
ここで、「mention」は、文中に出現する、何らかの実態を示す文字列である。たとえば、mentionの例として、「Earth」、「Japan」等がある。「entity」は、mentionのリンク先にあたる何らかの情報を示す。たとえば、「entity」は、インターネット上の巨大な知識ベース上で「mention」が表しているものに対応するウェブページのURLが用いられる。
【0004】
図11は、エンティティ・リンキングを説明するための図(1)である。たとえば、
図11に示す文「地球 は 私たち が 住む 場所 です。」に含まれるmention「地球」を、対応するentity「http://en.abcd.org/abc/Earth」にリンクすることが求められているものとする。
図11の上段に示すように、最初は、mentionと、entityとがバラバラの状態となっている。
【0005】
エンティティ・リンキングを実行することで、
図11の下段に示すように、mention「地球」が、適切なentity「http://en.abcd.org/abc/Earth」へのリンクを得ることができる。
【0006】
図11で説明した例では、エンティティ・リンキングによって、mentionがentityにリンクされる場合について説明したが、mentionとcandidatesとが与えられた状態からエンティティ・リンキングを行うタスクもあり、かかるタスクは、Entity Disambiguationと呼ばれる。
【0007】
ここで「candidates」は、mentionに対して選択される「entityの全体集合よりも小さい集合」である。適宜、candidatesに含まれる複数の候補のうち、1つの候補を「entity」と表記する。たとえば、mention「地球」のcandidatesとして、以下のようなentity(1a)~(4a)がある。
【0008】
entity(1a) http://en.abcd.org/abc/Earth
entity(2a) http://en.abcd.org/abc/Earth_(1939_film)
entity(3a) http://en.abcd.org/abc/Earth_(Brin_novel)
entity(4a) http://en.abcd.org/abc/Earth_(American_band)
【0009】
図12は、エンティティ・リンキングを説明するための図(2)である。たとえば、mention「地球」の適切なentityを、entity(1a)とする。この場合、複数のentity(1a)~(4a)から、適切なentity(1a)を選択することが求められる。
【0010】
適切なentity(1a)を選択することができれば、選択したentity(1a)に対して、エンティティ・リンキングを実行することで、mention「地球」が、適切なentity「http://en.abcd.org/abc/Earth」へのリンクを得ることができる。entityを選択する技術として、下記に説明する従来技術がある。
【0011】
続いて、candidates(複数のentity)から、mentionのリンク先となる1つのentityを選択する従来技術の一例について説明する。まず、従来技術を説明するための前提条件について説明する。従来技術では、文「Sakura of Jiro Morikawa is a famous song in Japan.」に含まれる「Sakura」をmentionとする。「Sakura」のcandidatesとして、以下のようなentity(1b)~(3b)が与えられているものとする。なお、entity(1b)、(2b)の<>で示す情報は、補足情報であり、entity(1b)、(2b)に含まれていなくてもよい。entity(1b)、(2b)の「Sakura」は日本の曲名である。
【0012】
entity(1b) /Sakura_(Jiro Morikawa<JapaneseSong1>)
entity(2b) /Sakura_(Ooshiro<JapaneseSong2>)
entity(3b) /Sakura_(Plant)
【0013】
従来技術では、candidatesの中で、mention「Sakura」がリンクすべきentityを、entity(1b)「/Sakura_(Jiro Morikawa<JapaneseSong1>)」とする。
【0014】
また、文中のmentionの周囲にある単語を「周辺単語」と表記する。たとえば、文「Sakura of Jiro Morikawa is a famous song in japan.」の「Sakura」をmentionとする。この場合、周辺単語は「Sakura」、「of」、「Jiro」、「Morikawa」、「is」、「a」、「famous」、「song」、「in」、「japan」、「.」となる。従来技術では、かかる周辺単語を用いて説明を行う。
【0015】
周辺単語やcandidatesに関する数値計算を行うために、周辺単語やcandidatesにはそれぞれ、分散表現(ベクトル)が割り当てられているものとする。各ベクトルは、Knowledge Graph上の周辺構造や文中の周辺単語等から機械的に学習することができる。
【0016】
図13~
図15は、従来技術を説明するための図である。
図13について説明する。従来技術の処理を実行する装置を、従来装置と表記する。従来装置は、周辺単語と、candidatesのペア毎に注目度を算出する。たとえば、従来装置は、式(1)を用いて、注目度Att(Attention)を算出する。式(1)において、「e
i,w
j」は、entityと、周辺単語とのペアを示し、「Att(e
i,w
j)」は、ペアとなったentityのベクトルと、周辺単語のベクトルとの注目度(attention weight)を示す。
【0017】
Att(ei,wj)・・・(1)
【0018】
図13の説明では、e
1を「/Sakura_(Jiro Morikawa<JapaneseSong1>)」とする。e
2を「/Sakura_(Ooshiro<JapaneseSong2>)」とする。e
3を「/Sakura_(Plant)」とする。
【0019】
図13の説明では、w
1を「Sakura」とする。w
2を「of」とする。w
3を「Jiro」とする。w
4を「Morikawa」とする。w
5を「is」とする。w
6を「a」とする。w
7を「famous」とする。w
8を「song」とする。w
9を「in」とする。w
10を「japan」とする。w
11を「.」とする。
【0020】
たとえば、
図13において、Att(e
2,w
10)は、entity(1b)「/Sakura_(Ooshiro<JapaneseSong2>)」のベクトルと、周辺単語「japan」のベクトルとのペアの注目度を示す。
【0021】
図14の説明に移行する。従来装置は、「Att(e
i,w
j)」の算出結果を基にして、周辺単語毎に、「Att(e
i,w
j)」の注目度の最大値を選択する。たとえば、従来装置は、周辺単語「Sakura」に関する注目度の最大値を選択する場合には、「Att(e
1,w
1)」、「Att(e
2,w
1)」、「Att(e
3,w
1)」のうち、最大のものを選択する。従来装置は、他の周辺単語についても同様に、注目度の最大値を選択する。
【0022】
図15の説明に移行する。従来装置は、各周辺単語の注目度の最大値を比較し、注目度の最大値の高い上位K個の周辺単語を選択する。
図15に示す例では、K=3とし、注目度の最大値の高い上位3個の周辺単語を「Sakura」、「song」、「japan」とする。従来装置は、選択した周辺単語を用いて、entityの選択に利用する。
【先行技術文献】
【非特許文献】
【0023】
【非特許文献1】Octavian-Eugen Ganea and Thomas Hofmann,”Deep Joint Entity Disambiguation with Local Neural Attention”, memarXiv:1704.04920v3 [cs.CL] 31 Jul 2017
【発明の概要】
【発明が解決しようとする課題】
【0024】
しかしながら、上述した従来技術では、適切なentityへのリンクが難しいケースがある。
【0025】
たとえば、candidatesに含まれるentity間の注目度が高く、周辺単語にcandidatesに含まれるentityを区別するための情報をうまく選択できないケースである。candidatesに含まれるentity間の注目度は比較的高い傾向にある。
図16は、entityのベクトルの注目度を説明するための図である。
図16では、棒グラフを用いて説明を行う。棒グラフの縦軸は、entity間の注目度(attention weight)を示す。candidatesに含まれる各entityは、「共通の情報」を含む傾向にあるため、注目度が高くなる。
図16では、candidatesに含まれるentity間の注目度の平均は「0.5」であり、全体のentity間の注目度の平均「0.06」よりも大きいことを示している。
【0026】
上述したcandidatesに含まれるentity(1b)~(3b)には、「song」、「japan」、「Sakura」等多くの共通の情報が含まれているが、これらの情報は、candidatesに含まれるentityを区別するための情報としては不十分である。
【0027】
一方、従来技術の従来装置は、周辺単語と、candidatesのペア毎に注目度をそれぞれ算出しており、candidatesに含まれるentity間の関係を無視しているため、entity間で共通の情報(周辺単語)であるかどうかにかかわらず、entityを区別するための周辺単語として選択してしまう。
図15で説明した従来技術では、共通の情報に相当する、周辺単語「song」、「japan」、「Sakura」を選択しており、このような場合、選択した周辺単語によって、リンキングの対象となるentityを絞り込めなくなる。
【0028】
1つの側面では、本発明は、エンティティ・リンキングの適正化を図ることができる情報処理プログラム、情報処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0029】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、候補情報に含まれる単語の内の、他の候補情報では比較して出現率の低い単語に対応する情報を外部情報に基づいて特定する。コンピュータは、特定した出現率の低い単語に対応する情報と、文章に含まれる特定単語周辺の単語とを基にして、特定単語のリンキング対象となる候補情報を判別するための単語を決定する。
【発明の効果】
【0030】
エンティティ・リンキングの適正化を図ることができる。
【図面の簡単な説明】
【0031】
【
図1】
図1は、Knowledge Graphを説明するための図である。
【
図2】
図2は、出現率の低い情報を説明するための図である。
【
図3】
図3は、外部知識から特定した情報を用いて周辺単語を選択する処理を説明するための図(1)である。
【
図4】
図4は、外部知識から特定した情報を用いて周辺単語を選択する処理を説明するための図(2)である。
【
図5】
図5は、本実施例に係る情報処理装置の処理を説明するための図である。
【
図6】
図6は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【
図7】
図7は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
【
図8】
図8は、情報処理装置の改善点を説明するための図である。
【
図9】
図9は、情報処理装置のその他の処理を説明するための図である。
【
図10】
図10は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図11】
図11は、エンティティ・リンキングを説明するための図(1)である。
【
図12】
図12は、エンティティ・リンキングを説明するための図(2)である。
【
図13】
図13は、従来技術を説明するための図(1)である。
【
図14】
図14は、従来技術を説明するための図(2)である。
【
図15】
図15は、従来技術を説明するための図(3)である。
【
図16】
図16は、entityのベクトルの注目度を説明するための図である。
【発明を実施するための形態】
【0032】
以下に、本願の開示する情報処理プログラム、情報処理方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例0033】
本実施例に係る情報処理装置は、外部知識を利用する。外部知識の一例として、Knowledge Graphについて説明する。
【0034】
図1は、Knowledge Graphを説明するための図である。Knowledge Graphは、物事の関係を(主語、述語、目的語)の形に当てはめて表現したラベル付きの有向グラフである。
図1のKnowledge Graph10の枠10Aでは、Earth(主語)のかな表記(述語)が「ちきゅう」(目的語)であることが表現されている。
【0035】
Knowledge Graph10では、特定の要素を指定して、指定の内容に当てはまる情報を取得することができる。たとえば、(Earth(主語)、shape(述語)、?)の情報を指定すると、枠10Bに含まれる情報(Earth(主語)、shape(述語)、ball(目的語))を取得することができる。
【0036】
本実施例に係る情報処理装置は、外部知識を用いてcandidates内で各entityを区別できる情報を特定する処理、外部知識から特定した情報を用いて周辺単語を選択する処理、candidates内の各entityを用いて周辺単語を選択する処理を実行する。
【0037】
情報処理装置が処理を行う上での前提条件として、文「Sakura of Jiro Morikawa is a famous song in japan.」に含まれる「Sakura」をmentionとする。「Sakura」のcandidatesとして、entity(1b)~(3b)が与えられているものとする。entity(1b)~(3b)の具体例は、従来説明で行ったものと同様である。
【0038】
情報処理装置が、外部知識を用いてcandidates内で各entityを区別できる情報を特定する処理について説明する。各entityを区別できる情報は、外部知識に含まれる情報のうち、他のentityの情報と比較して、出現率の低い情報(entity)となる。
【0039】
図2は、出現率の低い情報を説明するための図である。
図2に示す例では、candidatesに含まれるentity(1b)「/Sakura_(Jiro Morikawa<JapaneseSong1>)」と、entity(2b)「/Sakura_(Ooshiro<JapaneseSong2>)」とを用いて説明する。また、外部知識の一例として、外部知識20を用いる。なお、以降の説明では、「/Sakura_(Jiro Morikawa<JapaneseSong1>)」を、「/Sakura_(Jiro Morikawa)と表記する。「/Sakura_(Ooshiro<JapaneseSong2>)」を、「/Sakura_(Ooshiro)」と表記する。<JapaneseSong1>、<JapaneseSong2>は、該当するSakuraが、日本の曲名であることを説明するものである。
【0040】
entity(1b)は、外部知識20に含まれる情報のうち、entity(1c)「/Jiro_Morikawa」、entity(3c)「/Japan」、entity(4c)「/Song」、entity(5c)「/Single」に紐づけられる。「entity(1c)「/Jiro_Morikawa」は(1b)のアーティストに対応するentityとする。
【0041】
entity(2b)は、外部知識20に含まれる情報のうち、entity(2c)「/Ooshiro」、entity(3c)「/Japan」、entity(4c)「/Song」、entity(5c)「/Single」に紐づけられる。「entity(2c)「/Ooshiro」は(2b)のアーティストに対応するentityとする。
【0042】
entity(1b)に紐づけられた情報と、entity(2b)に紐づけられた情報とを比較すると、entity(1c)とentity(2c)はそれぞれentity(1b)とentity(2b)のみと紐づけられており、出現率の低い情報(entity)といえる。これにより、情報処理装置は、entity(1c)およびentity(2c)を特定する。
【0043】
たとえば、entity(3c)~(5c)は、entity(1b)およびentity(2b)に紐づけられているため、出現率が高いといえる。一方、entity(1c)は、entity(1b)のみに紐づけられ、出現率が低い。entity(2c)は、entity(2b)のみに紐づけられ、出現率が低い。
【0044】
情報処理装置が、外部知識から特定した情報を用いて周辺単語を選択する処理について説明する。
図3および
図4は、外部知識から特定した情報を用いて周辺単語を選択する処理を説明するための図である。
図3について説明する。ここでは、外部知識から特定した情報を、
図2で説明したentity(1c)「/Jiro_Morikawa」、entity(2c)「/Ooshiro」として説明を行う。図示を省略するが、外部知識から特定した情報は、entity(1c)、entity(2c)以外も含まれていてもよい。また、選択対象の周辺単語を、「Sakura」、「of」、「Jiro」、「Morikawa」、「is」、「a」、「famous」、「song」、「in」、「japan」、「.」とする。
【0045】
情報処理装置は、graph embedding や word embedding等の技術を用いて、entity(1c)、entity(2c)、各周辺単語に、ベクトルを割り当てる。たとえば、情報処理装置は、Knowledge Graph上のentity(1c)、entity(2c)の周辺構造などから、entity(1c)、entity(2c)に対応する分散表現(ベクトル)を学習する。情報処理装置は、文中の周辺単語から、各単語に対応する分散表現(ベクトル)を学習する。
【0046】
情報処理装置は、式(1)に基づいて、entity(1c)と、各周辺単語との注目度(attention weight)を算出する。情報処理装置は、式(1)に基づいて、entity(2c)と、各周辺単語との注目度を算出する。
【0047】
図3の説明では、e
1を「/Jiro_Morikawa」とする。e
2を「/Ooshiro」とする。w
1を「Sakura」とする。w
2を「of」とする。w
3を「Jiro」とする。w
4を「Morikawa」とする。w
5を「is」とする。w
6を「a」とする。w
7を「famous」とする。w
8を「song」とする。w
9を「in」とする。w
10を「japan」とする。w
11を「.」とする。
【0048】
たとえば、
図3において、Att(e
2,w
10)は、entity(2c)「/Ooshiro」のベクトルと、周辺単語「japan」のベクトルのattention weightを示す。
【0049】
図4の説明に移行する。情報処理装置は、「Att(e
i,w
j)」の算出結果を基にして、周辺単語毎に、「Att(e
i,w
j)」の注目度の最大値を選択する。たとえば、情報処理装置は、周辺単語「Sakura」に関する注目度の最大値を選択する場合には、「Att(e
1,w
1)」、「Att(e
2,w
1)」、・・・「Att(e
i,w
1)」のうち、最大のものを選択する。情報装置は、他の周辺単語についても同様に、注目度の最大値を選択する。
【0050】
情報処理装置は、各周辺単語の注目度の最大値を比較し、注目度の最大値の高い上位K個の周辺単語を選択する。
図4に示す例では、K=2とし、注目度の最大値の高い上位2個の周辺単語を「Jiro」、「Morikawa」とする。
【0051】
情報処理装置が、candidates内の各entityを用いて周辺単語を選択する処理について説明する。情報処理装置が、candidates内の各entityを用いて周辺単語を選択する処理は、従来装置と同様である。たとえば、情報処理装置は、
図13~
図15で説明した処理を実行し、周辺単語を選択する。
図15で説明した例を用いると、情報処理装置は、周辺単語「Sakura」、「song」、「japan」を選択する。
【0052】
本実施例に係る情報処理装置は、上記処理を実行し、外部知識から特定した情報を用いて選択した周辺単語と、candidates内の各entityを用いて選択した周辺単語とを用いて、mentionのリンキング先となるentityを特定する。
【0053】
図5は、本実施例に係る情報処理装置の処理を説明するための図である。上記のように、外部知識から特定した周辺単語は、「Jiro」、「Morikawa」となる。candidates内の各entityを用いて選択した周辺単語は、「Sakura」、「song」、「japan」となる。
【0054】
ここで、外部知識から特定した情報を用いて選択した周辺単語「Jiro」、「Morikawa」は、candidatesに含まれるentity間の関係を考慮し、他のentityとあまり共通していない情報を基に選択された周辺単語である。この場合、周辺単語「Jiro」、「Morikawa」は、candidatesの各entityが持つ特徴的な周辺単語といえる。このため、candidates内の各entityを用いて選択した周辺単語に、外部知識を利用した周辺単語を加えた情報を用いることで、リンキングの対象を判別でき、mentionのリンキングの対象となるentityを絞り込むことができる。この結果、エンティティ・リンキングの適正化を図ることができる。
【0055】
次に、上記処理を実行する情報処理装置の構成の一例について説明する。
図6は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
図6に示すように、情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0056】
通信部110は、有線又は無線で外部装置等に接続され、外部装置等との間で情報の送受信を行う。通信部110は、図示しないネットワークに接続されていてもよい。
【0057】
入力部120は、各種の情報を、情報処理装置100に入力する入力装置である。
【0058】
表示部130は、制御部150から出力される情報を表示する表示装置である。
【0059】
記憶部140は、文章情報141、candidates情報142、外部知識情報143を有する。記憶部140は、メモリ等の記憶装置に対応する。
【0060】
文章情報141は、上述した文「Sakura of Jiro Morikawa is a famous song in japan.」等に対応する情報である。文章情報141に含まれる文の単語から、mentionが指定される。また、文章情報141に含まれる単語のうち、mentionに対応する単語の周辺の単語が、周辺単語となる。たとえば、mentionに対応する単語を基準として、前後M個の単語を、周辺単語としてもよい。
【0061】
candidates情報142は、candidatesに関する情報を有する。本実施例では、mentionに対するcandidatesが予め指定されているものとする。たとえば、candidates情報142には、上述したentity(1b)~(3b)が含まれる。
【0062】
外部知識情報143は、外部知識に関する情報を有する。本実施例では、外部知識情報143には、
図2で説明した外部知識20に関する情報が含まれているものとする。外部知識20は、物事(entity等)の関係を(主語、述語、目的語)の形に当てはめて表現したラベル付きの有向グラフある。たとえば、外部知識20に含まれる情報(entity)は、candidates情報142に含まれるentityと紐づけられる。
【0063】
制御部150は、特定部151、決定部152、判別部153を有する。制御部150は、CPU(Central Processing Unit)等に対応する。
【0064】
特定部151は、外部知識情報143を基にして、candidates内で各entityを区別できる情報を特定する。
【0065】
特定部151が処理を行う上での前提条件として、文章情報141の文「Sakura of Jiro Morikawa is a famous song in japan.」に含まれる「Sakura」をmentionとする。ユーザは、入力部120を操作して、mentionとなる単語を指定してもよい。また、「Sakura」のcandidatesとして、candidates情報142には、entity(1b)~(3b)が設定されているものとする。
【0066】
特定部151の処理を、
図2を用いて説明する。
図2で説明したように、外部知識20において、entity(3c)~(5c)は、entity(1b)およびentity(2b)に紐づけられているため、出現率が高いといえる。一方、entity(1c)は、entity(1b)のみに紐づけられ、出現率が低い。entity(2c)は、entity(2b)のみに紐づけられ、出現率が低い。
【0067】
このため、特定部151は、出現率の低いentity(1c)およびentity(2c)を特定する。特定部151は、特定したentity(1c)「/Jiro_Morikawa」およびentity(2c)「/Ooshiro」を決定部152に出力する。
【0068】
決定部152は、特定部151に特定された情報を用いて周辺単語を選択する処理、candidates内の各entityを用いて周辺単語を選択する処理を実行する。
【0069】
決定部152は、前処理として、事前に指定されたmentionと、文章情報141の文とを比較して、選択対象候補となる、周辺単語を特定する。たとえば、mentionを「Sakura」とすると、周辺単語は、「Sakura」、「of」、「Jiro」、「Morikawa」、「is」、「a」、「famous」、「song」、「in」、「japan」、「.」となる。決定部152は、以下の処理を実行して、各周辺単語から、該当する周辺単語を選択する。
【0070】
決定部152が実行する、特定部151に特定された情報を用いて周辺単語を選択する処理について説明する。特定部151に特定された情報を用いて周辺単語を選択する処理は、
図3および
図4を用いて説明した「外部知識から特定した情報を用いて周辺単語を選択する処理」に相当する。特定部151に特定された情報を、entity(1c)、entity(2c)として説明を行う。
【0071】
決定部152は、Word2Vec等の従来技術を基にして、entity(1c)、entity(2c)、各周辺単語に、ベクトルを割り当てる。たとえば、決定部152は、Knowledge Graph上のentity(1c)、entity(2c)の周辺構造の関係から、entity(1c)、entity(2c)に関する分散表現(ベクトル)の機械学習を学習する。決定部152は、文中の周辺単語から、各周辺単語に関する分散表現(ベクトル)の機械学習を実行する。決定部152は、candidates情報142に含まれるentityについても同様にして、分散表現を機械学習する。
【0072】
決定部152は、
図3で説明したように、式(1)に基づいて、entity(1c)と、各周辺単語との注目度を算出する。決定部152は、式(1)に基づいて、entity(2c)と、各周辺単語との注目度を算出する。
【0073】
決定部152は、
図4で説明したように、「Att(e
i,w
j)」の算出結果を基にして、周辺単語毎に、「Att(e
i,w
j)」の注目度の最大値を選択する。決定部152は、各周辺単語の注目度の最大値を比較し、注目度の最大値の高い上位K個の周辺単語を選択する。
図4に示す例では、K=2とすると、決定部152は、注目度の最大値の高い上位2個の周辺単語を「Jiro」、「Morikawa」を選択する。
【0074】
決定部152が実行するcandidates内の各entityを用いて周辺単語を選択する処理について説明する。決定部152が、candidates内の各entityを用いて周辺単語を選択する処理は、従来装置と同様である。たとえば、決定部152は、
図13~
図15で説明した処理を実行し、周辺単語を選択する。
図15で説明した例を用いると、決定部152は、周辺単語「Sakura」、「song」、「japan」を選択する。
【0075】
決定部152が、上記の処理を実行することで、各周辺単語から周辺単語「Jiro」、「Morikawa」、「Sakura」、「song」、「japan」を選択する。決定部152は、選択した周辺単語を、判別部153に出力する。決定部152は、選択した周辺単語「Jiro」、「Morikawa」、「Sakura」、「song」、「japan」を表示部130に出力して表示させてもよい。
【0076】
判別部153は、決定部152に選択された各周辺単語を基にして、mentionのリンキング先となるentityを、candidatesから判別する。candidates情報142に、entity(1b)~(3b)が含まれる場合について説明する。
【0077】
判別部153は、entity(1b)のベクトルと、各周辺単語のベクトルとの注目度をそれぞれ算出し、各注目度の合計値を算出する。判別部153は、entity(2b)のベクトルと、各周辺単語のベクトルとの注目度をそれぞれ算出し、各注目度の合計値を算出する。判別部153は、entity(3b)のベクトルと、各周辺単語のベクトルとの注目度をそれぞれ算出し、各注目度の合計値を算出する。
【0078】
判別部153は、算出した合計値のうち、最大の合計値に対応するentityを、mentionのリンキング先となるentityとして判別する。判別部153は、判別結果を基にして、エンティティ・リンキングを実行してもよい。
【0079】
次に、本実施例に係る情報処理装置100の処理手順の一例について説明する。
図7は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
図7に示すように、情報処理装置100の特定部151は、mentionおよびcandidatesの指定を受け付ける(ステップS101)。
【0080】
特定部151は、外部知識情報143におけるcandidatesの関連付け先の情報を基にして、出現率の低いentityを特定する(ステップS102)。
【0081】
情報処理装置100の決定部152は、mentionと文章情報141とを基にして周辺単語を特定する(ステップS103)。決定部152は、candidatesのベクトル、出現率の低いentityのベクトル、周辺単語のベクトルを特定する(ステップS104)。
【0082】
決定部152は、出現率の低いentityのベクトルと周辺単語のベクトルとの注目度を基にして周辺単語を選択する(ステップS105)。決定部152は、candidatesのentityのベクトルと周辺単語のベクトルとの注目度を基にして周辺単語を選択する(ステップS106)。
【0083】
情報処理装置100の判別部153は、選択された周辺単語を基にして、candidatesの各entityから、リンキング先のentityを判別する(ステップS107)。判別部153は、エンティティ・リンキングを実行する(ステップS108)。
【0084】
次に、本実施例に係る情報処理装置100の効果について説明する。情報処理装置100は、外部知識情報143から特定した情報を用いて選択した周辺単語と、candidates内の各entityを用いて選択した周辺単語とを用いて、mentionのリンキング先となるentityを判別することで、エンティティ・リンキングの適正化を図ることができる。
【0085】
たとえば、外部知識情報143から特定した情報を用いて選択した周辺単語「Jiro」、「Morikawa」は、candidatesに含まれるentity間の関係を考慮し、他のentityとあまり共通していない情報を基に選択された周辺単語である。この場合、周辺単語「Jiro」、「Morikawa」は、candidatesの各entityが持つ特徴的な周辺単語といえる。このため、candidates内の各entityを用いて選択した周辺単語に、外部知識情報143を利用した周辺単語を加えた情報を利用することで、リンキングの対象を判別でき、mentionのリンキングの対象となるentityを絞り込むことができる。
【0086】
情報処理装置100は、特定部151が特定した出現率の低いentityのベクトルと、周辺単語のベクトルとの注目度を算出し、注目度を基にして、周辺単語の選択を行う。これによって、リンキング対象となるentityを判別するための単語を適切に選択できる。
【0087】
情報処理装置100は、candidatesに含まれる各entityのベクトルと、周辺単語のベクトルとの注目度を算出し、注目度を基にして、周辺単語の選択を行う。これによって、リンキング対象となるentityを判別するための単語を更に選択することができる。
【0088】
情報処理装置100は、外部知識情報143から特定した情報を用いて選択した周辺単語と、candidates内の各entityを用いて選択した周辺単語とを、表示部130に出力する。これによって、candidatesを判別するための単語をユーザが確認して利用することができる。
【0089】
ところで、上述した情報処理装置100の処理は一例であり、情報処理装置100はその他の処理を実行してもよい。以下では、情報処理装置100が実行するその他の処理について説明する。
【0090】
情報処理装置100は、外部知識情報143を用いて出現率の低い情報を特定し、周辺単語を選択していた。しかし、外部知識情報143に、candidatesに含まれる各entityに関する情報が登録されていない場合、出現率の低い情報を特定して、周辺単語を選択することができなくなる。
【0091】
図8は、情報処理装置の改善点を説明するための図である。たとえば、candidates1-1に含まれる各entityに関する情報が、外部知識情報143に登録されている場合には、上記の処理を実行することで、外部知識情報143から、entity(1c)、entity(2c)を取得することができる。一方、candidates1-2に含まれる各entityに関する情報が、外部知識情報143に登録されている場合には、外部知識情報143から、情報を取得することができない。
【0092】
ここで、candidates1-1と、candidates1-2とが似たentityを含む場合、各entityを区別できる情報も似ている可能性がある。candidates1-1と、candidates1-2とは、どちらも、複数の日本の楽曲が含まれているため、実際には登録されていないが、candidates1-2の外部知識情報143から得られるであろう情報は、entity(1c)、entity(2c)に類似ている可能性がある。たとえば、entity(1c)、entity(2c)がアーティスト名であれば、candidates1-2に含まれる各entityを区別するために有用な情報は、アーティスト名である可能性が高い。
【0093】
本実施例に係る情報処理装置100は、
図8で説明した観点から、
図9で説明する処理を更に実行してよい。
図9は、情報処理装置のその他の処理を説明するための図である。
図9に示すように、情報処理装置100の学習部は、candidates1-1の分散表現を入力、外部知識から得た情報(entity(1c)、entity(2c))の分散表現を正解ラベルとする学習データを訓練データとし、機械学習モデルfの機械学習を実行する。学習部の図示を省略する。
【0094】
たとえば、学習部は、candidates1-1の分散表現を機械学習モデルfに入力した場合に、機械学習モデルfから出力される情報(再現された分散表現)が、外部知識から得たentityの分散表現に近づくように、機械学習モデルfの機械学習を実行する。学習部は、誤差逆伝播法等を用いる。
【0095】
情報処理装置100の決定部152は、candidates1-2の各entityに関する情報が、外部知識情報143に登録されていない場合に、次の処理を実行する。決定部152は、機械学習済みの機械学習モデルfに、candidates1-2の分散表現を入力することで、candidates1-2の各entityを区別できる情報の分散表現を取得する。すなわち、candidates1-2に含まれる各entityに関する情報が、外部知識情報143に登録されていなくても、candidates1-2の各entityを区別できる情報の分散表現を得ることができる。
【0096】
次に、上記実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図10は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0097】
図10に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置204と、インタフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
【0098】
ハードディスク装置207は、特定プログラム207a、決定プログラム207b、判別プログラム207cを有する。また、CPU201は、各プログラム207a~207cを読み出してRAM206に展開する。
【0099】
特定プログラム207aは、特定プロセス206aとして機能する。決定プログラム207bは、決定プロセス206bとして機能する。判別プログラム207cは、判別プロセス206cとして機能する。
【0100】
特定プロセス206aの処理は、特定部151の処理に対応する。決定プロセス206bの処理は、決定部152の処理に対応する。判別プロセス206cの処理は、判別部153の処理に対応する。
【0101】
なお、各プログラム207a~207cについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207cを読み出して実行するようにしてもよい。
【0102】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0103】
(付記1)エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、候補情報に含まれる単語の内の、他の候補情報では比較して出現率の低い単語に対応する情報を外部情報に基づいて特定し、
特定した前記出現率の低い単語に対応する情報と、前記文章に含まれる特定単語周辺の単語とを基にして、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【0104】
(付記2)前記単語を決定する処理は、前記出現率の低い情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定することを特徴とする付記1に記載の情報処理プログラム。
【0105】
(付記3)前記単語を決定する処理は、前記複数の候補情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から単語を決定し、決定した単語を、前記特定単語のリンキング対象となる候補情報を判別するための単語に追加することを特徴とする付記2に記載の情報処理プログラム。
【0106】
(付記4)前記外部情報は前記候補情報に関する要素を有向グラフで表現された情報であり、
前記特定する処理は、前記複数の候補要素に関する要素を比較し、他の候補情報との共通性が低い要素を、前記出現率の低い情報として特定することを特徴とする付記1に記載の情報処理プログラム。
【0107】
(付記5)前記特定単語のリンキング対象となる候補情報を判別するための単語を出力する処理を更に実行することを特徴とする付記1に記載の情報処理プログラム。
【0108】
(付記6)前記特定単語のリンキング対象となる候補情報を判別するための単語の分散表現と、前記複数の候補情報の分散表現とを基にして、特定単語のリンキング対象となる候補情報を選択する処理を更に実行することを特徴とする付記1に記載の情報処理プログラム。
【0109】
(付記7)複数の候補情報の分散表現と、出現率の低い情報の分散表現との関係を定義した訓練データを基にして、分散表現の入力に応じて、入力された前記分散表現に対応する出現率の低い情報の分散表現を出力するように訓練された機械学習モデルに、対象の候補情報に関する情報の分散表現を入力して得られる出力結果に基づいて、前記エンティティ・リンキングに用いる単語の分散表現を決定する処理を更に実行することを特徴とする付記1に記載の情報処理プログラム。
【0110】
(付記8)エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、前記候補情報に関する情報から、他の候補情報に関する情報と比較して出現率の低い情報を外部情報に基づいて特定し、
特定した前記出現率の低い情報と、前記文章に含まれる特定単語周辺の単語とを基にして、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する
処理をコンピュータが実行することを特徴とする情報処理方法。
【0111】
(付記9)前記単語を決定する処理は、前記出現率の低い情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定することを特徴とする付記8に記載の情報処理方法。
【0112】
(付記10)前記単語を決定する処理は、前記複数の候補情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から単語を決定し、決定した単語を、前記特定単語のリンキング対象となる候補情報を判別するための単語に追加することを特徴とする付記9に記載の情報処理方法。
【0113】
(付記11)前記外部情報は前記候補情報に関する要素を有向グラフで表現された情報であり、
前記特定する処理は、前記複数の候補要素に関する要素を比較し、他の候補情報との共通性が低い要素を、前記出現率の低い情報として特定することを特徴とする付記8に記載の情報処理方法。
【0114】
(付記12)前記特定単語のリンキング対象となる候補情報を判別するための単語を出力する処理を更に実行することを特徴とする付記8に記載の情報処理方法。
【0115】
(付記13)前記特定単語のリンキング対象となる候補情報を判別するための単語の分散表現と、前記複数の候補情報の分散表現とを基にして、特定単語のリンキング対象となる候補情報を選択する処理を更に実行することを特徴とする付記8に記載の情報処理方法。
【0116】
(付記14)複数の候補情報の分散表現と、出現率の低い情報の分散表現との関係を定義した訓練データを基にして、分散表現の入力に応じて、入力された前記分散表現に対応する出現率の低い情報の分散表現を出力するように訓練された機械学習モデルに、対象の候補情報に関する情報の分散表現を入力して得られる出力結果に基づいて、前記エンティティ・リンキングに用いる単語の分散表現を決定する処理を更に実行することを特徴とする付記8に記載の情報処理方法。
【0117】
(付記15)エンティティ・リンキングにおいて、文章に含まれる特定単語に関連付ける情報の候補となる複数の候補情報それぞれについて、前記候補情報に関する情報から、他の候補情報に関する情報と比較して出現率の低い情報を外部情報に基づいて特定する特定部と、
特定した前記出現率の低い情報と、前記文章に含まれる特定単語周辺の単語とを基にして、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する決定部と
を有することを特徴とする情報処理装置。
【0118】
(付記16)前記決定部は、前記出現率の低い情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定することを特徴とする付記15に記載の情報処理装置。
【0119】
(付記17)前記決定部は、前記複数の候補情報の分散表現と、前記文章に含まれる特定単語周辺の単語の分散表現とのスコアをそれぞれ算出し、それぞれのスコアを基にして、前記文章に含まれる特定単語周辺の単語の中から、前記特定単語のリンキング対象となる候補情報を判別するための単語を決定する単語を追加で決定することを特徴とする付記16に記載の情報処理装置。
【0120】
(付記18)前記外部情報は前記候補情報に関する要素を有向グラフで表現された情報であり、前記特定部は、前記複数の候補要素に関する要素を比較し、他の候補情報との共通性が低い要素を、前記出現率の低い情報として特定することを特徴とする付記15に記載の情報処理装置。
【0121】
(付記19)前記決定部は、前記特定単語のリンキング対象となる候補情報を判別するための単語を出力する処理を更に実行することを特徴とする付記15に記載の情報処理装置。
【0122】
(付記20)前記特定単語のリンキング対象となる候補情報を判別するための単語の分散表現と、前記複数の候補情報の分散表現とを基にして、特定単語のリンキング対象となる候補情報を選択する判別部更に有することを特徴とする付記15に記載の情報処理装置。
【0123】
(付記21)前記決定部は、複数の候補情報の分散表現と、出現率の低い情報の分散表現との関係を定義した訓練データを基にして、分散表現の入力に応じて、入力された前記分散表現に対応する出現率の低い情報の分散表現を出力するように訓練された機械学習モデルに、対象の候補情報に関する情報の分散表現を入力して得られる出力結果に基づいて、前記エンティティ・リンキングに用いる単語の分散表現を決定する処理を更に実行することを特徴とする付記15に記載の情報処理装置。