(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-20
(45)【発行日】2024-02-29
(54)【発明の名称】機械学習プログラム、機械学習方法および固有表現認識装置
(51)【国際特許分類】
G06F 40/295 20200101AFI20240221BHJP
G06F 40/216 20200101ALI20240221BHJP
【FI】
G06F40/295
G06F40/216
(21)【出願番号】P 2022516579
(86)(22)【出願日】2020-04-23
(86)【国際出願番号】 JP2020017488
(87)【国際公開番号】W WO2021214941
(87)【国際公開日】2021-10-28
【審査請求日】2022-10-12
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】グェン レ アン
(72)【発明者】
【氏名】森田 一
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2017-045453(JP,A)
【文献】特許第6077727(JP,B1)
【文献】土屋雅稔 他2名,非頻出語に対して頑健な日本語固有表現の抽出,情報処理学会研究報告,日本,社団法人情報処理学会,2008年05月15日,Vol.2008,No.46,1-6頁,(2008-NL-185/2008-SLP-71),ISSN 0919-6072
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
固有表現を示すラベルが付与されたテキストデータに含まれる文字列を複数のトークンに分割し、
前記複数のトークンのうち連続する特定の個数のトークンを示すトークン列と、複数の固有表現
と前記複数の固有表現それぞれのクラスを示すクラス情報とを含む
第1の辞書情報との間でマッチング処理を実行して、前記複数の固有表現のうち前記トークン列との類似度が閾値以上である類似固有表現を検索し、
前記トークン列
に含まれる2以上のトークンそれぞれに対して、前記トークン列の中における当該トークンの相対位置を示す位置情報と、前記トークン列と前記類似固有表現とが完全一致するか否かを示す合致度情報と、前記類似固有表現の前記クラス情報とを含むマッチング情報を生成し、
前記位置情報と前記合致度情報と前記クラス情報との組み合わせに対して、複数の次元の数値を含む第1のベクトルデータを対応付けた第2の辞書情報に基づいて、前記2以上のトークンそれぞれの前記マッチング情報を、
前記第1のベクトルデータに変換し、
訓練済みの機械学習モデルを用いて前記複数のトークンから変換された
、複数の次元の数値をそれぞれ含む複数の
第2のベクトルデータ
のうち、前記2以上のトークンに対応する第2のベクトルデータに前記第1のベクトルデータをそれぞれ合成して、合成後の前記複数の第2のベクトルデータを含む入力データを生成し、
固有表現を検出するための固有表現認識モデル
に前記入力データを入力して、前記固有表現認識モデルの出力と前記ラベルとを比較することを含む機械学習により、前記固有表現認識モデルを生成する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記類似固有表現を検索する処理は、前記トークン列と共通のトークンを含む他のトークン列と前記
第1の辞書情報との間で前記マッチング処理を実行する処理を含み、
前記マッチング情報を
生成する処理は、前記他のトークン列
に含まれる他の2以上のトークンそれぞれに対して他のマッチング情報を生成する処理を含み、
前記マッチング情報を変換する処理は、前記共通のトークンに対して、前記マッチング情報に対応する前記第1のベクトルデータと前記他のマッチング情報に対応する前記第1のベクトルデータとを単一の第1のベクトルデータに集約する処理を含み、
前記入力データを生成する処理では、前記共通のトークンに対応する第2のベクトルデータに、集約後の前記単一の第1のベクトルデータが合成される、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記単一の第1のベクトルデータに集約する処理は、同一次元の要素同士で
最大値または平均値を求めるプーリング処理を実行して前記
単一の第1のベクトルデータを生成する処理を含む、
ことを特徴とする請求項2に記載の機械学習プログラム。
【請求項4】
前記マッチング情報を
生成する処理は、前記トークン列から2以上の類似固有表現が検索された場合、
前記2以上のトークンそれぞれに対して、前記2以上の類似固有表現に対応する2以上のマッチング情報を
生成する処理を含み、
前記マッチング情報を変換する処理は、前記2以上のトークンそれぞれに対して、前記2以上のマッチング情報に対応する2以上の第1のベクトルデータを単一の第1のベクトルデータに集約する処理を含み、
前記入力データを生成する処理では、前記2以上のトークンに対応する第2のベクトルデータに、集約後の前記単一の第1のベクトルデータがそれぞれ合成される、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項5】
固有表現を示すラベルが付与されたテキストデータに含まれる文字列を複数のトークンに分割し、
前記複数のトークンのうち連続する特定の個数のトークンを示すトークン列と、複数の固有表現
と前記複数の固有表現それぞれのクラスを示すクラス情報とを含む
第1の辞書情報との間でマッチング処理を実行して、前記複数の固有表現のうち前記トークン列との類似度が閾値以上である類似固有表現を検索し、
前記トークン列
に含まれる2以上のトークンそれぞれに対して、前記トークン列の中における当該トークンの相対位置を示す位置情報と、前記トークン列と前記類似固有表現とが完全一致するか否かを示す合致度情報と、前記類似固有表現の前記クラス情報とを含むマッチング情報を生成し、
前記位置情報と前記合致度情報と前記クラス情報との組み合わせに対して、複数の次元の数値を含む第1のベクトルデータを対応付けた第2の辞書情報に基づいて、前記2以上のトークンそれぞれの前記マッチング情報を、
前記第1のベクトルデータに変換し、
訓練済みの機械学習モデルを用いて前記複数のトークンから変換された
、複数の次元の数値をそれぞれ含む複数の
第2のベクトルデータ
のうち、前記2以上のトークンに対応する第2のベクトルデータに前記第1のベクトルデータをそれぞれ合成して、合成後の前記複数の第2のベクトルデータを含む入力データを生成し、
固有表現を検出するための固有表現認識モデル
に前記入力データを入力して、前記固有表現認識モデルの出力と前記ラベルとを比較することを含む機械学習により、前記固有表現認識モデルを生成する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項6】
複数の固有表現
と前記複数の固有表現それぞれのクラスを示すクラス情報とを含む
第1の辞書情報と
、固有表現を検出するための固有表現認識モデルとを記憶する記憶部と、
テキストデータに含まれる文字列を複数のトークンに分割し、前記複数のトークンのうち連続する特定の個数のトークンを示すトークン列と前記
第1の辞書情報との間でマッチング処理を実行して、前記複数の固有表現のうち前記トークン列との類似度が閾値以上である類似固有表現を検索し、前記トークン列
に含まれる2以上のトークンそれぞれに対して、前記トークン列の中における当該トークンの相対位置を示す位置情報と、前記トークン列と前記類似固有表現とが完全一致するか否かを示す合致度情報と、前記類似固有表現の前記クラス情報とを含むマッチング情報を生成し、前記位置情報と前記合致度情報と前記クラス情報との組み合わせに対して、複数の次元の数値を含む第1のベクトルデータを対応付けた第2の辞書情報に基づいて、前記2以上のトークンそれぞれの前記マッチング情報を
、前記第1のベクトルデータに変換し、
訓練済みの機械学習モデルを用いて前記複数のトークンから変換された
、複数の次元の数値をそれぞれ含む複数の
第2のベクトルデータ
のうち、前記2以上のトークンに対応する第2のベクトルデータに前記第1のベクトルデータをそれぞれ合成して、合成後の前記複数の第2のベクトルデータを含む入力データを生成し、前記入力データ
を前記固有表現認識モデル
に入力することで、前記テキストデータの中から固有表現を検出する処理を実行する制御部と、
を有することを特徴とする固有表現認識装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習技術に関する。
【背景技術】
【0002】
自然言語処理の1つの技術として、固有表現認識(NER:Named Entity Recognition)がある。固有表現認識を、固有表現抽出と言うこともある。固有表現には、人名、組織名、地名などの固有名詞が含まれる。固有表現認識では、テキストから固有表現が検出され、検出された固有表現のクラスが判定される。固有表現認識の結果は、単語間の関係を判定する関係抽出や、テキスト中の固有表現と知識データベースの情報とをリンクするエンティティ・リンキングなど、他のタスクの入力として使用されることがある。
【0003】
固有表現認識では、既存の辞書に載っていない未知語に対しても、固有表現であることを認識したいことがある。この状況は、特定の専門分野のテキストから、専門用語である固有表現を検出する場合に生じることがある。例えば、生物医学(バイオメディカル)分野のテキストから、遺伝子名、薬品名、疾患名などの固有表現を検出する固有表現認識が試みられている。生物医学分野では、遺伝子名や薬品名は複合語が多く、既存の専門用語辞書に載っていない新しい遺伝子名や薬品名がテキストに出現することも多い。
【0004】
未知語に対する固有表現認識の方法として、近似文字列照合(Approximate String Matching)を用いた辞書拡張の技術が提案されている。例えば、辞書に登録された遺伝子名に対して、文字の挿入、削除、置換などの文字列編集を行って別の遺伝子名の候補を生成する技術が提案されている。また、辞書に登録された遺伝子名に対して、所定の前キーワードや後キーワードを追加して別の遺伝子名の候補を生成する技術が提案されている。
【0005】
また、未知語に対する固有表現認識の方法として、完全一致文字列照合(Exact String Matching)を用いた機械学習モデルの技術が提案されている。例えば、テキストに含まれる単語を分散表現の単語ベクトルに変換し、双方向LSTM(Long Short Term Memory)を含む多層ニューラルネットワークを用いて単語ベクトルから固有表現クラスの確信度を算出する技術が提案されている。この提案の技術では、辞書に登録されている単語については、辞書と完全一致していることを示す補助的情報が、単語ベクトルと合わせて多層ニューラルネットワークに入力される。固有表現クラスの確信度は未知語に対しても算出されるため、未知の固有表現を検出できる可能性がある。
【先行技術文献】
【非特許文献】
【0006】
【文献】Yoshimasa Tsuruoka and Jun'ichi Tsujii, "Improving the performance of dictionary-based approaches in protein name recognition", Journal of Biomedical Informatics, Volume 37 Issue 6, pp. 461-470, December 2004
【文献】Zhihao Yang, Hongfei Lin and Yanpeng Li, "Exploiting the performance of dictionary-based bio-entity name recognition in biomedical literature", Computational Biology and Chemistry, Volume 32 Issue 4, pp. 287-291, August 2008
【文献】Alexandre Passos, Vineet Kumar and Andrew McCallum, "Lexicon Infused Phrase Embeddings for Named Entity Resolution", Proc. of the 18th Conference on Computational Natural Language Learning, pp. 78-86, June 2014
【文献】Jingjing Xu, Ji Wen, Xu Sun and Qi Su, "A Discourse-Level Named Entity Recognition and Relation Extraction Dataset for Chinese Literature Text", arXiv:1711.07010, 19 November 2017
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来の近似文字列照合を用いた辞書拡張の技術は、所定の拡張ルールに従って、認識可能な固有表現を増やすものである。しかし、所定の拡張ルールに従った辞書拡張では、未知の固有表現を網羅的にカバーできるわけではなく、認識精度の向上に限界がある。また、従来の完全一致文字列照合を用いた機械学習モデルの技術は、辞書に登録された既知の固有表現の認識精度を確保しつつ、未知の固有表現もある程度認識できるようにするものである。しかし、辞書と完全一致している既知の固有表現についての補助的情報を与えるだけでは、未知の固有表現の認識精度の向上には限界がある。
【0008】
1つの側面では、本発明は、辞書に載っていない未知語に対する固有表現認識の精度を向上させる機械学習プログラム、機械学習方法および固有表現認識装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、テキストデータに含まれる文字列を複数のトークンに分割し、複数のトークンのうち連続する特定の個数のトークンを示すトークン列と、複数の固有表現を含む辞書情報との間でマッチング処理を実行して、複数の固有表現のうちトークン列との類似度が閾値以上である類似固有表現を検索し、トークン列と類似固有表現との間のマッチング処理の結果を示すマッチング情報を、第1のベクトルデータに変換し、複数のトークンから変換された複数のベクトルデータと第1のベクトルデータとを用いて入力データを生成し、入力データを用いた機械学習により、固有表現を検出するための固有表現認識モデルを生成する、処理をコンピュータに実行させることを特徴とする機械学習プログラムが提供される。
【0010】
また、1つの態様では、機械学習方法が提供される。また、1つの態様では、記憶部と制御部とを有することを特徴とする固有表現認識装置が提供される。
【発明の効果】
【0011】
1つの側面では、辞書に載っていない未知語に対する固有表現認識の精度が向上する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態の機械学習装置を説明するための図である。
【
図2】第2の実施の形態の固有表現認識装置を説明するための図である。
【
図3】第3の実施の形態の機械学習装置のハードウェア例を示す図である。
【
図4】固有表現認識のデータフロー例を示す図である。
【
図6】マッチングパターン辞書の例を示す図である。
【
図7】マッチングベクトルの生成例を示す図である。
【
図9】機械学習装置の機能例を示すブロック図である。
【
図10】入力データ生成の手順例を示すフローチャートである。
【
図11】モデル生成の手順例を示すフローチャートである。
【
図12】固有表現認識の手順例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態を、図面を参照して説明する。第1の実施の形態を説明する。
図1は、第1の実施の形態の機械学習装置を説明するための図である。機械学習装置10は、入力されたテキストデータの中から固有表現を検出するための固有表現認識モデルを、機械学習によって生成する。機械学習装置10は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置10を、コンピュータまたは情報処理装置と言うこともある。生成された固有表現認識モデルを用いた固有表現認識を、機械学習装置10が実行してもよいし他の情報処理装置が実行してもよい。
【0014】
機械学習装置10は、記憶部11および制御部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。制御部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、制御部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
【0015】
記憶部11は、テキストデータ13および辞書情報14を記憶する。
テキストデータ13は、自然言語で記述された文章を表す文字列を含む。テキストデータ13は、例えば、生物医学分野の学術論文など、特定の専門分野の文書である。テキストデータ13は、機械学習のための訓練データとして使用される。そこで、テキストデータ13には、固有表現に関する教師ラベルが付与されている。例えば、テキストデータ13に含まれる固有表現に対して、固有表現であることを示すタグまたは固有表現クラスを示すタグが付与されている。教師ラベルは、例えば、人手によって予め付与される。
【0016】
辞書情報14は、既知である複数の固有表現を記載した固有表現辞書である。例えば、辞書情報14は、遺伝子名、薬品名、疾患名などの専門的な固有表現を含む。辞書情報14は、各固有表現に対して、その固有表現が属するクラス分類を記載していてもよい。ただし、辞書情報14は、全ての固有表現を網羅しているとは限らない。テキストデータ13は、辞書情報14に記載された固有表現を含むこともあるし、辞書情報14に記載されていない固有表現を含むこともある。辞書情報14に記載されていない固有表現を、未知の固有表現または未知語と言うことがある。
【0017】
制御部12は、以下のようにして機械学習により固有表現認識モデル18を生成する。
まず、制御部12は、テキストデータ13に含まれる文字列を複数のトークンに分割する。トークンへの分割には、例えば、形態素解析などの自然言語処理技術が用いられる。トークンは、言語上意味のある文字列である。トークンは、単語であることもあるし、単語より小さい言語単位であることもある。固有表現は複合語であることもある。そのため、1つのトークンが1つの固有表現を形成することもあるし、2以上のトークンを含むトークン列が1つの固有表現を形成することもある。
【0018】
例えば、テキストデータ13のトークン列(w3,w4,w5)が1つの固有表現を形成している。また、辞書情報14には、トークン列(w1,w2,w’3)が1つの固有表現として記載され、トークン列(w3,w’4)が1つの固有表現として記載されている。
【0019】
制御部12は、テキストデータ13から、連続する特定の個数のトークンを示すトークン列13aを抽出する。特定の個数は、例えば、2個以上である。n個のトークンを含むトークン列13aを、n-gramと言うことがある。制御部12は、トークン数nが同じ2以上のトークン列やトークン数nが異なる2以上のトークン列を、テキストデータ13から抽出し得る。制御部12は、トークン列13aと辞書情報14との間でマッチング処理を実行する。マッチング処理では、制御部12は、辞書情報14に含まれる複数の固有表現それぞれとトークン列13aとを比較する。
【0020】
マッチング処理では、いわゆる近似文字列照合が行われる。制御部12は、辞書情報14に含まれる複数の固有表現のうち、トークン列13aとの類似度が閾値以上である固有表現を、類似固有表現14aとして検索する。類似度は、例えば、トークン列13aと複数の固有表現それぞれとの間で算出される編集距離(レーベンシュタイン距離)の逆数であってもよい。その場合、制御部12は、トークン列13aと複数の固有表現それぞれとの間で編集距離を算出し、編集距離が閾値以下の固有表現を類似固有表現14aと判定してもよい。編集距離は、ある固有表現とトークン列13aとを一致させるために行うことになる、1文字の追加、1文字の置換または1文字削除の回数である。編集距離は、動的計画法によって算出されてもよい。
【0021】
トークン列13aと類似固有表現14aとが、完全一致していることもあるし、類似しているものの完全一致していないこともある。また、トークン列13aに対して、2以上の類似固有表現が検索されることもある。一例として、トークン列13aが(w3,w4)であり、辞書情報14に含まれるトークン列(w1,w2,w’3)はトークン列13aと類似しておらず、辞書情報14に含まれるトークン列(w3,w’4)がトークン列13aと類似しているとする。この場合、類似固有表現14aが(w3,w’4)となる。
【0022】
制御部12は、トークン列13aと類似固有表現14aとの間のマッチング処理の結果を示すマッチング情報を、ベクトルデータ16に変換する。マッチング情報は、例えば、トークン列13aに含まれる各トークンに対して生成される。マッチング情報は、例えば、トークン列13aの中での各トークンの相対位置を示す位置情報を含む。また、マッチング情報は、例えば、トークン列13aと類似固有表現14aとが完全一致したか否かを示す合致度情報を含む。また、マッチング情報は、例えば、類似固有表現14aが属する固有表現クラスを示すクラス情報を含む。
【0023】
ベクトルデータ16は、複数の次元の数値を並べた数値列である。ベクトルデータ16は、マッチング情報の分散表現であってもよい。例えば、マッチング情報からベクトルデータ16への変換は、訓練済みのニューラルネットワークを用いて行われてもよい。ベクトルデータ16は、100次元など次元数が大きいものであってもよく、多くの次元の数値は小さく少数の次元の数値が大きいという分布をもっていてもよい。また、類似するマッチング情報が、類似するベクトルデータに変換されてもよい。
【0024】
制御部12は、ベクトルデータ16とは別に、テキストデータ13に含まれる複数のトークンから変換された複数のベクトルデータを取得する。ここでは、制御部12は、1つのトークンに対応するベクトルデータ15を取得する。ベクトルデータ15は、複数の次元の数値を並べた数値列である。ベクトルデータ15は、単語の分散表現であってもよい。例えば、トークンからベクトルデータ15への変換は、訓練済みのニューラルネットワークを用いて行われてもよい。訓練済みのニューラルネットワークは、例えば、word2vecでもよい。ベクトルデータ15は、300次元など次元数が大きいものであってもよい。また、類似する意味をもつ単語が、類似するベクトルデータに変換されてもよい。
【0025】
制御部12は、ベクトルデータ15とベクトルデータ16とを用いて、入力データ17を生成する。例えば、テキストデータ13の中のトークンw3に対して、ベクトルデータ15,16が生成される。すると、制御部12は、ベクトルデータ15とベクトルデータ16とを連結(concatenate)したものを、トークンw3を表すベクトルデータと定義する。ベクトルデータ15,16の連結では、例えば、ベクトルデータ15の後ろにベクトルデータ16を配置する。その場合、連結後のベクトルデータの次元数は、ベクトルデータ15の次元数とベクトルデータ16の次元数の和になる。テキストデータ13に含まれる各トークンに対して、連結したベクトルデータを生成してもよい。
【0026】
そして、制御部12は、入力データ17を用いた機械学習により固有表現認識モデル18を生成する。機械学習では、例えば、入力データ17は説明変数として取り扱われ、テキストデータ13に付与された教師ラベルは目的変数として取り扱われる。固有表現認識モデル18は、例えば、複数のトークンに対応する複数のベクトルデータを入力として受け付け、それら複数のトークンそれぞれが属するクラスを出力する。
【0027】
固有表現認識モデル18は、トークンが複数のクラスそれぞれに属する可能性を表す確信度を出力してもよい。固有表現認識モデル18は、多層ニューラルネットワークであってもよい。例えば、制御部12は、入力データ17を固有表現認識モデル18に入力し、固有表現認識モデル18の出力と教師ラベルとを比較して誤差を算出する。制御部12は、誤差を小さくする条件に基づいて、固有表現認識モデル18に含まれるパラメータの値を更新する。パラメータ値の更新には、例えば、誤差逆伝播法が用いられる。
【0028】
制御部12は、訓練済みの固有表現認識モデル18を出力する。例えば、制御部12は、固有表現認識モデル18を不揮発性ストレージに保存する。また、例えば、制御部12は、固有表現認識モデル18を他の情報処理装置に転送する。また、例えば、制御部12は、固有表現認識モデル18についての情報を表示装置に表示する。
【0029】
第1の実施の形態の機械学習装置10によれば、テキストデータ13に含まれるトークン列13aと辞書情報14との間でマッチング処理が行われ、類似度が所定範囲内にある類似固有表現14aが検索される。トークン列13aと類似固有表現14aとの間のマッチング処理の結果を示すマッチング情報が、ベクトルデータ16に変換される。トークンから変換されたベクトルデータ15とベクトルデータ16とを用いて入力データ17が生成され、入力データ17を用いた機械学習により固有表現認識モデル18が生成される。
【0030】
これにより、辞書情報14に記載されていない未知の固有表現に対する認識精度を向上させることができる。固有表現認識モデル18は、トークンから変換されたベクトルデータを入力として用いて固有表現か否か推定する機械学習モデルであるため、辞書情報14に記載されていない未知の固有表現も検出し得る。また、トークン列13aと辞書情報14との間のマッチング情報を入力として用いるため、辞書情報14に記載された既知の固有表現を考慮した推定を行うことができる。
【0031】
また、マッチング処理では、完全一致文字列照合だけでなく近似文字列照合も行われる。よって、既知の固有表現を変形した新しい固有表現についても認識精度を向上させることができる。例えば、生物医学分野の遺伝子名や薬品名は複合語が多く、語尾が変形した類似する固有表現が多数存在する。このような新しい専門的固有表現についても、近似文字列照合の結果を入力として利用することで、固有表現認識モデル18は、認識精度を向上させることができる。
【0032】
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の固有表現認識装置を説明するための図である。固有表現認識装置20は、第1の実施の形態の機械学習装置10によって生成された固有表現認識モデルを利用して、テキストデータの中から固有表現を検出する。固有表現認識装置20は、クライアント装置でもよいしサーバ装置でもよい。固有表現認識装置20を、コンピュータまたは情報処理装置と言うこともある。なお、固有表現認識装置20が、第1の実施の形態の機械学習装置10と同一装置であってもよい。
【0033】
固有表現認識装置20は、記憶部21および制御部22を有する。記憶部21は、RAMなどの揮発性半導体メモリでもよいし、HDDやフラッシュメモリなどの不揮発性ストレージでもよい。制御部22は、例えば、CPU、GPU、DSPなどのプロセッサである。ただし、制御部22は、ASICやFPGAなどの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。
【0034】
記憶部21は、テキストデータ23、辞書情報24および固有表現認識モデル28を記憶する。テキストデータ23は、自然言語で記述された文章を表す文字列を含む。テキストデータ23は、第1の実施の形態のテキストデータ13と異なる文書であってもよい。テキストデータ13と異なり、テキストデータ23には教師ラベルが付与されていなくてよい。辞書情報24は、既知である複数の固有表現を記載した固有表現辞書である。辞書情報24は、第1の実施の形態の辞書情報14に対応する。ただし、専門分野が同じであるなど辞書情報14と同種のものであれば、辞書情報24が辞書情報14と同一でなくてもよい。固有表現認識モデル28は、テキストデータ23に対応する入力データを受け付け、固有表現の推定結果を出力する機械学習モデルである。固有表現認識モデル28は、第1の実施の形態の固有表現認識モデル18に対応する。
【0035】
制御部22は、固有表現認識モデル28を用いて、テキストデータ23の中から固有表現を検出する。このとき、制御部22は、固有表現認識モデル28に入力する入力データ27を生成する。テキストデータ23から入力データ27への変換は、第1の実施の形態のテキストデータ13から入力データ17への変換と同様である。
【0036】
すなわち、制御部22は、テキストデータ23に含まれる文字列を複数のトークンに分割し、連続する特定の個数のトークンを示すトークン列23aを抽出する。制御部22は、トークン列23aと辞書情報24との間でマッチング処理を実行して、トークン列23aとの類似度が所定範囲内にある類似固有表現24aを辞書情報24から検索する。
【0037】
制御部22は、トークン列23aと類似固有表現24aとの間のマッチング処理の結果を示すマッチング情報を、ベクトルデータ26(第2のベクトルデータ)に変換する。制御部22は、テキストデータ23に含まれるトークンから変換されたベクトルデータ25(第1のベクトルデータ)とベクトルデータ26とを用いて、入力データ27を生成する。例えば、制御部22は、同一トークンに対するベクトルデータ25,26を連結して、当該トークンを表すベクトルデータと定義する。入力データ27は、例えば、複数のトークンそれぞれに対応するベクトルデータを含む。
【0038】
制御部22は、入力データ27を固有表現認識モデル28に入力し、固有表現認識モデル28の出力に基づいて、テキストデータの中から固有表現29を検出する。例えば、固有表現認識モデル28は、テキストデータ23に含まれるトークン列(w1,w2,w3,w4,w5,w6,w7,…)のうち、トークン列(w3,w4,w5)が固有表現29であることを示すタグ情報を出力する。固有表現認識モデル28によって検出される固有表現29は、辞書情報24に記載されていない未知語であることもある。
【0039】
第2の実施の形態の固有表現認識装置20によれば、辞書情報24に記載されていない未知の固有表現に対する認識精度が向上する。固有表現認識モデル28は、トークンから変換されたベクトルデータを入力として用いて固有表現か否か推定する機械学習モデルであるため、辞書情報24に記載されていない未知の固有表現も検出し得る。また、トークン列23aと辞書情報24との間のマッチング情報を入力として用いるため、辞書情報24に記載された既知の固有表現を考慮した推定を行うことができる。
【0040】
また、マッチング処理では、完全一致文字列照合だけでなく近似文字列照合も行われる。よって、既知の固有表現を変形した新しい固有表現についても認識精度を向上させることができる。例えば、生物医学分野の遺伝子名や薬品名は複合語が多く、語尾が変形した類似する固有表現が多数存在する。このような新しい専門的固有表現についても、近似文字列照合の結果を入力として利用することで、認識精度を向上させることができる。
【0041】
次に、第3の実施の形態を説明する。第3の実施の形態の機械学習装置は、機械学習によって固有表現認識モデルを生成し、生成した固有表現認識モデルを用いて固有表現認識を行う。固有表現認識では、入力されたテキストの中から普通名詞でない固有表現を検出し、検出した固有表現のカテゴリを判定する。第3の実施の形態では、生物医学分野の学術論文をテキストとして処理し、遺伝子名、薬品名、疾患名などの生物医学分野の専門的な固有表現を認識する。機械学習装置は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置を、コンピュータや情報処理装置などと言うこともある。
【0042】
図3は、第3の実施の形態の機械学習装置のハードウェア例を示す図である。機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、バスに接続されている。機械学習装置100は、第1の実施の形態の機械学習装置10や第2の実施の形態の固有表現認識装置20に対応する。CPU101は、第1の実施の形態の制御部12や第2の実施の形態の制御部22に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11や第2の実施の形態の記憶部21に対応する。
【0043】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0044】
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【0045】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【0046】
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。機械学習装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
【0047】
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。機械学習装置100に複数種類の入力デバイスが接続されてもよい。
【0048】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0049】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0050】
次に、第3の実施の形態で使用する固有表現認識モデルについて説明する。
図4は、固有表現認識のデータフロー例を示す図である。自然言語で記述されたテキスト141が与えられると、機械学習装置100は、テキスト141に含まれる文字列をトークンw
1,w
2,w
3,…,w
Nに分割する。トークンへの分割には、形態素解析などの自然言語処理技術が用いられる。トークンは、言語上一定の意味をもつ文字列であり、単語(ワード)であることもあるし単語より小さい言語単位であることもある。一回に処理するトークンの個数はNである。例えば、N=256である。テキスト141が長い場合、複数回に分けて以下の処理が行われる。
【0051】
機械学習装置100は、各トークンを分散表現の単語ベクトルに変換することで、トークンw1,w2,w3,…,wNを単語ベクトルW1,W2,W3,…,WNに変換する。単語ベクトルは、所定の次元数の数値を列挙した数値ベクトルである。単語ベクトルの次元数は、例えば、300次元である。単語ベクトルW1,W2,W3,…,WNは、word2vecなどの訓練済みの多層ニューラルネットワークを用いて算出される。この多層ニューラルネットワークは、例えば、以下のような方法で生成される。
【0052】
テキストに出現し得る単語1つにつき1個のノードを割り当てた入力層と、テキストに出現し得る単語1つにつき1個のノードを割り当てた出力層と、入力層と出力層との間にある中間層とを含む多層ニューラルネットワークを用意する。テキストのサンプルから、ある単語とその単語の前後の所定範囲にある1以上の周辺語とを抽出する。入力データは、ある単語に対応する要素が「1」であり他の単語に対応する要素が「0」であるone-hot表現のベクトルである。教師データは、周辺語に対応する1以上の要素が「1」であり他の単語に対応する要素が「0」であるベクトルである。入力データを入力層に与え、出力層からの出力データと教師データとの間の誤差を算出し、誤差が小さくなるように誤差逆伝播法によってエッジの重みを更新する。
【0053】
このようにして、分散表現のための多層ニューラルネットワークが生成される。ある単語のone-hot表現のベクトルを入力したときに中間層で算出される数値を列挙した特徴ベクトルが、その単語に対する分散表現の単語ベクトルとなる。類似する意味をもつ単語の周辺には類似する周辺語が現れる可能性が高いことから、類似する意味をもつ単語には類似する単語ベクトルが割り当てられることが多い。
【0054】
機械学習装置100は、単語ベクトルW1,W2,W3,…,WNを、BioBERT(Bidirectional Encoder Representations from Transformers for Biomedical Text Mining)142に入力して、単語ベクトルT1,T2,T3,…,TNに変換する。BioBERT142は、生物医学分野のテキストを訓練データとして用いて機械学習により生成された、訓練済みの多層ニューラルネットワークである。BioBERT142は、直列的に重ねられた24層のTransformerを含む。各Transformerは、入力されたベクトルを別のベクトルに変換する多層ニューラルネットワークである。
【0055】
BioBERT142は、例えば、以下のような方法で生成される。まず、BioBERT142の最終段に予測器を接続する。この予測器は、末尾のTransformerが出力するN個のベクトルそれぞれからトークンを予測するものである。サンプルのテキストから連続するN個のトークンを抽出し、抽出したN個のトークンに対応するN個の単語ベクトルを先頭のTransformerに入力する。ただし、このときN個のトークンのうち所定割合のトークンをマスクして隠す。マスクしたトークンに対応する単語ベクトルは、例えば、零ベクトルとする。予測器が出力するN個のトークンの予測結果とマスク前の元のN個のトークンとの間で誤差を算出し、誤差が小さくなるようにエッジの重みを更新する。
【0056】
その後、BioBERT142の最終段に接続する予測器を変更する。この予測器は、末尾のTransformerが出力するN個のベクトルから、2つの文のうちの後者の文が前者の文と関連するか否か判定するものである。サンプルのテキストから連続する2つの文を抽出し、抽出した2つの文のトークンに対応する単語ベクトルを先頭のTransformerに入力する。予測器が「関連あり」と予測するように、エッジの重みを更新する。また、サンプルのテキストから連続しない2つの文を抽出し、抽出した2つの文のトークンに対応する単語ベクトルを先頭のTransformerに入力する。予測器が「関連なし」と予測するように、エッジの重みを更新する。このようにしてBioBERT142が生成される。
【0057】
また、機械学習装置100は、単語ベクトルT1,T2,T3,…,TNとは別に、トークンw1,w2,w3,…,wNに対応するマッチングベクトルD1,D2,D3,…,DNを算出する。各トークンのマッチングベクトルは、既知の固有表現が記載された固有表現辞書と当該トークンとの間のマッチング状態を示すマッチング情報を、分散表現のベクトルに変換したものである。マッチングベクトルは以下のように算出される。
【0058】
機械学習装置100は、トークンw1,w2,w3,…,wNから、n個の連続するトークンを示すn-gramを網羅的に生成する。n=1,2,3,…,Nである。トークンw1,w2,w3,…,wNから、1-gramはN通り生成され、2-gramはN-1通り生成され、3-gramはN-2通り生成される。
【0059】
機械学習装置100は、n-gramそれぞれについて、予め用意した固有表現辞書との間で近似文字列照合を行う。固有表現辞書は、遺伝子名、薬品名、疾患名などの生物医学分野の既知の固有表現とその固有表現が属するクラスとを記載したものである。近似文字列照合では、機械学習装置100は、固有表現辞書に記載された1つの固有表現と1つのn-gramとの間で、編集距離(レーベンシュタイン距離)を算出する。編集距離は、2つの文字列が一致するために行われる1文字の追加、1文字の置換または1文字の削除の回数である。編集距離=0は、2つの文字列が完全一致していることを意味する。
【0060】
機械学習装置100は、編集距離が所定の閾値以下である場合、当該固有表現と当該n-gramとが類似すると判定する。n-gramに類似する固有表現が見つかると、機械学習装置100は、そのn-gramに含まれるトークンそれぞれに対してマッチング情報を生成する。マッチング情報は、クラス、適合度および位置の3つの要素を含む。
【0061】
クラスは、既知の固有表現が属する固有表現クラスである。クラスは、固有表現辞書に記載されている。第3の実施の形態では、固有表現クラスは、遺伝子/タンパク質名(Gene/Protein)、薬品名(Drug)、疾患名(Disease)および突然変異(Mutation)の4通りである。なお、固有表現でないことを示すその他クラス(O:Outside)が存在する。適合度は、n-gramと既知の固有表現とが、完全一致関係(Exact)であるか近似関係(Approximate)であるかを示すフラグである。位置は、n-gramの中における着目するトークンの相対位置である。トークン位置は、1-gramの場合の単独(S:Single)と、2-gram以上の場合の先頭(B:Beginning)、中間(I:Inside)および末尾(E:Ending)の4通りである。
【0062】
同一のn-gramに対して、類似する既知の固有表現が2つ以上存在することもある。その場合、当該n-gramに含まれるトークンに対して、既知の固有表現それぞれからマッチング情報が生成される。また、あるトークンが属する異なるn-gramそれぞれから、当該トークンに対してマッチング情報が生成されることもある。よって、トークンw1,w2,w3,…,wNの中には、マッチング情報が1つのみ得られるトークンもあれば、マッチング情報が2つ以上得られるトークンもあれば、マッチング情報が1つも得られないトークンもある。マッチング情報が1つも得られないトークンに対しては、クラスがその他クラスであるダミーのマッチング情報を与える。
【0063】
機械学習装置100は、各マッチング情報をマッチングベクトルに変換する。異なるマッチング情報のパターン(マッチングパターン)の数は、少数であることから、マッチングパターンとその分散表現とを対応付けたマッチングパターン辞書を予め用意しておく。例えば、機械学習装置100は、各マッチングパターンに識別番号を付与し、識別番号を入力および出力に用いる多層ニューラルネットワークを機械学習によって生成する。機械学習装置100は、あるマッチングパターンの識別番号を入力層に与えたときに中間層で算出される数値を列挙した特徴ベクトルを、そのマッチングパターンに対応する分散表現のマッチングベクトルとして採用する。マッチングベクトルの次元数は、例えば、100次元である。各マッチング情報に対応するマッチングベクトルは、幾つかの少数の次元の数値が大きく、多くの次元の数値が小さいという分布をもっていることがある。
【0064】
機械学習装置100は、1つのトークンに対して異なるパターンのマッチング情報が生成された場合、異なるマッチング情報に対応する2以上のマッチングベクトルを、プーリング処理によって1つのマッチングベクトルに集約する。プーリング処理は、2以上のベクトルの間で次元毎に数値演算を行うことで、次元数が同じ単一のベクトルを生成する処理である。プーリング処理として、最大プーリング(Max Pooling)や平均プーリング(Average Pooling)が挙げられる。最大プーリングは、次元毎に、2以上のベクトルの中で最大の数値を選択するプーリング処理である。平均プーリングは、次元毎に、2以上のベクトルに含まれる数値の平均値を算出するプーリング処理である。
【0065】
第3の実施の形態では、最大プーリングを採用している。テキスト141のn-gramと固有表現辞書との間で近似文字列照合を網羅的に行うと、雑多なマッチング情報が生成されてノイズが発生する。この点、トークン毎にプーリング処理を行うことで、固有表現認識と関連する可能性が高い次元の情報を残してノイズを低減することができ、有用な情報を所定の次元数のベクトル1つに圧縮できる。
【0066】
このようにして、トークンw1,w2,w3,…,wNに対応するマッチングベクトルD1,D2,D3,…,DNが算出される。機械学習装置100は、単語ベクトルT1,T2,T3,…,TNとマッチングベクトルD1,D2,D3,…,DNとを合成して、結合ベクトルV1,V2,V3,…,VNを生成する。ここでは、トークン毎に、単語ベクトルの後ろにマッチングベクトルを連結する。よって、結合ベクトルの次元数は、単語ベクトルの次元数とマッチングベクトルの次元数の和である。例えば、単語ベクトルが300次元、マッチングベクトルが100次元、結合ベクトルが400次元である。
【0067】
例えば、トークンw1について、単語ベクトルT1の後ろにマッチングベクトルD1を連結して、結合ベクトルV1が生成される。また、トークンw2について、単語ベクトルT2の後ろにマッチングベクトルD2を連結して、結合ベクトルV2が生成される。トークンw3について、単語ベクトルT3の後ろにマッチングベクトルD3を連結して、結合ベクトルV3が生成される。トークンwNについて、単語ベクトルTNの後ろにマッチングベクトルDNを連結して、結合ベクトルVNが生成される。
【0068】
機械学習装置100は、結合ベクトルV1,V2,V3,…,VNを固有表現認識モデル143に入力して、トークンw1,w2,w3,…,wNに対応するタグスコアs1,s2,s3,…,sNを算出する。タグスコアは、複数のタグ情報それぞれの確信度を含む。タグ情報は、Gene/Protein-BやDrug-Eのように、クラスおよび位置を示す。機械学習装置100は、タグスコアs1,s2,s3,…,sNに基づいて、トークンw1,w2,w3,…,wNそれぞれに対応付けるタグ情報を決定する。機械学習装置100は、トークン毎に、複数のタグ情報のうち確信度が最大のタグ情報を選択してもよい。
【0069】
また、機械学習装置100は、条件的確率場(CRF:Conditional Random Fields)を通して、タグスコアs1,s2,s3,…,sNからトークンw1,w2,w3,…,wNそれぞれのタグ情報を決定してもよい。隣接するトークンは、固有表現の一部であるか否かについて依存関係をもつ。そこで、条件的確率場は、単純に1つのタグスコアから1つのタグ情報を選択するのではなく、タグ情報の間の依存関係を考慮してタグ情報を選択する。条件的確率場は、タグスコアs1,s2,s3,…,sNを受け付けると、確率が最大になるタグ情報の組み合わせを求めて、各トークンのタグ情報を決定する。条件的確率場は、訓練済みのニューラルネットワークで表現されてもよい。
【0070】
固有表現認識モデル143は、多層ニューラルネットワークである。第3の実施の形態では、固有表現認識モデル143として、双方向LSTMが使用される。LSTMは、内部状態を保持する多層ニューラルネットワークである。内部状態を保持することから、複数の入力ベクトルを連続的にLSTMに入力すると、ある入力ベクトルに対する出力ベクトルは、その入力ベクトルだけでなくそれ以前の入力ベクトルにも依存する。
【0071】
双方向LSTMは、複数の結合ベクトルが順方向(V1,V2,…,VNの順)に入力される順方向LSTMと、複数の結合ベクトルが逆方向(VN,VN-1,…,V1の順)に入力される逆方向LSTMとを含む。双方向LSTMでは、あるトークンが後ろのトークンとも関連性をもつことを表現することができる。双方向LSTMは、同じトークンに対応する順方向LSTMの出力ベクトルと逆方向LSTMの出力ベクトルとを合成して、当該トークンに対する最終的な出力ベクトルを算出する。
【0072】
機械学習装置100は、固有表現認識モデル143を、訓練データとしてのテキストを用いて機械学習により生成する。訓練データとしてのテキストから、固有表現認識モデル143の入力データである結合ベクトルV1,V2,V3,…,VNを生成するまでの手順は、固有表現認識モデル143を利用して固有表現認識を行う場合と同様である。
【0073】
機械学習装置100は、結合ベクトルV1,V2,V3,…,VNを固有表現認識モデル143に入力し、教師ラベルとしてテキストに付与されているタグ情報とタグスコアs1,s2,s3,…,sNとを比較して誤差を算出する。機械学習装置100は、誤差逆伝播法によって、誤差が小さくなるようにパラメータであるエッジの重みを更新する。このとき、各トークンについて、タグスコアが示す複数のタグ情報の確信度のうち、教師ラベルが示す正解のタグ情報の確信度が最大になるように、パラメータが調整される。
【0074】
次に、各トークンのマッチングベクトルを算出する具体例について説明する。
図5は、固有表現辞書の例を示す図である。機械学習装置100は、固有表現辞書131を予め保持しておく。固有表現辞書131は、用語ID、固有表現およびクラスを対応付けた複数のレコードを含む。用語IDは、固有表現を識別する識別子である。固有表現辞書131に登録される固有表現は、既知の遺伝子/タンパク質名(Gene/Protein)、薬品名(Drug)、疾患名(Disease)または突然変異(Mutation)である。1つの固有表現が1つのトークンであることもあるし、2以上のトークンを含むこともある。クラスは、これら4通りの分類を示す。
【0075】
ここでは一例として、固有表現#101は、epidermal growth factorであり、遺伝子/タンパク質名である。固有表現#102は、epidermal growth factor-like 2であり、遺伝子/タンパク質名である。固有表現#103は、epidermal growth factor receptorであり、遺伝子/タンパク質名である。固有表現#104は、pro-epidermal growth factorであり、遺伝子/タンパク質名である。
【0076】
図6は、マッチングパターン辞書の例を示す図である。機械学習装置100は、マッチングパターン辞書132を予め保持しておく。マッチングパターン辞書132は、パターンID、マッチングパターンおよび分散表現を対応付けた複数のレコードを含む。パターンIDは、マッチングパターンを識別する識別子である。マッチングパターンは、マッチング情報のパターンを示しており、クラス、合致度および位置の3つを連結したものである。クラスは、遺伝子/タンパク質名(Gene/Protein)、薬品名(Drug)、疾患名(Disease)、突然変異(Mutation)またはその他(Other)である。合致度は、完全一致(Exact)または近似(Approximate)である。位置は、先頭(B)、中間(I)、末尾(E)、単独(S)である。
【0077】
分散表現は、マッチングパターンをベクトル化したマッチングベクトルである。以下の具体例では、説明を簡単にするため、マッチングベクトルを5次元で表現している。一例として、マッチングパターン1は、Gene/Protein-Exact-Bであり、その分散表現が(3,2,-3,2,6)である。マッチングパターン5は、Gene/Protein-Approximate-Bであり、その分散表現が(1,6,-1,0,7)である。マッチングパターン5は、Gene/Protein-Approximate-Iであり、その分散表現が(0,4,6,3,7)である。
【0078】
なお、マッチングパターン辞書132は、クラスがその他(Other)であるダミーのマッチングパターンも含む。ダミーのマッチングパターンに対しても、パターンIDや分散表現のマッチングベクトルが割り当てられている。
【0079】
図7は、マッチングベクトルの生成例を示す図である。テキスト151は、"EGFR is epidermal growth factor receptor."という文を含む。機械学習装置100は、テキスト151を、トークン151-1~151-7("EGFR","is","epidermal","growth","factor","receptor",".")に分割する。機械学習装置100は、トークン151-1~151-7のn-gramを生成し、各n-gramと固有表現辞書131との間でマッチング処理を行う。ここでは、トークン151-3("epidermal")に着目して、幾つかのn-gramについて説明する。
【0080】
機械学習装置100は、トークン151-3,151-4の2-gramと固有表現辞書131との間で、近似文字列照合を行う。すると、この2-gramと近似する固有表現#101がヒットする。固有表現#101のクラスはGene/Proteinである。トークン151-3は先頭のトークンである。そこで、機械学習装置100は、トークン151-3に対して、Gene/Protein-Approximate-Bというマッチング情報を生成する。
【0081】
また、機械学習装置100は、トークン151-3,151-4,151-5の3-gramと固有表現辞書131との間で、近似文字列照合を行う。すると、この3-gramと完全一致する固有表現#101がヒットする。そこで、機械学習装置100は、トークン151-3に対して、Gene/Protein-Exact-Bというマッチング情報を生成する。また、固有表現#101の他に、この3-gramと近似する固有表現#102,#104がヒットする。そこで、機械学習装置100は、トークン151-3に対して、Gene/Protein-Approximate-Bというマッチング情報をそれぞれ生成する。
【0082】
また、機械学習装置100は、トークン151-2,151-3,151-4,151-5の4-gramと固有表現辞書131との間で、近似文字列照合を行う。すると、この4-gramと近似する固有表現#102,#104がヒットする。トークン151-3は中間のトークンである。そこで、機械学習装置100は、トークン151-3に対して、Gene/Protein-Approximate-Iというマッチング情報をそれぞれ生成する。また、機械学習装置100は、トークン151-3,151-4,151-5,151-6の4-gramと固有表現辞書131との間で、近似文字列照合を行う。すると、この4-gramと完全一致する固有表現#103がヒットする。そこで、機械学習装置100は、トークン151-3に対して、Gene/Protein-Exact-Bというマッチング情報を生成する。
【0083】
以上より、異なるマッチング情報は、Gene/Protein-Exact-B,Gene/Protein-Approximate-B,Gene/Protein-Approximate-Iの3通りである。機械学習装置100は、マッチングパターン辞書132を参照して、これら3通りのマッチング情報を3つのマッチングベクトルに変換する。Gene/Protein-Exact-Bは、マッチングパターン1に相当し、マッチングベクトル152-1に変換される。Gene/Protein-Approximate-Bは、マッチングパターン5に相当し、マッチングベクトル152-2に変換される。Gene/Protein-Approximate-Iは、マッチングパターン6に相当し、マッチングベクトル152-3に変換される。
【0084】
機械学習装置100は、マッチングベクトル152-1,152-2,152-3から、最大プーリングによってマッチングベクトル153を算出する。マッチングベクトル152-1は(3,2,-3,2,6)である。マッチングベクトル152-2は(1,6,-1,0,7)である。マッチングベクトル152-3は(0,4,6,3,7)である。次元毎に最大の数値を選択すると、トークン151-3に対応するマッチングベクトル153は、(3,6,6,3,7)となる。
【0085】
図8は、固有表現認識結果の例を示す図である。テキスト161は、マッチングベクトルD
1,D
2,D
3,…,D
Nを使用せずに単語ベクトルT
1,T
2,T
3,…,T
Nのみを入力データとして使用するように固有表現認識モデルを生成した場合の固有表現認識結果を示している。一方、テキスト162は、
図4の固有表現認識モデル143による固有表現認識結果を示している。
【0086】
テキスト161,162に含まれるTPM1-ASは、固有表現辞書131に記載されていない未知の固有表現であり、遺伝子/タンパク質名に相当する。テキスト161が示す固有表現認識結果では、トークン"TPM1"が単独の遺伝子/タンパク質名の固有表現と判定され、トークン"-","AS"がそれぞれ非固有表現と判定されている。一方、テキスト162が示す固有表現認識結果では、TPM1-ASが一続きの遺伝子/タンパク質名の固有表現として正しく認識されている。このように、複雑な複合語であることが多い遺伝子/タンパク質名や薬品名も、一続きの固有名詞として正しく認識できる可能性が高くなる。
【0087】
次に、機械学習装置100の機能について説明する。
図9は、機械学習装置の機能例を示すブロック図である。機械学習装置100は、テキスト記憶部121、辞書記憶部122、モデル記憶部123、モデル生成部124および固有表現認識部125を有する。テキスト記憶部121、辞書記憶部122およびモデル記憶部123は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。モデル生成部124および固有表現認識部125は、例えば、CPU101が実行するプログラムを用いて実現される。
【0088】
テキスト記憶部121は、訓練データとしてのテキストを記憶する。訓練データとしてのテキストには、教師ラベルとして固有表現クラスを示すタグ情報が付加されている。また、テキスト記憶部121は、認識対象のテキストを記憶する。辞書記憶部122は、前述の固有表現辞書131およびマッチングパターン辞書132を記憶する。モデル記憶部123は、訓練済みのBioBERT142を記憶する。また、モデル記憶部123は、モデル生成部124によって生成された固有表現認識モデル143を記憶する。
【0089】
モデル生成部124は、テキスト記憶部121から訓練データとしてのテキストを読み出し、辞書記憶部122から固有表現辞書131およびマッチングパターン辞書132を読み出し、モデル記憶部123から訓練済みのBioBERT142を読み出す。モデル生成部124は、読み出したテキストを入力データに変換し、入力データと教師ラベルとを用いて、機械学習により固有表現認識モデル143を生成する。モデル生成部124は、生成した固有表現認識モデル143をモデル記憶部123に保存する。
【0090】
固有表現認識部125は、テキスト記憶部121から認識対象のテキストを読み出し、辞書記憶部122から固有表現辞書131およびマッチングパターン辞書132を読み出し、モデル記憶部123から訓練済みのBioBERT142を読み出す。固有表現認識部125は、読み出したテキストを入力データに変換する。また、固有表現認識部125は、モデル記憶部123から訓練済みの固有表現認識モデル143を読み出す。そして、固有表現認識部125は、固有表現認識モデル143に入力データを入力し、各トークンに対応付けたタグ情報を含む固有表現認識結果を生成する。
【0091】
固有表現認識部125は、固有表現認識結果を出力する。例えば、固有表現認識部125は、不揮発性ストレージに固有表現認識結果を保存する。また、例えば、固有表現認識部125は、表示装置111に固有表現認識結果を表示する。また、例えば、固有表現認識部125は、他の情報処理装置に固有表現認識結果を送信する。
【0092】
次に、機械学習装置100の処理手順について説明する。
図10は、入力データ生成の手順例を示すフローチャートである。ここでは、モデル生成部124が入力データを生成する場合について説明する。固有表現認識部125も、モデル生成部124と同様の手順で入力データを生成する。
【0093】
(S10)モデル生成部124は、各トークンを分散表現の単語ベクトルに変換する。
(S11)モデル生成部124は、N個のトークンに対応するN個の単語ベクトルを、訓練済みのBioBERT142に入力し、別のN個の単語ベクトルに変換する。
【0094】
(S12)モデル生成部124は、N個のトークンから連続するn個(n=1,2,…,N)のトークンを抽出してn-gramを網羅的に生成する。
(S13)モデル生成部124は、ステップS12で生成したn-gramの集合の中から1つのn-gramを選択する。
【0095】
(S14)モデル生成部124は、ステップS13で選択したn-gramを固有表現辞書131から検索する。ここでは、近似文字列照合が行われる。モデル生成部124は、選択したn-gramと固有表現辞書131に含まれる複数の固有表現それぞれとの間で編集距離を算出し、編集距離が閾値以下である類似固有表現を検索する。
【0096】
(S15)モデル生成部124は、ステップS14で少なくとも1つの類似固有表現が検索された場合、ステップS13で選択したn-gramに含まれる各トークンに対して{クラス,合致度,位置}を示すマッチング情報を生成する。クラスは、類似固有表現の属するクラスである。合致度は、n-gramと類似固有表現とが完全一致するか近似するかを示すフラグである。位置は、n-gramの中の該当トークンの相対位置である。ステップS14で2以上の類似固有表現が検索された場合、2以上の類似固有表現それぞれについて上記のマッチング情報が生成される。
【0097】
(S16)モデル生成部124は、ステップS13において全てのn-gramを選択したか判断する。全てのn-gramを選択した場合はステップS17に進み、未選択のn-gramがある場合はステップS13に戻る。
【0098】
(S17)モデル生成部124は、トークン毎に同一内容のマッチング情報を纏める。ステップS15で生成されたマッチング情報が無いトークンに対しては、モデル生成部124は、クラスがその他(Other)であるダミーのマッチング情報を生成する。モデル生成部124は、マッチングパターン辞書132を参照して、トークン毎に異なるマッチング情報を分散表現のマッチングベクトルに変換する。
【0099】
(S18)モデル生成部124は、トークン毎にマッチングベクトルを合成するプーリング処理を行う。ステップS17で得られたマッチングベクトルが1つであるトークンに対しては、モデル生成部124は、そのマッチングベクトルを採用する。ステップS17で得られたマッチングベクトルが2以上あるトークンに対しては、モデル生成部124は、同一次元の数値同士の演算によって単一のマッチングベクトルを生成する。例えば、モデル生成部124は、次元毎に最大値を選択する最大プーリングを行う。
【0100】
(S19)モデル生成部124は、N個のトークンそれぞれについて、ステップS11で生成した単語ベクトルとステップS18で生成したマッチングベクトルとを結合して、結合ベクトルを生成する。結合ベクトルは、ステップS11の単語ベクトルの後ろにステップS18のマッチングベクトルを連結したものである。
【0101】
図11は、モデル生成の手順例を示すフローチャートである。(S20)モデル生成部124は、固有表現認識モデル143のパラメータを初期化する。パラメータは、多層ニューラルネットワークのノード間のエッジの重みである。
【0102】
(S21)モデル生成部124は、教師ラベルが付与されている機械学習用のテキストに含まれる文字列を、複数のトークンに分割する。
(S22)モデル生成部124は、
図10に示した入力データ生成を実行する。これにより、複数のトークンに対応する複数の結合ベクトルが生成される。
【0103】
(S23)モデル生成部124は、固有表現認識モデル143にN個の結合ベクトルを入力する。このとき、順方向LSTMにはN個の結合ベクトルが先頭から順に入力され、逆方向LSTMにはN個の結合ベクトルが末尾から順に入力される。これにより、N個の結合ベクトルに対応するN個の推定結果が出力される。
【0104】
(S24)モデル生成部124は、ステップS23のN個の推定結果とN個のトークンの教師ラベルとを比較して、両者の誤差を算出する。例えば、モデル生成部124は、正解のタグ情報の確信度を1から引いた数値を各トークンの誤差として算出し、N個のトークンの誤差の平均を全体の誤差として算出する。
【0105】
(S25)モデル生成部124は、ステップS24で算出した誤差に応じて、固有表現認識モデル143のパラメータの値を修正する。例えば、モデル生成部124は、パラメータに対する誤差の勾配を算出し、誤差勾配に所定の学習率を乗じた分だけパラメータの値を変動させる。モデル生成部124は、多層ニューラルネットワークの末尾から先頭に向かって、誤差勾配を伝播させながらパラメータの値を順に変動させていく。
【0106】
(S26)モデル生成部124は、所定の停止条件を満たすか判断する。停止条件は、ステップS23~S25を所定回数繰り返したことであってもよい。また、停止条件は、誤差が閾値以下に低下したことであってもよい。停止条件を満たす場合、ステップS27に進む。停止条件を満たしていない場合、ステップS23に戻り、同一または異なるN個のトークンを用いてステップS23~S25を実行する。
【0107】
(S27)モデル生成部124は、訓練済みのパラメータの値を含む固有表現認識モデル143を、モデル記憶部123に保存する。
図12は、固有表現認識の手順例を示すフローチャートである。(S30)固有表現認識部125は、モデル記憶部123から、訓練済みの固有表現認識モデル143を読み出す。
【0108】
(S31)固有表現認識部125は、教師ラベルが付与されていない認識対象のテキストに含まれる文字列を、複数のトークンに分割する。
(S32)固有表現認識部125は、
図10に示した入力データ生成を実行する。これにより、複数のトークンに対応する複数の結合ベクトルが生成される。
【0109】
(S33)固有表現認識部125は、固有表現認識モデル143にN個の結合ベクトルを入力する。このとき、順方向LSTMにはN個の結合ベクトルが先頭から順に入力され、逆方向LSTMにはN個の結合ベクトルが末尾から順に入力される。これにより、N個の結合ベクトルに対応するN個のタグスコアが算出される。
【0110】
(S34)固有表現認識部125は、ステップS33で算出したタグスコアから、各トークンについてクラスの推定結果を含むタグ情報を生成する。例えば、固有表現認識部125は、トークン毎に最大の確信度が算出されたタグ情報を選択する。また、例えば、固有表現認識部125は、条件的確率場にN個のタグスコアを入力し、確率が最大になるようなN個のタグ情報の列を生成する。
【0111】
(S35)固有表現認識部125は、ステップS34で得られた固有表現の推定結果を出力する。例えば、固有表現認識部125は、推定結果を表示装置111に表示する。
第3の実施の形態の機械学習装置100によれば、多層ニューラルネットワークである固有表現認識モデル143を用いて、分散表現のベクトルから固有表現クラスの確信度が算出される。よって、固有表現辞書131に記載されていない未知の固有表現も認識することが可能となる。また、固有表現辞書131とn-gramとの間のマッチング状態を示すマッチング情報が生成され、マッチング情報がベクトル化され、単語ベクトルと結合されて固有表現認識モデル143の入力として使用される。よって、固有表現辞書131に記載された既知の固有表現を考慮した固有表現認識が可能となる。
【0112】
また、マッチング処理では、完全一致文字列照合だけでなく近似文字列照合も行われる。よって、既知の固有表現を変形した新しい固有表現についても認識精度を向上させることができる。特に、生物医学分野の遺伝子/タンパク質名や薬品名は複合語が多く、語尾が変形した類似する固有表現が新たに出現することが多い。このような複合語の固有表現についても、近似文字列照合の結果を入力として利用することで、認識精度を向上させることができる。その結果として、複数のトークンから成る一続きの固有表現を、途中で分断せずに正しく認識することが可能となる。
【0113】
また、固有表現辞書131とn-gramとの間で網羅的に近似文字列照合を行うと、雑多なマッチング情報が生成される。雑多なマッチング情報に対応する多数のマッチングベクトルをそのまま固有表現認識モデル143の入力として使用すると、大きなノイズとなってしまう可能性がある。この点、トークン毎にプーリング処理によってマッチングベクトルが1つに合成される。プーリング処理として、例えば、最大プーリングが行われる。よって、固有表現認識の精度向上に寄与する可能性が高い次元の情報が残り、ノイズを除去することができる。これにより、固有表現認識の精度が向上する。
【0114】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0115】
10 機械学習装置
11,21 記憶部
12,22 制御部
13,23 テキストデータ
13a,23a トークン列
14,24 辞書情報
14a,24a 類似固有表現
15,16,25,26 ベクトルデータ
17,27 入力データ
18,28 固有表現認識モデル
20 固有表現認識装置
29 固有表現