(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165355
(43)【公開日】2024-11-28
(54)【発明の名称】同義語抽出装置、同義語抽出方法、および同義語抽出プログラム
(51)【国際特許分類】
G06F 40/247 20200101AFI20241121BHJP
G06F 40/216 20200101ALI20241121BHJP
【FI】
G06F40/247
G06F40/216
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023081494
(22)【出願日】2023-05-17
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】岩山 真
(57)【要約】
【課題】文脈を考慮した同義語抽出の適正化を図ること。
【解決手段】同義語抽出装置は、文内の語の同義語を出力するように学習された言語モデルにアクセス可能であり、言語モデルは、文を構成する語を文の文脈に依存しない第1埋め込み表現に変換する第1層と、語の出現位置、語が出現する文、および語の第1埋め込み表現に基づいて、文の文脈に依存する第2埋め込み表現を生成する第2層とを有し、対象文内の対象語以外の語を同義語候補とし、第1層を用いて対象語に関する第1埋め込み表現と同義語候補に関する第1埋め込み表現とを生成して語類似度を算出し、対象文内の対象語を同義語候補に置き換えた同義語文とし、第1層および第2層を用いて対象文に関する第2埋め込み表現と同義語文に関する第2埋め込み表現とを生成して文脈類似度を算出し、語類似度と文脈類似度とに基づいて同義語を抽出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、文内の語の同義語を出力するように学習された言語モデルにアクセス可能な同義語抽出装置であって、
前記言語モデルは、第1層と、第2層と、を有し、
前記第1層は、前記文を構成する語を前記文の文脈に依存しない第1埋め込み表現に変換し、
前記第2層は、前記語の出現位置、前記語が出現する文、および前記語の前記第1埋め込み表現に基づいて、前記文の文脈に依存する第2埋め込み表現を生成し、
前記プロセッサは、
対象文内の対象語以外の語を同義語候補とし、前記第1層を用いて、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、を生成し、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、に基づいて、前記対象語と前記同義語候補との類似度である語類似度を算出する語類似度算出処理と、
前記対象文内の対象語を前記同義語候補に置き換えた同義語文とし、前記第1層および前記第2層を用いて、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、を生成し、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、に基づいて、前記対象文と前記同義語文との類似度である文脈類似度を算出する文脈類似度算出処理と、
前記語類似度と前記文脈類似度とに基づいて、前記同義語を抽出する同義語抽出処理と、
を実行することを特徴とする同義語抽出装置。
【請求項2】
請求項1に記載の同義語抽出装置であって、
前記語類似度算出処理では、前記プロセッサは、前記対象語を構成する各トークンに関する第1埋め込み表現の平均値と、前記同義語候補を構成する各トークンに関する第1埋め込み表現の平均値と、に基づいて、前記語類似度を算出する、
ことを特徴とする同義語抽出装置。
【請求項3】
請求項1に記載の同義語抽出装置であって、
前記プロセッサは、
前記第1層を用いて、複数の同義語候補集合の各々の同義語候補集合内の同義語候補に関する第1埋め込み表現を生成し、前記語類似度算出処理により、前記語類似度を前記同義語候補ごとに前記同義語候補集合別に算出して、前記同義語候補集合ごとの前記語類似度の集合を前記語類似度に関する条件に基づいてプーリングし、プーリングした語類似度に対応する特定の同義語候補集合を出力する同義語候補プーリング処理と、
前記語類似度算出処理により、前記対象語と前記特定の同義語候補集合内の特定の同義語候補との特定の語類似度を前記特定の同義語候補ごとに算出し、前記特定の同義語候補ごとの前記特定の語類似度をアンサンブルする同義語候補アンサンブル処理と、を実行し、
前記文脈類似度算出処理では、前記プロセッサは、前記対象文内の対象語を前記同義語候補アンサンブル処理によるアンサンブル結果に置き換えた特定の同義語文とし、前記対象文と前記特定の同義語文との文脈類似度を算出する、
することを特徴とする同義語抽出装置。
【請求項4】
請求項1に記載の同義語抽出装置であって、
前記プロセッサは、
複数の前記言語モデルの各々の言語モデルについて、文の集合に対する適合度を算出し、前記適合度に基づいて、複数の前記言語モデルの中から特定の言語モデルを選択する選択処理を実行し、
前記プロセッサは、前記選択処理によって選択された特定の言語モデルを用いて、前記語類似度算出処理および前記文脈類似度算出処理を実行する、
ことを特徴とする同義語抽出装置。
【請求項5】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、文内の語の同義語を出力するように学習された言語モデルにアクセス可能な同義語抽出装置が実行する同義語抽出方法であって、
前記言語モデルは、第1層と、第2層と、を有し、
前記第1層は、前記文を構成する語を前記文の文脈に依存しない第1埋め込み表現に変換し、
前記第2層は、前記語の出現位置、前記語が出現する文、および前記語の前記第1埋め込み表現に基づいて、前記文の文脈に依存する第2埋め込み表現を生成し、
前記プロセッサは、
対象文内の対象語以外の語を同義語候補とし、前記第1層を用いて、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、を生成し、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、に基づいて、前記対象語と前記同義語候補との類似度である語類似度を算出する語類似度算出処理と、
前記対象文内の対象語を前記同義語候補に置き換えた同義語文とし、前記第1層および前記第2層を用いて、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、を生成し、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、に基づいて、前記対象文と前記同義語文との類似度である文脈類似度を算出する文脈類似度算出処理と、
前記語類似度と前記文脈類似度とに基づいて、前記同義語を抽出する同義語抽出処理と、
を実行することを特徴とする同義語抽出方法。
【請求項6】
文内の語の同義語を出力するように学習された言語モデルを用いた同時語抽出をプロセッサに実行させる同義語抽出プログラムであって、
前記言語モデルは、第1層と、第2層と、を有し、
前記第1層は、前記文を構成する語を前記文の文脈に依存しない第1埋め込み表現に変換し、
前記第2層は、前記語の出現位置、前記語が出現する文、および前記語の前記第1埋め込み表現に基づいて、前記文の文脈に依存する第2埋め込み表現を生成し、
前記プロセッサに、
対象文内の対象語以外の語を同義語候補とし、前記第1層を用いて、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、を生成し、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、に基づいて、前記対象語と前記同義語候補との類似度である語類似度を算出する語類似度算出処理と、
前記対象文内の対象語を前記同義語候補に置き換えた同義語文とし、前記第1層および前記第2層を用いて、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、を生成し、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、に基づいて、前記対象文と前記同義語文との類似度である文脈類似度を算出する文脈類似度算出処理と、
前記語類似度と前記文脈類似度とに基づいて、前記同義語を抽出する同義語抽出処理と、
を実行させることを特徴とする同義語抽出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同義語を抽出する同義語抽出装置、同義語抽出方法、および同義語抽出プログラムに関する。
【背景技術】
【0002】
チャットボットなどの質問応答システムの多くは、ユーザからの質問と、システムにあらかじめ登録されている想定質問とを比較し、ユーザ質問に対し最も適切な想定質問に対応している回答を出力する。たとえば、行政手続きに関する質問応答システムでは、想定質問として「引っ越ししたがどうすればよい?」というテキストが登録されている。
【0003】
ところが、ユーザは同じ意図でも様々な表現で質問するため、「引っ越ししたがどうすればよい」以外にも「転居したがどうすればよい?」「住所変更したがどうすればよい?」なども想定質問として登録しておく必要がある。この例の場合、「引っ越し」の同義語である「転居」「住所変更」などで想定質問のバリエーションを増やすことになる。質問応答システムの回答精度を向上させるには、想定質問内の語に対し、できるだけ多くの同義語を用意しておくことが望ましい。
【0004】
非特許文献1は、大量のテキストから語の埋め込み表現を学習しておき、埋め込み表現間の類似度が高い語同士を同義語として扱うベクトル空間での単語表現の効率的な推定を開示する。埋め込み表現とは数百次元の実数ベクトルであり、埋め込み表現間の類似度には余弦が用いられる。周辺の単語から対象単語が予測できるように、または逆に、対象単語から周辺の単語が予測できるように学習が進行する。
【0005】
ところが、学習後は周辺の単語を無視するため、文脈に応じた語の多義性が扱えなかった。たとえば、「引っ越ししたがどうすればよい?」という文脈でも、「引っ越しの費用を教えて」という文脈でも、「引っ越し」の埋め込み表現は同一になる。そのため、前者の文脈では、「引っ越し」と「住所変更」は同義語であるが、後者の文脈ではこれらは同義関係ではないといった、文脈依存の語の多義性を扱えなかった。
【0006】
非特許文献2では、大量のテキストから学習した言語モデルを用い、文脈に依存した語の埋め込み表現を取得する、BERTに基づく字句置換を開示する。「引っ越ししたがどうすればよい?」と「引っ越しの費用を教えて」では同じ「引っ越し」でも埋め込み表現が異なる。よって、非特許文献2の技術は、同じ語でも、文脈に応じて異なる同義語を抽出する。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】“Efficient Estimation of Word Representations in Vector Space”,In Proceedings of Workshop at ICLR,2013.
【非特許文献2】“BERT-based Lexical Substitution”,ACL 2019,2019.
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところが、非特許文献2の技術では、語の埋め込み表現が文脈の影響を強く受けすぎ、同義関係にない語までもが同義語として抽出されてしまうことが多い。たとえば、「引っ越しの費用を教えて」という文脈での「引っ越し」に対し、「購入」「問い合わせ」なども同義語として抽出されてしまう。
【0009】
本発明は、文脈を考慮した同義語抽出の適正化を図ることを目的とする。
【課題を解決するための手段】
【0010】
本願において開示される発明の一側面となる同義語抽出装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、文内の語の同義語を出力するように学習された言語モデルにアクセス可能な同義語抽出装置であって、前記言語モデルは、第1層と、第2層と、を有し、前記第1層は、前記文を構成する語を前記文の文脈に依存しない第1埋め込み表現に変換し、前記第2層は、前記語の出現位置、前記語が出現する文、および前記語の前記第1埋め込み表現に基づいて、前記文の文脈に依存する第2埋め込み表現を生成し、前記プロセッサは、対象文内の対象語以外の語を同義語候補とし、前記第1層を用いて、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、を生成し、前記対象語に関する第1埋め込み表現と、前記同義語候補に関する第1埋め込み表現と、に基づいて、前記対象語と前記同義語候補との類似度である語類似度を算出する語類似度算出処理と、前記対象文内の対象語を前記同義語候補に置き換えた同義語文とし、前記第1層および前記第2層を用いて、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、を生成し、前記対象文に関する第2埋め込み表現と、前記同義語文に関する第2埋め込み表現と、に基づいて、前記対象文と前記同義語文との類似度である文脈類似度を算出する文脈類似度算出処理と、前記語類似度と前記文脈類似度とに基づいて、前記同義語を抽出する同義語抽出処理と、を実行することを特徴とする。
【発明の効果】
【0011】
本発明の代表的な実施の形態によれば、文脈を考慮した同義語抽出の適正化を図ることができる。前述した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本実施例の同義語抽出装置の構成例を示すブロック図である。
【
図2】
図2は、transformerと呼ばれる言語モデルの模式図である。
【
図4】
図4は、語類似度計算の処理例を示す説明図である。
【
図5】
図5は、文脈類似度計算の処理例を示す説明図である。
【
図6】
図6は、類似度統合の処理例を示す説明図である。
【
図7】
図7は、同義語抽出制御による同義語抽出の処理例1を示す説明図である。
【
図8】
図8は、同義語候補プーリングによる複数の言語モデルの各埋込層を用いた同義語抽出の処理例を示す説明図である。
【
図9】
図9は、同義語候補アンサンブルによる複数の言語モデルの各埋込層を用いた同義語候補アンサンブルの処理例を示す説明図である。
【
図10】
図10は、同義語抽出制御による同義語抽出の処理例2を示す説明図である。
【
図11】
図11は、言語モデル選択による言語モデル選択処理の一例を示す説明図である。
【
図12】
図12は、同義語抽出画面の一例を示す説明図である。
【発明を実施するための形態】
【0013】
本実施例では、文中の語に対し、その語の同義語を抽出する同義語抽出装置の実施例について説明する。
【0014】
<同義語抽出装置101の構成>
図1は、本実施例の同義語抽出装置101の構成例を示すブロック図である。同義語抽出装置101は、入力装置102、出力装置103、通信装置104、演算装置105、メモリ106、および補助記憶装置107を含む計算機として構成される。
【0015】
入力装置102は、ユーザからのコマンドやテキスト、音声等のセンサデータなどの入力を受け付ける。たとえば、キーボードや、マウスや、タッチパネル、マイクなどのデバイスである。
【0016】
出力装置103は、液晶や有機EL、CRTにより画面を表示するディスプレイ、紙を印刷出力するプリンタ、音声出力するスピーカを含む。ディスプレイ装置である。なお、入力装置102および出力装置103を設けず、ネットワークを介して接続された他の計算機を入力装置102および出力装置103として機能させてもよい。
【0017】
通信装置104は、たとえば、所定のプロトコルに従って、同義語抽出装置101による処理内容を外部機器に送信したり、外部機器から情報を受信したりする。
【0018】
演算装置105は、プロセッサを含み、メモリ106に格納されたプログラムを実行する。メモリ106は、不揮発性の記憶素子であるROMおよび不揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(たとえば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、演算装置105が実行するプログラムおよびプログラムの実行時に使用されるデータを一時的に格納する。
【0019】
補助記憶装置107は、たとえば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等で構成される大容量かつ不揮発性の記憶装置であり、演算装置105が実行するプログラムおよびプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置107から読み出されて、メモリ106にロードされて、演算装置105によって実行される。
【0020】
演算装置105が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)またはネットワークを介して同義語抽出装置101に提供され、非一時的記憶媒体である不揮発性の補助記憶装置107に格納される。このため、同義語抽出装置101は、リムーバブルメディアからデータを読み込むインタフェースを有するとよい。
【0021】
同義語抽出装置101は、物理的に一つの計算機上で構成され、または、論理的または物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで処理してもよく、複数の物理的計算機資源上に構築された仮想計算機上で処理してもよい。
【0022】
演算装置105は、メモリ106にロードされたプログラムに従って処理を実行することで、同義語抽出装置101として機能する。
【0023】
言語モデル115は、深層学習により学習された言語モデルであって、複数個あってもよい。埋込層116は、言語モデル115から抽出した埋込層であって、複数個あってもよい。言語モデル115および埋込層116は、同義語抽出装置101と通信装置104によりアクセス可能な他のコンピュータに記憶されていてもよい。
【0024】
埋込層抽出108は、言語モデル115から埋込層116を抽出し、補助記憶装置107に保存する処理を演算装置105に実行させるソフトウェアモジュールである。
【0025】
語類似度計算109は、任意の埋込層116を用いて、対象語と同義語候補との文脈非依存の類似度を計算する処理を演算装置105に実行させるソフトウェアモジュールである。この類似度を語類似度と呼ぶ。
【0026】
文脈類似度計算110は、任意の言語モデル115を用いて、対象文と対象文内の対象語を同義語で置き換えた置換文との類似度を計算する処理を演算装置105に実行させるソフトウェアモジュールである。この類似度を文脈類似度と呼ぶ。
【0027】
類似度統合111は、語類似度と文脈類似度を統合した統合類似度を計算する処理を演算装置105に実行させるソフトウェアモジュールである。
【0028】
同義語抽出制御117は、対象語に対する同義語を抽出する処理を演算装置105に実行させるソフトウェアモジュールである。
【0029】
具体的には、たとえば、演算装置105は、同義語抽出制御117により、まず、全ての同義語候補に対し対象語との語類似度を計算し、語類似度が大きい同義語候補を選び、選んだ各同義語候補に対して文脈類似度を計算する。文脈類似度の計算コストが大きいため、文脈類似度の計算対象となる同義語候補を語類似度で絞り込んでいる。
【0030】
つぎに、演算装置105は、同義語抽出制御117により、語類似度と文脈類似度を統合した統合類似度を計算し、統合類似度がしきい値Ta以上である同義語候補、または、統合類似度が上位Na番目(Naはあらかじめ設定された1以上の整数)までの同義語候補を、同義語として抽出する。以降、このような同義語候補を、統合類似度が高い同義語候補と称す。
【0031】
同義語候補プーリング112は、複数の埋込層116を用いて、同義語候補を集める処理を演算装置105に実行させるソフトウェアモジュールである。
【0032】
同義語候補アンサンブル113は、複数の埋込層116を用いて、複数の語類似度を計算し、これらの語類似度をアンサンブル(平均)する処理を演算装置105に実行させるソフトウェアモジュールである。
【0033】
同義語抽出制御117は、複数の埋込層116を用いて、対象語に対する同義語を抽出する処理を演算装置105に実行させるソフトウェアモジュールでもある。
【0034】
具体的には、たとえば、演算装置105は、同義語抽出制御117により、同義語候補プーリング112で集めた同義語候補に対し、同義語候補アンサンブル113で語類似度を計算し、この語類似度がしきい値Tb以上である同義語候補、または、語類似度が上位Nb番目(Nbはあらかじめ設定された1以上の整数)までの同義語候補に対して文脈類似度を計算する。以降、このような同義語候補を、語類似度が高い同義語候補と称す。
【0035】
そして、演算装置105は、同義語抽出制御117により、語類似度と文脈類似度とを統合した統合類似度がしきい値Tc以上である同義語候補、または、統合類似度が上位Nc番目(Ncはあらかじめ設定された1以上の整数)までの同義語候補を同義語として抽出する。以降、このような同義語候補を、統合類似度が高い同義語候補と称す。
【0036】
言語モデル選択114は、語類似度計算109、同義語候補プーリング112,同義語候補プーリング112、同義語候補アンサンブル113で用いる、一つまたは複数の埋込層116を自動で選択したり、文脈類似度計算110で用いる言語モデル115を自動で選択したりする処理を演算装置105に実行させるソフトウェアモジュールである。
。
【0037】
<言語モデル115>
同義語抽出の詳細を説明する前に、
図2を用いて、言語モデル115と埋込層116の詳細を説明する。
【0038】
図2は、transformerと呼ばれる言語モデル115の模式図である。言語モデル115は、対象語を含む文の集合を第1訓練データとし、各文の対象語の同義語を第1正解データとする第1訓練データセットを用いて学習されたモデルである。対象語の同義語は、たとえば、補助記憶装置107内の不図示の同義語辞書により特定される。この第1訓練データセットは、言語モデル115に保持されている。同義語抽出時(予測時)では、対象語が選択されると、文の集合のうち対象語以外の語が同義語候補として用いられる。
【0039】
具体的には、たとえば、言語モデル115には文200が入力される。
図2は、「引っ越ししたがどうすればよい」という文200を入力した例を示す。実際は、トークナイザというプログラムにより入力文200をトークンに分割して、トークン列201が言語モデル115に入力される。
図2では、「引っ越し」「した」「が」「どう」「すれ」「ば」「よい」という7個のトークンからなるトークン列201が入力されている。
【0040】
トークン列201の各トークンは、入力埋込層202で数百次元のベクトルに変換される。このベクトルのことを埋め込み表現とよぶ。入力埋込層202は、トークンの種類数(vocab_size)と埋め込み表現の次元数(768)からなる行列であり、行列の値は、第2訓練データセット(第1訓練データから得られた既存のトークン列201である第2訓練データと第2訓練データから得られた埋め込み表現203(第2正解データ)との組み合わせ)から学習される。第2訓練データセットは、入力埋込層202に保持されている。
【0041】
埋め込み表現203は、文脈に依存しない埋め込み表現である。つまり、どのような文脈に現れても「引っ越し」は同じ埋め込み表現になる。本実施例では、入力埋込層202は埋込層116として用いられる。
【0042】
図3は、埋込層抽出108を示す説明図である。つまり、埋込層抽出108により、与えられた言語モデル115から、入力埋込層202を埋込層116として分離して保存する処理が実行される。
【0043】
図2に戻り、言語モデル115は、入力埋込層202の出力である埋め込み表現203の各々に、位置インデックスと文インデックスとの加算処理(204)を実行し、トークンごとの加算結果205を出力する。位置インデックスは、入力されたトークン列201の先頭からの出現位置を表した実数値であり、文インデックスは、トークン列201内の対象トークンが1文目に現れるトークンか2文目に現れるトークンかを区別した実数値である。加算結果205の各々は、768次元の埋め込み表現である。
【0044】
つぎに、言語モデル115は、transformer層206で、加算結果205の各々である768次元の埋め込み表現を、同じ768次元の埋め込み表現207に変換する。ただし、言語モデル115は、attentionと呼ばれる機構により、対象トークン以外のトークンとの関連性を計算した上で、出力の768次元の値を埋め込み表現207として計算する。transformer層206のパラメータも第3訓練データセット(第2正解データから得られた加算結果205である第3訓練データと第3訓練データから得られた埋め込み表現207(第3正解データ)との組み合わせ)から学習される。第3訓練データセットは、transformer層206に保持されている。
【0045】
transformer層206の出力である埋め込み表現207は、埋め込み表現203とは異なり、文脈に依存する。つまり、同じ「引っ越し」でも現れる文脈により埋め込み表現207が異なる。
【0046】
言語モデル115は、transformer層206による埋め込み表現207への変換を1回以上繰り返し、埋め込み表現210を出力する。
【0047】
出力埋込層211は、最上位の埋め込み表現210を、トークンの種類数(vocab_size)の次元に変換し、トークンの種類数の実数ベクトル212を出力する。実数ベクトル212は、入力された文200の文脈に合った単語の埋め込み表現を表している。言語モデル115の学習時には、言語モデル115は、トークン列201内の「引っ越し」をマスク化して入力し、実数ベクトル212において、マスク化した「引っ越し」に相当する次元の値が最大値になるように全てのパラメータをバックプロパゲーションで更新する。
【0048】
つまり、言語モデル115は、同義語候補の集合を定義しており、対象語を含む文が入力されると対象語の同義語を、同義語候補の集合の中から選択して出力するように学習されたモデルである。
【0049】
非特許文献2の技術は、「引っ越し」の同義語を抽出する際に、「引っ越し」に対応する出力ベクトルの値をソートし、上位のインデックスに相当するトークンを「引っ越し」の同義語とする。しかし、「引っ越し」の埋め込み表現として、文脈依存の埋め込み表現210が使われるため、文脈の影響を強く受けすぎる。この例の場合、「引っ越し」とは同義ではないが「xしたがどうすればよい」(xはマスク)という文脈に良く符合する「結婚」などの値が大きくなる。
【0050】
本実施例では、文脈の影響を考慮する前に、まずは、「引っ越し」という対象語そのものとの類似度がしきい値Tb以上であるトークン、または、類似度が上位Nb番目までのトークンを、語類似度が高い同義語候補とする。
【0051】
<語類似度計算109>
図4は、語類似度計算109の処理例を示す説明図である。トークナイズ403、埋め込み表現抽出406、埋め込み表現平均409、および埋め込み表現間類似度計算412は、語類似度計算109内のソフトウェアモジュールである。
【0052】
演算装置105は、語類似度計算109により、対象語w(401)と同義語候補s(402)との語類似度を計算する。
【0053】
まず、演算装置105は、トークナイズ403により、対象語w(401)および同義語候補s(402)をそれぞれトークンに分割する。トークン列404は、対象語w(401)をトークナイズした結果得られるトークンwt1,wt2,…である。トークン列405は、同義語候補s(402)をトークナイズした結果得られるトークンst1,st2,…である。たとえば、対象語wが「所有者」である場合、この対象語wをトークナイズした結果得られるトークン列404は、wt1=「所有」,wt2=「者」となる。
【0054】
つぎに、演算装置105は、埋め込み表現抽出406により、トークン列404およびトークン列405の各トークンの埋め込み表現を抽出し、埋め込み表現列407および埋め込み表現列408を出力する。演算装置105は、埋め込み表現列407,408を抽出する際は、埋込層116を用いる。たとえば、トークンwt1の埋め込み表現はemb(wt1)になる。埋め込み表現は数百次元の実数ベクトルである。
図2の言語モデル115から抽出した入力埋込層202を用いる場合、埋め込み表現の次元数は768次元である。
【0055】
つぎに、演算装置105は、埋め込み表現平均409により、対象語s(401)から抽出した埋め込み表現列407を平均して、単一の埋め込み表現w_emb(w)(410)を出力する。同様にして、演算装置105は、同義語候補s(402)に対しても埋め込み表現w_emb(s)(411)を出力する。
【0056】
最後に、演算装置105は、埋め込み表現間類似度計算412により、対象語w(401)に対する埋め込み表現w_emb(w)(410)と、同義語候補s(402)に対する埋め込み表現w_emb(s)(411)との余弦cos(w_emb(w),w_emb(s))を計算して、語類似度w_sim(w,s)(413)を出力する。
【0057】
対象語wと同義語候補sとの語類似度w_sim(w,s)は、対象語wが現れる文脈を考慮していない。そこで、本実施例では、演算装置105は、対象語wが現れる対象文と、対象文内の対象語wを同義語候補sに置き換えた同義語文と、の間の類似度を計算することで、同義語の文脈依存性を考慮する。この類似度が文脈類似度である。
【0058】
<文脈類似度計算110>
図5は、文脈類似度計算110の処理例を示す説明図である。語置換504、トークナイズ506、文脈埋め込み表現計算509、文脈埋め込み表現平均512、および埋め込み表現間類似度計算515は、文脈類似度計算110内のソフトウェアモジュールである。
【0059】
演算装置105は、文脈類似度計算110により、対象文c(501)に対する、対象語w(401)と同義語候補s(402)との文脈類似度を計算する。
【0060】
最初に、演算装置105は、語置換504により、対象文c(501)内の対象語w(401)を同義語候補s(402)で置き換えて、同義語文cs(505)を作成する。たとえば、対象文c(501)が「引っ越ししたがどうすればよい」、対象語w(401)が「引っ越し」、同義語候補s(402)が「転居」の場合、同義語文cs(505)は「転居したがどうすればよい」になる。以降では、演算装置105は、対象文c(501)と同義語文cs(505)の類似度を計算する。
【0061】
演算装置105は、トークナイズ506により、対象文c(501)および同義語文cs(505)をトークンに分割し、トークン列507,508を出力する。トークン列507は、トークンwt1,wt2,…の配列であり、トークン列508は、トークンst1,st2,…の配列である。
【0062】
つぎに、演算装置105は、文脈埋め込み表現計算509により、トークン列507およびトークン列508の各トークンの埋め込み表現を抽出し、埋め込み表現列510,511を得る。埋め込み表現を抽出する際は、言語モデル115を用いる。埋め込み表現列510は、埋め込み表現emb(wt1),emb(wt2),…の配列であり、埋め込み表現列511は、埋め込み表現emb(st1),emb(st2),…の配列である。埋め込み表現列510,511は、
図2の最上位の埋め込み表現210の配列であり、文脈依存の埋め込み表現になる。たとえば、対象文c(501)についてのトークンwt1の埋め込み表現はemb(wt1|c)になる。
【0063】
つぎに、演算装置105は、文脈埋め込み表現平均512により、対象語文脈(501)から抽出した埋め込み表現列510を平均して、単一の埋め込み表現c_emb(c)(513)を出力する。同様にして、演算装置105は、文脈埋め込み表現平均512により、同義語文cs(505)に対しても埋め込み表現c_emb(cs)(514)を出力する。
【0064】
最後に、演算装置105は、埋め込み表現間類似度計算515により、対象文c(501)に対する埋め込み表現c_emb(c)(513)と、同義語文cs(505)に対する埋め込み表現c_emb(cs)(514)と、の余弦cos(c_emb(c),c_emb(cs))を計算して、語類似度c_sim(w,s)(516)を出力する。
【0065】
<類似度統合111>
図6は、類似度統合111の処理例を示す説明図である。演算装置105は、類似度統合111により、
図4で計算した語類似度413と、
図5で計算した文脈類似度516とを統合して、統合類似度600を出力する。対象語wに対して、統合類似度600が大きい同義語候補sほど、同義語らしいと判断される。
【0066】
演算装置105は、類似度統合111により、語類似度w_sim(w,s)(413)と文脈類似度c_sim(w,s)(516)とを統合し、統合類似度wc_sim(w,s)(600)を計算する。本実施例では、演算装置105は、係数αを用いて語類似度413と文脈類似度516を加算する。具体的には、たとえば、統合類似度600は、下記式(1)により算出される。
【0067】
wc_sim(w,s)=(1-α)*w_sim(w,s)+α*c_sim(w,s)・・・(1)
【0068】
<同義語抽出>
図7は、同義語抽出制御117による同義語抽出の処理例1を示す説明図である。
図7では、語類似度計算109(
図4)、文脈類似度計算110(
図5)、および類似度統合111(
図6)を組み合わせて同義語を抽出する例を示す。
【0069】
入力データは対象語401と対象語401が現れる対象文501である。また、語類似度413を計算するための埋込層116と、文脈類似度516を計算するための言語モデル115もあらかじめ指定される。なお、これらの埋込層116と言語モデル115は任意のものを選択してよい。
【0070】
まず、演算装置105は、同義語抽出制御117により、同義語候補集合703を求める。
図7では、埋込層116で定義されているトークン集合を同義語候補集合703とするが、任意の文字列の集合を同義語候補集合としてもよい。たとえば、演算装置105は、wordnetなどの既存の辞書を用いて、対象語401の同義語を抽出し、これらを同義語候補集合703としてもよい。または、演算装置105は、埋込層116から抽出した同義語候補集合703に、既存の辞書から抽出した同義語候補402を加えてもよい。
【0071】
演算装置105は、語類似度計算109により、同義語候補集合703の各同義語候補に対し語類似度計算処理を実行して、語類似度413の集合である語類似度集合705を出力する。
【0072】
演算装置105は、語類似度ソート/選択706により、語類似度集合705を語類似度413の降順にソートし、上位の任意個数Nbまたはしきい値Tb以上の対象語401を選択し、新たな語類似度集合707を出力する。語類似度集合707には、語類似度413が高い同義語候補402が含まれる。
【0073】
演算装置105は、文脈類似度計算110により、語類似度集合707内の語類似度413が高い同義語候補402に対して、文脈類似度計算処理を実行して、文脈類似度516を計算し、文脈類似度集合709を出力する。
【0074】
語類似度413の計算コストに比べて文脈類似度516の計算コストは大きい。具体的には、語類似度413を計算する際は、埋込層116の1層から埋め込み表現を得るに対し、文脈類似度516を計算する際は、言語モデル115の多層を用いて埋め込み表現を得るためである。そのため、本実施例では、一例として、語類似度413が高い同義語候補402に対してのみ文脈類似度516を計算する。ただし、語類似度413が高くない同義語候補402に対して文脈類似度516を計算することを妨げない。
【0075】
演算装置105は、類似度統合111により、類似度統合処理を実行して、語類似度集合707と文脈類似度集合709とを統合し、統合類似度集合711を出力する。
【0076】
最後に、演算装置105は、統合類似度ソート/選択712により、統合類似度集合711を統合類似度600の降順にソートし、上位の任意個数Ncまたはしきい値Tc以上の同義語候補402を選択し、新たな統合類似度集合713を出力する。統合類似度集合713内の同義語候補402(統合類似度が高い同義語候補)が、対象語401の同義語である。
【0077】
これまでは、単一の埋込層を用いた同義語抽出について説明してきたが、以降では、複数の埋込層を用いた同義語抽出方法について説明する。
【0078】
図8は、同義語候補プーリング112による複数の言語モデルの各埋込層を用いた同義語抽出の処理例を示す説明図である。まず、演算装置105は、複数の埋込層である第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-n(iは1≦i≦nを満たす整数。nは、2以上の整数、
図2の入力埋込層202に相当。)の各々から同義語候補集合(第1同義語候補集合802-1,…,第i同義語候補集合802-i,…,第n同義語候補集合802-n)を収集する。
【0079】
図8において、対象語401が入力されると、第i埋込層801-iで定義されているトークン集合を、第i同義語候補集合802-iとする。つぎに、演算装置105は、対象語401と、第i同義語候補集合802-i内の各同義語候補に対し、
図4で説明した類似度計算処理を用いて語類似度413を計算する。演算装置105は、これらの語類似度413を降順にソートし、上位の任意個数またはしきい値以上の語類似度413を選択し、第i語類似度集合804-iを出力する。以上の処理が、第i語類似度計算/ソート/選択803-iである。
【0080】
演算装置105は、第i語類似度計算/ソート/選択803-iを、第i埋込層801-iに対して実行し、第1同義語候補集合802-1,…,第i同義語候補集合802-i,…,第n同義語候補集合802-nを出力する。
【0081】
プーリング800では、演算装置105は、n個の語類似度集合(第1語類似度集合804-1,…,第i語類似度集合804-i,…,第n語類似度集合804-n)の和集合を計算し、新たな語類似度集合810を出力する。この語類似度集合810の各語類似度に対応する同義語候補の集合が、第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-nから抽出した同義語候補集合となる(以下、同義語候補集合810と表記する)。
【0082】
第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-nから同義語候補を抽出することで、各第i埋込層801-iが前提としているトークナイザに応じて、様々な同義語候補の抽出が可能になる。
【0083】
たとえば、単語辞書ベースのトークナイザを前提とした第i埋込層801-iからは、「オーナー」の同義語候補として「所有者」が抽出できない。「所有者」は、通常、「所有」と「者」という2つのトークンに分割されるからである。一方、統計ベースのトークナイザでは、コーパスに「所有者」が頻出していれば、「所有者」が一つのトークンとして抽出できる場合がある。よって、このようなトークナイザを用いる第i埋込層801-iを加えることで、「オーナー」の同義語候補として「所有者」が抽出できる。
【0084】
第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-nから抽出した上記同義語候補集合810に対し、演算装置105は、同じく第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-nを用いて語類似度413を計算する。
【0085】
図9は、同義語候補アンサンブル113による複数の言語モデルの各埋込層を用いた同義語候補アンサンブルの処理例を示す説明図である。同義語候補アンサンブル113は、対象語w(401)と同義語候補s(402)の語類似度を、言語モデルごとに算出し、アンサンブルした結果である。同義語候補アンサンブル113は、同義語候補s(402)毎に実行された結果である。
図9では、対象語401と、同義語候補s(402)、および、第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-nが与えられている。同義語候補s(402)は、
図8で抽出した同義語候補集合810の各要素である。また、
図9のn個の埋込層は、
図8のn個の埋込層と同じとしたが、異なってもよい。
【0086】
第i埋込層801-iに関しては、演算装置105は、語類似度計算900-iで、対象語w(401)と同義語候補s(402)に対し、
図4で説明した語類似度計算処理を用いて、語類似度w_simi(w,s)(901-i)を計算する。
【0087】
アンサンブル910では、演算装置105は、計算したN個の語類似度901-1,…,901-i,…,901-nを平均して、アンサンブルした語類似度w_sim(w,s)(920)を出力する。
【0088】
語類似度901-iは、用いる第i埋込層801-iに依存して、正確であったり不正確であったりする。本実施例のように、第1埋込層801-1,…,第i埋込層801-i,…,第n埋込層801-nから計算した語類似度901-1,…,901-i,…,901-nをアンサンブルすることで、語類似度901-iの個別の第i埋込層801-iへの依存度を軽減することができる。
【0089】
図10は、同義語抽出制御117による同義語抽出の処理例2を示す説明図である。
図10では、同義語候補プーリング112(
図8)、同義語候補アンサンブル113(
図9)を適用して、同義語を抽出する処理である。
【0090】
対象語401と対象語401が現れる対象文501が入力データである。また、同義語候補プーリング112と同義語候補アンサンブル113で用いる複数の埋込層116と、文脈類似度516を計算するための言語モデル115もあらかじめ用意される。なお、複数の埋込層116および言語モデル115は任意のものを選択してよい。
【0091】
まず、演算装置105は、同義語候補プーリング112(
図8)を用いて、同義語候補集合810を抽出する。つぎに、演算装置105は、同義語候補アンサンブル113(
図9)を用いて、語類似度集合1006を出力する。語類似度集合1006は、1以上の語彙類似度の集合である。語類似度集合1006が同義語候補集合になる。既に述べたように、複数の埋込層を用いることで、同義語候補の多様性が増し、かつ、語類似度901-iの個別の第i埋込層801-iへの依存度が低減する。
【0092】
文脈類似度計算110では、演算装置105は、
図5で説明した文脈類似度計算処理を用いて、同義語候補集合1006の各同義語候補に対し、対象語401との文脈類似度516を計算し、文脈類似度集合1008を出力する。
【0093】
類似度統合111では、演算装置105は、
図6で説明した類似度統合処理を用いて、語類似度集合1006と文脈類似度集合1008とを統合し、統合類似度集合1012を出力する。この集合の同義語候補が、抽出された同義語になる。
【0094】
図7の同義語抽出処理も
図10の同義語抽出処理も、用いる埋込層116と言語モデル115は、あらかじめ選んでおいた。これらの埋込層116,言語モデル115を自動で選択することも可能である。なお、埋込層の場合は、埋込層の抽出元である言語モデルを選択することになる。
【0095】
図11は、言語モデル選択114による言語モデル選択処理の一例を示す説明図である。
図11では、同義語抽出処理に適した言語モデルを、与えられた言語モデル集合1102から自動で選択する例を示す。
【0096】
言語モデルを選択するには、同義語抽出の対象となる領域の文集合1101を与えておく。この文集合1101は、対象領域の文集合であれば何でもよい。モデル適合度計算1103では、演算装置105は、選択対象である言語モデル集合1102の各言語モデルが、与えた文集合1101にどれだけ良く適合しているかを、たとえば公知の尺度であるperplexisityで測定する。
【0097】
モデル適合度ソート/選択1104では、演算装置105は、言語モデル集合1102をモデル適合度の降順にソートし、上位から任意の個数またはモデル適合度がしきい値以上の言語モデルである言語モデル集合1105を選択する。
【0098】
図12は、同義語抽出画面の一例を示す説明図である。同義語抽出画面1201は、出力装置103に表示される。同義語抽出画面1201は、対象語入力領域1202と、文脈入力領域1203と、辞書リスト1204と、言語モデルリスト1205と、自動選択ボタン1206と、文集合ファイル指定ボタン1207と、同義語候補抽出ボタン1208と、同義語候補リスト1209と、保存ボタン1210と、追加ボタン1211と、言語モデルリスト1212と、自動選択ボタン1213と、文集合ファイル指定ボタン1214と、同義語候補ランキングボタン1215と、同義語候補リスト1216と、保存ボタン1217と、を有する。
【0099】
対象語入力領域1202は、ユーザ操作により、対象語401が入力される領域である。文脈入力領域1203は、ユーザ操作により、対象文501が入力される領域である。
【0100】
辞書リスト1204には、選択可能な辞書がリスト化され、ラジオボタンによりユーザが選択可能である。言語モデルリスト1205には、同義語候補の抽出元として用いる埋込層116がリスト化され、ラジオボタンによりユーザが選択可能である。
【0101】
自動選択ボタン1206は、ユーザの押下により、言語モデルリスト1205内の言語モデルを自動選択するためのユーザインタフェースである。
【0102】
文集合ファイル指定ボタン1207は、ユーザの押下により、文集合を指定するためのユーザインタフェースである。ユーザは、文集合ファイル指定ボタン1207で文集合を指定して、自動選択ボタン1206を押下することで、指定した文集合に適した言語モデル(埋込層)を自動選択することができる。本処理は、
図11で説明した言語モデル選択処理で実行される。
【0103】
同義語候補抽出ボタン1208は、ユーザの押下により、辞書リスト1204で選択された辞書および言語モデルリスト1205で選択された言語モデル(埋込層)を用いて、同義語候補をリストアップするためのユーザインタフェースである。
【0104】
同義語候補リスト1209には、同義語候補抽出ボタン1208の押下によりリストアップされた同義語候補集合1006(
図10を参照)が表示される。つまり、語類似度901-iが大きい同義語候補がリストアップされる。同義語候補リスト1209において、スコアには語類似度901-iが表示される。ユーザは、リストアップされた同義語候補から適切な同義語候補を選択することができる。また、ユーザは、表示されている同義語候補の文字列を直接編集して変更することもできる。
【0105】
保存ボタン1210は、ユーザの押下により、同義語候補リスト1209の同義語を補助記憶装置107に保存するためのユーザインタフェースである。追加ボタン1211は、ユーザの押下により、同義語候補リスト1209にあらたな行を追加し、新たな同義語候補を入力するためのユーザインタフェースである。
【0106】
言語モデルリスト1212には、同義語候補のランキングで用いる言語モデルがリスト化され、ラジオボタンによりユーザが選択可能である。
【0107】
自動選択ボタン1213は、ユーザの押下により、言語モデルリスト1212内の言語モデルを自動選択するためのユーザインタフェースである。
【0108】
文集合ファイル指定ボタン1214は、ユーザの押下により、文集合を指定するためのユーザインタフェースである。ユーザは、文集合ファイル指定ボタン1214で文集合を指定して、自動選択ボタン1213を押下することで、指定した文集合に適した言語モデル(埋込層)を自動選択することができる。本処理は、
図11で説明した言語モデル選択処理で実行される。
【0109】
同義語候補ランキングボタン1215は、ユーザの押下により、同義語候補リスト1209でランキングされている同義語候補を、言語モデルリスト1212で選択された言語モデルを用いてランク付けするためのユーザインタフェースである。
【0110】
同義語候補リスト1216には、同義語候補リスト1209で選択された同義語候補が、言語モデルリスト1212で選択された言語モデルを用いてランク付けされた同義語候補が表示される。
【0111】
保存ボタン1217は、ユーザの押下により、同義語候補リスト1216の同義語を補助記憶装置107に保存するためのユーザインタフェースである。
【0112】
つまり、演算装置105は、同義語候補リスト1209で選択された同義語候補に対し、言語モデルリスト1212で選択された言語モデルを用いて文脈類似度を計算し、既に計算済みの語類似度と統合した統合類似度でソートする。ユーザはこの中から適切な同義語を選択し、保存ボタン1217を押下して、選択した同義語を補助記憶装置107に保存することができる。
【0113】
以上説明したように、本実施例によれば、文脈非依存性と文脈依存性のバランスがとれた同義語抽出が可能になる。また、複数の言語モデルを用いることで、高精度で安定した同義語抽出が可能になる。
【0114】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例および同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0115】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部または全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0116】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、または、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0117】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0118】
101 同義語抽出装置
105 演算装置
108 埋込層抽出
109 語類似度計算
110 文脈類似度計算
111 類似度統合
112 同義語候補プーリング
113 同義語候補アンサンブル
114 言語モデル選択
115 言語モデル
116 埋込層
117 同義語抽出制御