(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023015565
(43)【公開日】2023-02-01
(54)【発明の名称】同義語判定装置、同義語判定方法及び同義語判定プログラム
(51)【国際特許分類】
G06F 40/247 20200101AFI20230125BHJP
G06F 16/36 20190101ALI20230125BHJP
【FI】
G06F40/247
G06F16/36
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2021119426
(22)【出願日】2021-07-20
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100180275
【弁理士】
【氏名又は名称】吉田 倫太郎
(74)【代理人】
【識別番号】100161861
【弁理士】
【氏名又は名称】若林 裕介
(72)【発明者】
【氏名】白石 哲也
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091AA15
5B091AB17
5B091CA12
5B175DA01
5B175GB04
5B175HB03
(57)【要約】
【課題】周辺文脈に応じた単語の分散表現を獲得する手法を用いて同義語を判定できるようにする。
【解決手段】本発明の同義語判定装置は、文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え指定単語を含む文の文脈に応じた単語分散表現を別単語毎に獲得する文脈可変単語ベクトル変換部と、指定単語の単語分散表現と、指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出する平均ベクトル算出部と、算出された平均値と、文書中の単語毎の単語分散表現との類似度を算出する類似度算出部と、算出された類似度と閾値とに基づいて、指定単語の同義語を判定する判定部とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え上記指定単語を含む文の文脈に応じた単語分散表現を上記別単語毎に獲得する文脈可変単語ベクトル変換部と、
上記指定単語の単語分散表現と、上記指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出する平均ベクトル算出部と、
上記平均ベクトル算出部により算出された上記平均値と、上記文書中の単語毎の単語分散表現との類似度を算出する類似度算出部と、
上記類似度算出部により算出された上記類似度と閾値とに基づいて、上記指定単語の同義語を判定する判定部と
を備えることを特徴とする同義語判定装置。
【請求項2】
上記文脈可変単語ベクトル変換部が、上記言語モデルで保持される語彙リスト中の語彙単語を上記別単語として上記指定単語と置き換え、上記各語彙単語毎の単語分散表現を獲得することを特徴とする請求項1に記載の同義語判定装置。
【請求項3】
文脈可変単語ベクトル変換部が、文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え上記指定単語を含む文の文脈に応じた単語分散表現を上記別単語毎に獲得し、
平均ベクトル算出部が、上記指定単語の単語分散表現と、上記指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出し、
類似度算出部が、上記平均ベクトル算出部により算出された上記平均値と、上記文書中の単語毎の単語分散表現との類似度を算出し、
判定部が、上記類似度算出部により算出された上記類似度と閾値とに基づいて、上記指定単語の同義語を判定する
ことを特徴とする同義語判定方法。
【請求項4】
コンピュータを、
文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え上記指定単語を含む文の文脈に応じた単語分散表現を上記別単語毎に獲得する文脈可変単語ベクトル変換部と、
上記指定単語の単語分散表現と、上記指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出する平均ベクトル算出部と、
上記平均ベクトル算出部により算出された上記平均値と、上記文書中の単語毎の単語分散表現との類似度を算出する類似度算出部と、
上記類似度算出部により算出された上記類似度と閾値とに基づいて、上記指定単語の同義語を判定する判定部と
して機能させることを特徴とする同義語判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同義語判定装置、同義語判定方法及び同義語判定プログラムに関し、例えば、自然言語を扱う対話システムや文章校正ツール等を正確に動作させるために、文書から同義語を判定する同義語判定装置に適用できる。
【背景技術】
【0002】
例えば、対話システムや文章校正ツールなどの自然言語処理は、文で使用される言葉に表現の違いがあっても同じ意味の言葉を同義語として認識することが要求される。
【0003】
自然言語処理において、同義語を認識する手法の1つとして同義語辞書を活用する方法がある。同義語辞書は、一般的に手作業で作成されることが多いが、作成作業者のそれぞれの人によって品質の違いが生じたり、作業負担が大きく、作成コストが高い等の問題がある。そのため、同義語辞書を自動的に作成できるようにすることが望まれている。
【0004】
同義語辞書を自動的に作成する手法の1つとして、特許文献1に記載される技術がある。
【0005】
特許文献1の記載技術は、文書内の各単語の単語ベクトルを用いた単語間の類似度と、単語を含む文の文ベクトルを用いた文間の類似度と、トピック内単語出現確率を用いたトピックの分類結果と3つの手法を用いて単語や文を表現して、文書内に含まれる単語が同義語か否かを判定するというものである。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean, “Efficient estimation of word representations in vector space.” arXiv:1301.3781 (2013).
【非特許文献2】Le Quoc, and Tomas Mikolov, “Distributed representations of sentences and documents.” International conference on machine learning. (2014), pp.1188-1196.
【非特許文献3】David M. Blei, Andrew Y. Ng, and Michael I. Jordan, “Latent dirichlet allocation.” Journal of machine Learning research Vol.3 (2003), pp.993-1022.
【非特許文献4】Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova, “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding” arXiv:1810.04805 (2018).
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した特許文献1の記載技術は、単語同士の類似性を判断する際、単語や文の表層に対して単一のベクトルや確率を割り当てる手法であるため、多義語(言葉の表現は同じであるが意味が異なる語)を含む文に対して十分に対応できないという課題がある。
【0009】
また、特許文献1の記載技術は、3つの手法を用いて単語や文を表現して、各結果を統合的に判断して同義語を判定する手法であるため、各結果が相反するときには、同義語として正しく判定できない可能性もある。
【0010】
そのため、文内の多義語と考えられる複数の単語を、異なる意味の語と認識できるようにする同義語判定装置及び手法が求められている。
【0011】
本発明は、上述した課題に鑑み、周辺文脈に応じた単語の分散表現を獲得する手法を用いて同義語を判定する同義語判定装置、同義語判定方法及び同義語判定プログラムを提供するものである。
【課題を解決するための手段】
【0012】
かかる課題を解決するために、第1の本発明の同義語判定装置は、文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え指定単語を含む文の文脈に応じた単語分散表現を別単語毎に獲得する文脈可変単語ベクトル変換部と、指定単語の単語分散表現と、指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出する平均ベクトル算出部と、平均ベクトル算出部により算出された平均値と、文書中の単語毎の単語分散表現との類似度を算出する類似度算出部と、類似度算出部により算出された類似度と閾値とに基づいて、指定単語の同義語を判定する判定部とを備えることを特徴とする。
【0013】
第2の本発明の同義語判定方法は、文脈可変単語ベクトル変換部が、文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え指定単語を含む文の文脈に応じた単語分散表現を別単語毎に獲得し、平均ベクトル算出部が、指定単語の単語分散表現と、指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出し、類似度算出部が、平均ベクトル算出部により算出された平均値と、文書中の単語毎の単語分散表現との類似度を算出し、判定部が、類似度算出部により算出された類似度と閾値とに基づいて、指定単語の同義語を判定することを特徴とする。
【0014】
第3の本発明の同義語判定プログラムは、コンピュータを、文脈に応じた単語分散表現へ変換する言語モデルで、文書中で各単語を含む文の文脈に応じて各単語の分散表現を獲得すると共に、指定された指定単語を別単語に置き換え指定単語を含む文の文脈に応じた単語分散表現を別単語毎に獲得する文脈可変単語ベクトル変換部と、指定単語の単語分散表現と、指定単語を含む文の文脈に応じた別単語毎の単語分散表現との類似度に基づいて、類似度の高い単語の単語分散表現の平均値を算出する平均ベクトル算出部と、平均ベクトル算出部により算出された平均値と、文書中の単語毎の単語分散表現との類似度を算出する類似度算出部と、類似度算出部により算出された類似度と閾値とに基づいて、指定単語の同義語を判定する判定部として機能させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、周辺文脈に応じた単語の分散表現を獲得する手法を用いて同義語を判定することにより、文内の多義語と考えられる複数の単語を、異なる意味の語と認識できる。
【図面の簡単な説明】
【0016】
【
図1】実施形態に係る同義語判定装置の構成を示すブロック図である。
【
図2】実施形態に係る同義語判定方法の動作を示すフローチャートである。
【
図3】従来の同義語判定装置の構成を示すブロック図である。
【
図4】word2vecを用いた単語の分散表現を説明する説明図である。
【
図5】従来の同義語判定処理を説明する説明図である。
【
図6】文脈を考慮した単語の分散表現を説明する説明図である。
【
図7】実施形態に係る同義語判定処理を説明する説明図である。
【発明を実施するための形態】
【0017】
(A)基本概念
まず、本発明の基本概念を図面を参照しながら説明する。
【0018】
言葉の表現は、人によって多種多様である。例えば、「犬」という言葉にも、「わんちゃん」や「わんこ」など様々な表現がある。このような表現の違い(表記の揺れ)が存在していても、同じ意味の言葉である同義語を正しく認識することは、自然言語処理で重要となる。
【0019】
図3は、特許文献1に記載の従来の同義語判定装置の構成を示すブロック図である。
【0020】
従来の同義語判定装置90は、文書内の各単語の単語ベクトル(単語分散表現)、単語を含む文の文ベクトル(文分散表現)、およびトピック内単語出現確率の3つを算出し、これらの算出結果を用いて類似度を比較し、その類似度の比較結果に基づいて、文書内に含まれる単語から同義語とみなせる単語対(単語ペア)を判定している。
【0021】
具体的には、まず、単語/ベクトル変換部93が、word2vec(非特許文献1参照)を用いて、文書内の各単語の単語ベクトル(単語分散表現)を獲得し、単語間類似度算出部94が、それぞれの単語間の類似度を算出する。
【0022】
次に、文/ベクトル変換部95が、文分散表現を獲得する技術であるdoc2vec(非特許文献2参照)を用いて、単語を含む文を、文ベクトルに変換する。そして、文間類似度算出部96が、処理対象となる単語ペアを含むそれぞれの文同士間の類似度を算出する。
【0023】
さらに、トピック分類部97が、トピックモデルを用いて、文書を構成するトピック分布と、各トピック内での単語の出現分布を推定する技術であるLatent Dirichlet Allocation(以下、LDA)(非特許文献3参照)によって、同一トピックで処理対象とする単語ペアのそれぞれが高い出現確率であるかを計算する。
【0024】
その後、判定部98が、単語ペアに対して、3つの尺度で単語ペアに関する類似度を算出し、これらを用いて同義語か否かを判定している。
【0025】
ここで、単語分散表現とは、単語を低次元の実数値ベクトルで表現するものである。単語を数値化して表現することにより、コンピュータで言語を扱えることができる。word2vecは、単語の分散表現を獲得する手法である。
【0026】
例えば、
図4に例示するように、「あめあがりにあめをもらった」という文があるとき、word2vecによれば、文を単語毎に数値化し、各単語を実数値ベクトルで表現することにより、単語同士の関係を表すことができる。
【0027】
「あめあがりにあめをもらった」の先頭に出現する単語「あめ」の分散表現を「Vあめ」と表記し、分散表現「Vあめ」は「0.4,0.2,…,0.8」と数値化(ベクトル)で表現することができる。他の単語についても同様に分散表現される。
【0028】
そして、事前設定した閾値を用いてベクトル同士が類似していれば(例えば、各単語のベクトルを用いた類似度(例えばコサイン類似度等)の値が閾値以上であれば)、同じ意味を持つ単語と判定できる。
【0029】
しかしながら、特許文献1に記載されている3つの手法はそれぞれ、word2vecでは文書内に出現する単語の表層表現ごとに単語をベクトルで表現し、doc2vecでは文全体を1つのベクトルとして表現し、LDAでは単語の種類ごとに各トピックにおける単語の出現確率を求めるため、文書内の文内の意味を十分に表せているとはいえない。
【0030】
特許文献1の記載技術は、word2vecを用いて単語分散表現を獲得するが、
図5(A)に示すように、word2vecは、「単語の意味は周辺単語によって形成される」という分布仮説に基づいて単語分散表現に変換される。
【0031】
そのため、特許文献1の記載技術を適用して、「あめあがりにあめをもらった」という文を処理したとき、この分には2個の「あめ」という単語が存在するが、word2vecは、単語に対して単一のベクトルを与えるため、2個の「あめ」の単語のそれぞれに同じベクトルが割り当てられ、同じ意味だと認識してしまう(
図5(B)参照)。
【0032】
また、doc2vecは、文に対して単一のベクトルを与え、かつ、同一文に異なる意味の「あめ」が出現する上記の例では、それぞれを含む文は同一となるため、この2個の「あめ」を含む文は同じと認識してしまう。
【0033】
さらに、LDAは、あるトピックにおける単語の出現確率を推定する。そのため、2個の「あめ」という単語は表層として同じ単語としているから、同じ出現確率が推定され、その結果、2個の「あめ」という単語がそれぞれ異なる意味であることを認識できない。
【0034】
このように、特許文献1の記載技術では、各単語に対し、類似度を測るための表現を複数の手法で獲得しているものの、それらの手法は、単語や文の表層に対して単一のベクトルや確率を割り当てる手法であるため、多義語を含む文に対しては十分とは言えない。
【0035】
さらに、特許文献1の記載技術は、単語を3つの手法を用いて表現し、その結果を総合的に判断して同義語判定を行うため、各手法の算出結果が相反する場合、同義語としてみなされない可能性が考えられる。例えば、同義語とみなしたい2個の単語が文に存在するとき、word2vecによる単語間の距離は近いが、doc2vecによる文間の距離が離れており、LDAによるトピックごとの単語出現確率が類似しないとき、同義語と判定されないこととなる。
【0036】
そこで、この実施形態では、単語を類似比較する表現として、単語の表層表現に対して単一のベクトルを獲得する手法ではなく、単語の周辺文脈に応じた単語分散表現を獲得する手法を用い、これにより単語をベクトルとして表現し、それぞれの類似度を比較することで、同義語の自動判定を行うようにする。
【0037】
後述するように、この実施形態では、単語の周辺文脈情報を利用したベクトル変換手段としては、非特許文献4に記載のBERT(Bidirectional Encoder Representations from Transformers)を汎用言語モデルとして用いる場合を例示する。
【0038】
例えば、
図6(A)に示すように、BERTは、文中の単語の位置や周辺単語の意味を考慮して単語の分散表現へ変換する。すなわち、文脈を考慮して単語分散表現へ変換する。
【0039】
従って、例えば、
図6(B)に示すように、「あめあがりにあめをもらった」の文に対してBERTを用いて単語分散表現に変換すると、先頭に出現する「V´あめ(1)」と2番目に出現する「V´あめ(2)」とは類似しないと判定することができる。これにより、文内の多義語と考えられる複数の単語を、異なる意味の語と認識することができる。
【0040】
(B)実施形態
以下では、本発明に係る同義語判定装置、同義語判定方法及び同義語判定プログラムの実施形態を説明する。
【0041】
(B-1)実施形態の構成
図1は、実施形態に係る同義語判定装置の構成を示すブロック図である。
【0042】
図1において、実施形態に係る同義語判定装置100は、入力部101、前処理部102、同義語類似判定部110、判定部103、出力部104を有する。また、同義語類似判定部110は、文脈可変単語ベクトル変換部111、平均ベクトル算出部112、類似度算出部113を有する。
【0043】
実施形態に係る同義語判定方法は、コンピュータを用いて実施される。実施形態に係る同義語判定プログラムは、同義語判定方法を実施するためのプログラムであり、コンピュータにより実行される。同義語判定装置100は、コンピュータを用いて構成される。
【0044】
同義語判定装置100のハードウェア構成は、例えば、CPU、メインメモリ、記憶部、入出力インタフェース部、通信部等を有する。例えば、CPUは、記憶部に記憶される処理プログラム(例えば、同義語判定プログラムなど)を実行することにより、同義語判定装置100としての機能が実現される。CPUにより実行可能な同義語判定プログラムが、インストールされてCPUにより実行されることにより、同義語判定装置100としての機能が実現されてもよい。
【0045】
[入力部101]
入力部101は、同義語判定装置100へ入力される、テキストで書かれた文書(例えば、txtファイル、Wordファイル、入力フォームに書き込まれたテキストデータなど)200と、文書200内に含まれる単語のうち、同義語を探索したいユーザ指定の単語を受け取る。
【0046】
ここで、文書200は1又は複数の文を含んでいるものとする。各文は、1又は複数の単語を含んでいるものとする。
【0047】
[前処理部102]
前処理部102は、入力部101で得たファイルやデータから文書200を読み込み、文単位に分割し、文ごとに単語単位に分割することで、文書200を文単位の単語リストへ変換する。
【0048】
[文脈可変単語ベクトル変換部111]
文脈可変単語ベクトル変換部111は、文単位の単語リストを受け取り、単語の周辺文脈情報を利用し、文書200内に出現する1つ1つの単語をそれぞれの文脈に応じた単語分散表現へ変換する。
【0049】
また、文脈可変単語ベクトル変換部111は、同義語を探索したいユーザ指定の単語が含まれる文の単語リストを選択し、ユーザ指定の単語を別の単語に入れ替え、ユーザ指定の単語が含まれる文の文脈に応じた単語分散表現へ変換することにより、ユーザ指定の単語が含まれる文の文脈に応じた別の単語の分散表現を獲得する。
【0050】
ここで、「単語の周辺文脈情報」とは、1つの文において、ある単語の周辺に出現する単語の情報である。前記ある単語と、周辺に出現する単語が異なる場合、単語の意味に違いがあると捉える。そのため、同一の単語(すなわち単語の表現が同じ)であっても、周辺文脈の違いにより、同一の単語分散表現へ変換されないという特徴がある。
【0051】
単語の周辺文脈情報を利用したベクトル変換手段としては、汎用言語モデルを用いる。この実施形態では、非特許文献4に記載されるBERTを、汎用言語モデルとして用いる場合を例示する。
【0052】
汎用言語モデルは、事前に大量の文書を自己注意機構により文内の単語間の相互関係を学習する。この結果、汎用言語モデルへ文を入力すると、入力文を構成する各単語の、入力文の文脈における分散表現を得ることができる。ただし、汎用言語モデルで表現可能な単語種は、事前学習時に利用した語彙に限られる。
【0053】
[平均ベクトル算出部112]
平均ベクトル算出部112は、ユーザ指定の単語の分散表現と、ユーザ指定の単語が含まれる文の文脈を用いた単語分散表現とを受け取り、ユーザ指定の単語に類似した単語を、類似度によって探索し、類似度が高い単語を用いて平均ベクトルの値を算出する。
【0054】
[類似度算出部113]
類似度算出部113は、平均ベクトル算出部112により算出された平均ベクトルの値と、入力された文書に含まれる全ての単語の単語分散表現を受け取り、前記平均ベクトルの値と、前記単語分散表現との類似度を算出する。
【0055】
[判定部103]
判定部103は、単語の類似度リストを受け取り、閾値以上の類似度となった単語を同義語と判定する。
【0056】
[出力部104]
出力部104は、同義語と判定された単語を受け取り、同義語と判定された単語を外部(例えば、同義語辞書)へ出力する。
【0057】
(B-2)実施形態の動作
次に、実施形態に係る同義語判定装置100における同義語判定方法の動作を、図面を参照しながら説明する。
【0058】
図2は、実施形態に係る同義語判定方法の動作を示すフローチャートである。
図7は、実施形態に係る同義語判定処理を説明する説明図である。
【0059】
ここでは、文書200が文書ファイルであるとする。そして、文書200と、文書200に含まれる単語のうちユーザが指定する単語とを同義語判定装置100に入力し、文書200内に含まれるユーザ指定単語の同義語を判定し、その同義語と判定した単語(単語ペア)を同義語辞書300へ出力する一連の動作を、
図2のフローチャートを用いて説明する。
【0060】
[ステップS101]
まず、ステップS101では、ユーザが文書(文書ファイル)200を入力部101に入力し、さらにユーザは入力部101で同義語を探索する対象とする単語kを指定する。
【0061】
例えば、マウスやキーボード等の入力部101をユーザが操作して、文書ファイル内で単語kの出現位置を指定するなどの方法で、単語kを指定できる。なお、単語kの指定方法は、これに限定されない。
【0062】
[ステップS102]
ステップS102では、前処理部102が、ステップS101で入力された文書(文書ファイル)200を読み込み、文書200を文単位に分割し、さらに分割した文それぞれを単語に分割する。そして、前処理部102は、文単位の単語リストを作成する。
【0063】
ここで、文や単語の分割には、形態素解析器等の既存技術を用いることができるが、単語の分割に関しては、文脈可変単語ベクトル変換部111で用いる言語モデルの事前学習に用いた分割手法と揃えることが望ましい。
【0064】
[ステップS103]
ステップS103では、文脈可変単語ベクトル変換部111が、ステップS102で得られた文単位の単語リストを受け取り、そこに含まれるすべての単語に対して、ベクトル表現である単語分散表現V1に変換する。
【0065】
ここで、単語分散表現への変換は、事前学習された言語モデルを用い、文単位で行う。文単位で処理することで、得られる各単語の分散表現(単語ベクトル)は、文内での周辺の文脈に応じたものとなる。これにより、入力文書中のすべての単語に対して、文脈に応じた分散表現が得られる。
【0066】
[ステップS104]
次に、ステップS104で、文脈可変単語ベクトル変換部111は、ステップS102で得られた文単位の単語リストの中から、ステップS101でユーザによって指定された単語kを含む文Sの単語リストを選択する。
【0067】
[ステップS105]
次に、ステップS105で、文脈可変単語ベクトル変換部111は、ステップS104で選択した文Sの単語リストを用い、単語kを言語モデルが保持するM個の語彙のうちの1つである単語m1に置き換え、置換後の文Sの単語リストを単語分散表現へ変換する。これにより、文Sの文脈での単語m1の単語分散表現が得られる。これを言語モデルの保持する語彙全てに対して行うことにより、文Sの文脈における単語分散表現V2が得られる。
【0068】
例えば、
図7(A)に例示するように、「あめあがりにあめをもらった」という文を含む文書200が入力され、キャンディの意味を持つ「あめ」が単語kとして指定されたものとする。上述例の文で、先頭に出現する「あめ」を「あめ(1)」と表記し、2番目に出現する「あめ」を「あめ(2)」と表記する。
【0069】
図7(B)に示すように、例えば、言語モデルの語彙リストが、「英語」、「サッカー」、「お菓子」等を保持する場合、文脈可変単語ベクトル変換部111は、単語kである「あめ(2)」を、語彙リスト中の各単語に置き換えて、BERTで単語分散表現へ変換する。
【0070】
[ステップS106]
ステップS106では、平均ベクトル算出部112が、ステップS103で得られた単語分散表現V1と、ステップS105で得られた単語分散表現V2とを受け取り、ステップS102でユーザが指定した単語kと、言語モデルの保持するM個の語彙すべての単語との類似度を、ステップS103で得られた単語kの単語分散表現V1_kと、ステップS104で得られた単語分散表現V2とを用いて計算する。ベクトル間の類似度はコサイン類似度などの既存の手法を用いて算出する。
【0071】
例えば、
図7の例の場合、
図7(C)に示すように、単語kの単語分散表現「Vあめ(2)」と、語彙リスト中の各単語の単語分散表現(例えば「V英語」、「Vサッカー」、「Vお菓子」など)との類似度を算出する。
【0072】
[ステップS107]
次に、平均ベクトル算出部112は、言語モデルの保持するM個の語彙のうち、単語kとの類似度が高いN個の単語の平均ベクトルAを算出する。
【0073】
ユーザの指定した単語kと言語モデルの保持するM個の語彙のそれぞれの単語との類似度は、ステップS106で算出したものを用い、平均ベクトルの値Aは算術平均などの方法で算出する。
【0074】
例えば、
図7(C)の例の場合、語彙リストの内、文中の単語kである「あめ(2)」と類似度が高い単語として単語「お菓子」が含まれる。
【0075】
[ステップS108]
次に、ステップS108で、類似度算出部113は、ステップS107で算出した平均ベクトルの値Aと、ステップS103で得られた入力文書中のすべての単語分散表現V1との類似度を算出する。ただし、ステップS101で指定した単語kは類似度計算の対象とはしない。
【0076】
[ステップS109]
次に、ステップS109で、判定部103は、類似度算出部113で算出した入力文中の各単語と、ユーザの指定した単語Kとの類似度を用いて、同義語判定を行う。判定方法としては、例えば、閾値以上の類似度となる単語を同義語であると判定する、といった方法が考えられる。
【0077】
図7の例の場合、ステップS108で、類似度算出部113が、文中の各単語と単語kである「あめ(2)」との類似度を単語毎に算出し、ステップS109で、判定部103が、閾値を用いて、各単語と単語kとの類似度を判断する。このとき、判定部103は、文の先頭に出現する「あめ(1)」と、単語kである「あめ(2)」との類似度が閾値未満である判定する。
【0078】
つまり、BERTを用いて単語分散表現へ変換することで、文の先頭に出現する「あめ(1)」と「あめ(2)」とは意味が異なる単語であると認識し、これらを同義語と認識しない。
【0079】
[ステップS110]
ステップS110では、出力部104は、判定部103で同義語と判定された単語(単語ペア)を同義語辞書300へ出力する。
【0080】
(B-3)実施形態の効果
以上のように、この実施形態によれば、周辺文脈に応じた単語分散表現を用いて同義語判定が可能となるため、1つ1つの単語に対して、その文脈で使われている意味を認識することが出来る。
【0081】
また、この実施形態によれば、同義語の判定を行うのは1回であるため、判定を複数回行うことで生じる矛盾が起きない。
【0082】
更に、この実施形態によれば、文書内の単語の平均ベクトルを算出し、文書内の単語との類似度を計算することにより、元の文脈に強く依存することなく、文書内の同義語を判定することが出来る。
【0083】
(C)他の実施形態
上述した実施形態においても種々の変形実施形態を言及したが、本発明は、以下の変形実施形態にも適用できる。
【0084】
(C-1)上述した実施形態では、ユーザが指定した1つの単語の同義語を判定しているが、これに限定されるものではない。
【0085】
例えば、文脈可変単語ベクトル変換部111において、前処理部102から届いた単語リストの中から同義語を判定する単語を1つ選択し、同義語を出力するまでの一連の動作を、文脈可変単語ベクトル変換部111へ届いたすべての単語に対して適用することにより、入力された文書の中に存在する全ての単語の同義語を見つけることが出来ると考えられる。
【0086】
(C-2)本発明に係る同義語判定方法は、上述した各ステップを行なうために、非特許文献1~4に記載されている内容や、それまでの既存技術を踏まえて非特許文献1~4の記載内容を発展させたものを用いることができる。
【符号の説明】
【0087】
100…同義語判定装置、101…入力部、102…前処理部、103…判定部、104…出力部、110…同義語類似判定部、111…文脈可変単語ベクトル変換部、112…平均ベクトル算出部、113…類似度算出部、200…文書、300…同義語辞書。