(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-06
(45)【発行日】2024-08-15
(54)【発明の名称】機械学習プログラム、機械学習方法および自然言語処理装置
(51)【国際特許分類】
G06F 40/279 20200101AFI20240807BHJP
G06F 40/216 20200101ALI20240807BHJP
【FI】
G06F40/279
G06F40/216
(21)【出願番号】P 2022563537
(86)(22)【出願日】2020-11-20
(86)【国際出願番号】 JP2020043463
(87)【国際公開番号】W WO2022107328
(87)【国際公開日】2022-05-27
【審査請求日】2023-04-26
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】マルティネス アンデル
【審査官】長 由紀子
(56)【参考文献】
【文献】米国特許出願公開第2015/0100524(US,A1)
【文献】特許第7440797(JP,B2)
【文献】池田 流弥、安藤 一秋,固有表現抽出によるブログテキストからの品名・店名抽出,情報処理学会 研究報告 自然言語処理(NL) 2019-NL-243 [online] ,日本,情報処理学会,2019年12月04日,pp.1-8
【文献】尾田 俊弘、福本 淳一,SVMによる学習とタイプ分類パターンの組み合わせによる固有表現抽出手法,第74回(平成24年)全国大会講演論文集(2) 人工知能と認知科学,一般社団法人情報処理学会,2012年03月06日,pp.2-37~2-38
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-279
(57)【特許請求の範囲】
【請求項1】
第1のテキストと、前記第1のテキストに含まれる1つの単語に対応付けられたクラスを示す第1のクラス情報と、前記第1のテキストにおける前記1つの単語の位置を示す第1の位置情報と、前記第1のテキストにおける前記1つの単語を含む第1の固有表現の範囲を示す第1の範囲情報と、を含む訓練データを取得し、
前記訓練データに基づいて、テキストとクラス情報と位置情報とから前記テキストに含まれる固有表現の範囲情報を推定するための機械学習モデルの機械学習を実行する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記第1のクラス情報は、前記機械学習モデルと異なる他の機械学習モデルによって、前記第1のテキストに基づいて前記1つの単語に対して割り当てられるクラスを示す、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記第1の範囲情報は、前記第1のテキストに含まれる複数の単語それぞれが前記第1の固有表現の範囲に属するか否かを示す符号列である、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項4】
前記機械学習モデルは、前記テキストに含まれる複数の単語から算出される複数の単語ベクトルと、前記クラス情報から算出されるクラスベクトルと、前記複数の単語ベクトルのうち前記位置情報が示す単語に対応する1つの単語ベクトルとに基づいて、前記範囲情報を生成するためのニューラルネットワークである、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項5】
第1のテキストと、前記第1のテキストに含まれる1つの単語に対応付けられたクラスを示す第1のクラス情報と、前記第1のテキストにおける前記1つの単語の位置を示す第1の位置情報と、前記第1のテキストにおける前記1つの単語を含む第1の固有表現の範囲を示す第1の範囲情報と、を含む訓練データを取得し、
前記訓練データに基づいて、テキストとクラス情報と位置情報とから前記テキストに含まれる固有表現の範囲情報を推定するための機械学習モデルの機械学習を実行する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項6】
テキストと機械学習モデルとを記憶する記憶部と、
前記テキストと、前記テキストに含まれる1つの単語に対応付けられたクラスを示すクラス情報と、前記テキストにおける前記1つの単語の位置を示す位置情報とを含む入力データを生成し、前記機械学習モデルに前記入力データを入力して、前記テキストにおける前記1つの単語を含む固有表現の範囲を示す範囲情報を生成する制御部と、
を有することを特徴とする自然言語処理装置。
【請求項7】
前記制御部は、前記機械学習モデルと異なる他の機械学習モデルに前記テキストを入力して、前記クラス情報および前記位置情報を生成する処理と、前記範囲情報と前記他の機械学習モデルの出力とを合成する処理とを更に実行する、
ことを特徴とする請求項6に記載の自然言語処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習プログラム、機械学習方法および自然言語処理装置に関する。
【背景技術】
【0002】
自然言語で記述されたテキストは、複数の単語を含む。単語はトークンと呼ばれることがある。テキストに含まれる複数の単語のうちの2以上の単語が、1つの固有表現(NE:Named Entity)を形成することがある。固有表現は、特定の実体を表す言語表現である。固有表現は、人名、組織名、地名、製品名などの固有名詞を含む。
【0003】
コンピュータによる自然言語処理のタスクは、テキストに含まれる単語列の中から、1つの固有表現を形成する単語の範囲を認識するサブタスクを包含することがある。固有表現の範囲はスパンと呼ばれることがある。例えば、テキストに含まれる固有表現の種類を認識する固有表現認識(NER:Named Entity Recognition)は、固有表現の範囲を認識するサブタスクを包含する。なお、固有表現認識は、固有表現抽出と呼ばれることもある。また、テキストから複数の固有表現の間の関係を抽出する関係抽出(Relation Extraction)は、各固有表現の範囲を認識するサブタスクを包含する。また、述語と固有表現との間の係り受け関係を認識する意味役割付与(Semantic Role Labeling)は、固有表現の範囲を認識するサブタスクを包含する。
【0004】
なお、原文と翻訳文との間でフレーズのペアを抽出するフレーズ抽出方法が提案されている。提案のフレーズ抽出方法は、原文から原フレーズを選択し、翻訳文の単語と原フレーズ内の単語との比較に基づいて、翻訳文に含まれる翻訳フレーズの境界を推定する。
【0005】
また、用語辞書から入力文字列に応じた用語情報を検索する言語処理装置が提案されている。提案の言語処理装置は、文字列の範囲を選択し、選択した範囲に含まれる各単語を正規化し、正規化した単語を連結する。言語処理装置は、正規化文字列からハッシュ値を算出し、ハッシュ値に対応付けられた用語情報を用語辞書から読み出す。
【0006】
また、質問文に対する回答文を生成する回答生成装置が提案されている。提案の回答生成装置は、質問文に含まれる単語および用意された文書に含まれる単語を、機械学習モデルを用いてベクトル表現に変換する。回答生成装置は、ベクトル表現を用いて、文書に含まれる単語の範囲に対して、質問文との適合度を示すスコアを算出する。
【先行技術文献】
【特許文献】
【0007】
【文献】米国特許出願公開第2008/0004863号明細書
【文献】特開2013-196478号公報
【文献】国際公開第2020/174826号
【発明の概要】
【発明が解決しようとする課題】
【0008】
自然言語処理のタスクは、機械学習によって訓練データから生成される機械学習モデルを利用することがある。機械学習モデルは、例えば、ニューラルネットワークである。従来、固有表現の範囲の認識をサブタスクとして包含する自然言語処理のタスクは、固有表現認識のための機械学習モデルを利用することが多い。
【0009】
しかし、固有表現認識用の機械学習モデルは、固有表現の範囲の認識と固有表現の種類の認識とを分離せずに統合的に実行する。固有表現認識用の機械学習モデルによる固有表現の範囲自体の認識精度が、十分に高くない場合がある。その結果、固有表現の範囲の認識結果に含まれるノイズが、メインタスクの精度を低下させることがある。そこで、1つの側面では、本発明は、固有表現の範囲の認識精度を向上させることを目的とする。
【課題を解決するための手段】
【0010】
1つの態様では、第1のテキストと、第1のテキストに含まれる1つの単語に対応付けられたクラスを示す第1のクラス情報と、第1のテキストにおける1つの単語の位置を示す第1の位置情報と、第1のテキストにおける1つの単語を含む第1の固有表現の範囲を示す第1の範囲情報と、を含む訓練データを取得し、訓練データに基づいて、テキストとクラス情報と位置情報とからテキストに含まれる固有表現の範囲情報を推定するための機械学習モデルの機械学習を実行する、処理をコンピュータに実行させることを特徴とする機械学習プログラムが提供される。また、1つの態様では、機械学習方法が提供される。
【0011】
また、1つの態様では、テキストと機械学習モデルとを記憶する記憶部と、テキストと、テキストに含まれる1つの単語に対応付けられたクラスを示すクラス情報と、テキストにおける1つの単語の位置を示す位置情報とを含む入力データを生成し、機械学習モデルに入力データを入力して、テキストにおける1つの単語を含む固有表現の範囲を示す範囲情報を生成する制御部と、を有することを特徴とする自然言語処理装置が提供される。
【発明の効果】
【0012】
1つの側面では、固有表現の範囲の認識精度が向上する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態の機械学習装置を説明するための図である。
【
図2】第2の実施の形態の自然言語処理装置を説明するための図である。
【
図3】第3の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図4】固有表現認識を利用した関係抽出の第1の例を示す図である。
【
図5】固有表現認識を利用した関係抽出の第2の例を示す図である。
【
図6】スパン検索モデルを利用した自然言語処理の流れの例を示す図である。
【
図7】スパン検索モデルを生成するための訓練データの例を示す図である。
【
図8】固有表現認識モデルの構造例を示す図である。
【
図10】情報処理装置の機能例を示すブロック図である。
【
図11】機械学習の手順例を示すフローチャートである。
【
図12】自然言語処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本実施の形態を、図面を参照して説明する。まず、第1の実施の形態を説明する。
図1は、第1の実施の形態の機械学習装置を説明するための図である。第1の実施の形態の機械学習装置10は、機械学習により、テキストに含まれる単語列の中から1つの固有表現を形成する範囲を認識するための機械学習モデルを生成する。機械学習モデルによって認識される固有表現の範囲は、スパンと呼ばれることがある。スパンの認識は、スパンクエリ(Span Query)またはスパン選択(Span Selection)と呼ばれることがある。スパンを認識するための機械学習モデルは、SQM(Span Query Model)と呼ばれることがある。機械学習装置10は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置10が、コンピュータ、情報処理装置または自然言語処理装置と呼ばれてもよい。
【0015】
機械学習装置10は、記憶部11および制御部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよい。また、記憶部11は、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でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0016】
記憶部11は、訓練データ13を記憶する。訓練データ13は、制御部12によって生成されてもよい。訓練データ13は、テキスト13a、クラス情報13b、位置情報13cおよび範囲情報13dを含む。テキスト13a、クラス情報13bおよび位置情報13cは、機械学習モデル14の説明変数に相当する入力データである。範囲情報13dは、機械学習モデル14の目的変数に相当する教師データである。
【0017】
テキスト13aは、自然言語で記述された文書である。テキスト13aは、文字列を含む。文字列は単語に分割される。単語はトークンと呼ばれることがある。例えば、テキスト13aは、単語w1,w2,w3,w4,w5,w6を含む。
【0018】
クラス情報13bは、テキスト13aに含まれる1つの単語に対応付けられたクラスを示す。例えば、クラス情報13bは、単語w3に対応付けられたクラスを示す。クラス情報13bが示すクラスは、他の機械学習モデルによって判定されるべきクラスであってもよい。例えば、クラスは、固有表現認識モデルによって認識される固有表現の種類でもよいし、関係抽出モデルによって認識される関係の種類であってもよいし、意味役割付与モデルによって認識される役割の種類であってもよい。
【0019】
位置情報13cは、クラス情報13bと同じ単語のテキスト13aにおける位置を示す。位置情報13cは、着目する単語がテキスト13aの先頭から何番目であるかを示す位置番号であってもよい。例えば、位置情報13cは、3番目の単語であることを示す。
【0020】
範囲情報13dは、テキスト13aにおける位置情報13cが示す単語を含む固有表現の範囲を示す。固有表現は、特定の実体を表す言語表現である。固有表現は、人名、組織名、地名、製品名などの固有名詞を含む。固有表現の範囲はスパンと呼ばれてもよい。テキスト13aに含まれる複数の単語のうちの2以上の単語によって、1つの固有表現が形成されることがある。固有表現の範囲は、それら2以上の単語を示す。固有表現に含まれる2以上の単語は、テキスト13aにおいて不連続であってもよい。
【0021】
範囲情報13dは、固有表現の範囲をBIO形式で表してもよい。BIO形式の範囲情報13dは、テキスト13aに含まれる各単語に対して「B」、「I」または「O」が割り当てられた記号列である。B(Beginning)は、固有表現に含まれる先頭の単語であることを示す。I(Inside)は、固有表現に含まれる2番目以上の単語であることを示す。O(Outside)は、固有表現に含まれない単語であることを示す。例えば、範囲情報13dは、「OBIIOO」という記号列である。この範囲情報13dは、単語w2,w3,w4が1つの固有表現を形成することを表す。なお、訓練データ13は、クラス情報13b、位置情報13cおよび範囲情報13dの組を複数含んでもよい。
【0022】
制御部12は、訓練データ13を取得する。制御部12は、テキスト13aから訓練データ13を生成してもよい。また、制御部12は、クラス情報13bを出力する他の機械学習モデル用の訓練データを変換して訓練データ13を生成してもよい。制御部12は、訓練データ13に基づいて機械学習モデル14の機械学習を実行する。機械学習モデル14は、例えば、ニューラルネットワークである。ニューラルネットワークは、ノード間のエッジの重みを、機械学習を通じて値が決定されるパラメータとして含む。
【0023】
機械学習モデル14は、テキストとクラス情報と位置情報とを含む入力データを受け付ける。機械学習モデル14は、入力データに基づいて、位置情報が示す単語を含む固有表現の範囲を示す範囲情報を推定する。例えば、機械学習モデル14は、テキスト13aに含まれる複数の単語それぞれを、分散表現の単語ベクトルに変換する。単語ベクトルの次元数は、例えば、300次元など数百次元程度である。また、機械学習モデル14は、クラス情報を、分散表現のクラスベクトルに変換する。クラスベクトルの次元数は、例えば、単語ベクトルと同じである。機械学習モデル14は、各単語の単語ベクトルとクラスベクトルと位置情報が示す単語の単語ベクトルとを連結(Concatenate)する。機械学習モデル14は、連結ベクトルを範囲情報に変換する。
【0024】
機械学習において、制御部12は、テキスト13a、クラス情報13bおよび位置情報13cを入力データとして使用し、範囲情報13dを教師データとして使用する。例えば、制御部12は、テキスト13a、クラス情報13bおよび位置情報13cを機械学習モデル14に入力し、機械学習モデル14から推定の範囲情報を読み出す。制御部12は、教師データである範囲情報13dと推定の範囲情報との間の誤差を算出し、誤差が小さくなるように、機械学習モデル14に含まれるパラメータの値を更新する。例えば、制御部12は、誤差逆伝播法によってパラメータの値を更新する。
【0025】
これにより、制御部12は、訓練データ13から機械学習モデル14を生成する。制御部12は、機械学習モデル14を不揮発性ストレージに保存してもよい。また、制御部12は、機械学習モデル14の情報を表示装置に表示してもよい。また、制御部12は、機械学習モデル14を他の情報処理装置に送信してもよい。
【0026】
以上説明したように、第1の実施の形態の機械学習装置10は、テキスト13aとクラス情報13bと位置情報13cと範囲情報13dとを含む訓練データ13を取得する。機械学習装置10は、訓練データ13に基づいて、テキストとクラス情報と位置情報とから固有表現の範囲情報を推定するための機械学習モデル14の機械学習を実行する。機械学習モデル14を利用することで、固有表現の範囲の認識精度が向上する。
【0027】
情報処理装置は、自然言語処理のメインタスクを実行する前に、固有表現認識モデルを利用して固有表現の範囲を決定することも考えられる。しかし、一般的な固有表現認識モデルは、各単語に対応付ける固有表現クラスの認識と、同一の固有表現に属する単語の範囲の認識とを統合的に実行する。固有表現の範囲に着目すると、固有表現認識モデルによる固有表現の範囲の推定精度は、十分に高いとは言えないことがある。よって、固有表現認識モデルの精度の限界が、メインタスクの精度を低下させる原因となり得る。
【0028】
また、固有表現認識モデルは、固有表現クラスの推定精度を上げるため、特定のテキストの分野に特化していることが多い。テキストの分野は、ドメインと呼ばれることがある。ドメインには、医療分野や政治経済分野などが含まれる。特定のドメイン用の固有表現認識モデルの機械学習には、そのドメインのテキストが使用される。よって、固有表現認識モデルの機械学習に使用可能な訓練データが少量であることがあり、その結果、固有表現認識モデルの精度が十分に向上しないことがある。
【0029】
これに対して、機械学習装置10によって生成される機械学習モデル14は、固有表現認識、関係抽出、意味役割付与などのメインタスクとは分離して、固有表現の範囲の認識を実行する。よって、固有表現の範囲の認識精度を向上させることが容易である。また、機械学習モデル14は、異なる種類のメインタスクの機械学習モデルと連携することができ、異なるドメイン用の機械学習モデルと連携することができる。よって、機械学習装置10は、様々なドメインのテキストから訓練データ13を生成することができ、訓練データ13のサイズを大きくして機械学習モデル14の精度を向上させることができる。
【0030】
また、メインタスクの機械学習モデルは、その中で固有表現の範囲を推定しなくてもよく、固有表現の範囲の情報を出力しなくてもよい。また、メインタスクの機械学習モデルは、固有表現の範囲が正確に認識されていることを前提としなくてもよい。よって、メインタスクの機械学習モデルの実装が容易であると共に、メインタスクの精度が向上しやすくなる。また、情報処理装置は、メインタスクの機械学習モデルの後段に機械学習モデル14を接続することもできる。情報処理装置は、メインタスクの機械学習モデルが出力するクラス情報を、機械学習モデル14に入力してもよい。これにより、情報処理装置は、固有表現の範囲を効率的に認識することができる。
【0031】
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の自然言語処理装置を説明するための図である。第2の実施の形態の自然言語処理装置20は、機械学習モデルを用いて、テキストに含まれる単語列の中から1つの固有表現を形成する範囲を認識する。自然言語処理装置20は、クライアント装置でもよいしサーバ装置でもよい。自然言語処理装置20は、第1の実施の形態の機械学習装置10と同一でもよいし異なってもよい。自然言語処理装置20が、コンピュータまたは情報処理装置と呼ばれてもよい。
【0032】
自然言語処理装置20は、記憶部21および制御部22を有する。記憶部21は、RAMなどの揮発性半導体メモリでもよい。また、記憶部21は、HDDやフラッシュメモリなどの不揮発性ストレージでもよい。制御部22は、例えば、CPU、GPU、DSPなどのプロセッサである。制御部22が、ASICやFPGAなどの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。
【0033】
記憶部21は、テキスト23aおよび機械学習モデル24を記憶する。テキスト23aは、自然言語で記述された文書である。テキスト23aは、複数の単語を含む。機械学習モデル24は、テキストとクラス情報と位置情報とを含む入力データを受け付ける。機械学習モデル24は、入力データに基づいて、位置情報が示す単語を含む固有表現の範囲を示す範囲情報を推定する。機械学習モデル24は、第1の実施の形態の機械学習装置10と同様の方法で生成されてもよい。機械学習モデル24は、第1の実施の形態の機械学習モデル14と同一であってもよい。自然言語処理装置20は、自然言語処理装置20の外部から機械学習モデル24を受信してもよい。
【0034】
制御部22は、テキスト23aとクラス情報23bと位置情報23cとを含む入力データ23を生成する。クラス情報23bは、テキスト23aに含まれる1つの単語に対応付けられたクラスを示す。クラス情報23bは、メインタスクの機械学習モデルの出力であってもよい。例えば、クラス情報23bは、固有表現認識モデルによって認識される固有表現の種類を示してもよいし、関係抽出モデルによって認識される関係の種類を示してもよいし、意味役割付与モデルによって認識される役割の種類を示してもよい。位置情報23cは、クラス情報23bと同じ単語のテキスト23aにおける位置を示す。
【0035】
制御部22は、入力データ23を機械学習モデル24に入力して範囲情報23dを生成する。範囲情報23dは、機械学習モデル24から出力される。範囲情報23dは、位置情報23cが示す単語を含む固有表現の範囲を示す。範囲情報23dは、例えば、固有表現の範囲をBIO形式で表した記号列である。
【0036】
制御部22は、範囲情報23dを不揮発性ストレージに保存してもよい。また、制御部22は、範囲情報23dを表示装置に表示してもよい。また、制御部22は、範囲情報23dを他の情報処理装置に送信してもよい。また、制御部22は、メインタスクの機械学習モデルの出力と範囲情報23dとを合成して、テキスト23aに対する自然言語処理の結果を生成してもよい。制御部22は、合成した結果を不揮発性ストレージに保存してもよい。また、制御部22は、合成した結果を表示装置に表示してもよい。また、制御部22は、合成した結果を他の情報処理装置に送信してもよい。
【0037】
以上説明したように、第2の実施の形態の自然言語処理装置20は、テキスト23aとクラス情報23bと位置情報23cとを含む入力データ23を生成する。自然言語処理装置20は、機械学習モデル24に入力データ23を入力して、固有表現の範囲を示す範囲情報23dを生成する。これにより、固有表現の範囲の認識精度が向上する。
【0038】
1つの固有表現を形成する単語列が、テキスト23aにおいて不連続であることがある。また、テキスト23aに含まれる1つの単語が、2以上の固有表現に属することがある。すなわち、テキスト23aにおいて、2以上の固有表現がオーバーラップしていることがある。また、2以上の固有表現が入れ子になっていることがある。固有表現認識モデルを利用して固有表現の範囲を認識する場合、このような複雑な固有表現の情報を出力するためには、固有表現認識モデルの構造が複雑になってしまう。
【0039】
これに対して、機械学習モデル24は、着目する1つの単語に対して、その単語を含む固有表現の範囲を示す範囲情報を出力する。別の単語が指定されると、機械学習モデル24は、その別の単語を含む固有表現の範囲を示す範囲情報を出力する。よって、自然言語処理装置20は、不連続な固有表現、オーバーラップした複数の固有表現、入れ子の複数の固有表現など、複雑な固有表現についての範囲情報を生成することができる。また、機械学習モデル24の構造が単純化され、機械学習モデル24の精度が向上する。
【0040】
次に、第3の実施の形態を説明する。
図3は、第3の実施の形態の情報処理装置のハードウェア例を示す図である。第3の実施の形態の情報処理装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。
【0041】
情報処理装置100は、第1の実施の形態の機械学習装置10および第2の実施の形態の自然言語処理装置20に対応する。CPU101は、第1の実施の形態の制御部12および第2の実施の形態の制御部22に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11および第2の実施の形態の記憶部21に対応する。
【0042】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0043】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0044】
HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0045】
画像インタフェース104は、CPU101からの命令に従って、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0046】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0047】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0048】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0049】
通信インタフェース107は、ネットワーク114に接続される。通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよい。また、通信インタフェース107は、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0050】
情報処理装置100は、自然言語で記述されたテキストに対して、固有表現抽出、関係抽出、意味役割付与などの自然言語処理を実行する。また、情報処理装置100は、自然言語処理に用いるモデルを、機械学習を通じて生成する。
【0051】
図4は、固有表現認識を利用した関係抽出の第1の例を示す図である。自然言語処理として、情報処理装置100は、複数の固有表現の間の関係を抽出する関係抽出を行うことがある。関係抽出は、サブタスクとして、テキストに含まれる単語列の中からラベルが付与され得る固有表現のスパンを認識するスパン検索を含む。スパン検索は、スパンクエリまたはスパン選択と呼ばれることがある。関係抽出の1つの実装方法として、情報処理装置100は、固有表現認識を前処理として実行する方法が考えられる。
【0052】
一例として、情報処理装置100は、固有表現認識モデルを用いて、テキスト31に対して固有表現認識を実行する。固有表現認識モデルは、テキスト31に含まれる固有表現のスパンおよび固有表現のクラスを示すラベルを出力する。
【0053】
これにより、テキスト31から固有表現32,33,34,35が抽出される。固有表現32は、"hazard ratio"であり単語2個を含む。固有表現32に対して、"Hazard Ratio (undetermined)"というクラスが割り当てられる。固有表現33は、"low risk group"であり単語3個を含む。固有表現33に対して、"Condition"(条件)というクラスが割り当てられる。固有表現34は、"HR"であり単語1個を含む。固有表現34に対して、固有表現32と同じクラスが割り当てられる。固有表現35は、"1.007"であり単語1個を含む。固有表現35に対して、"Unitless"(無名数)というクラスが割り当てられる。
【0054】
情報処理装置100は、固有表現認識モデルの出力を関係抽出モデルに入力することで、メインタスクである関係抽出を実行する。関係抽出モデルは、テキスト31に含まれる複数の固有表現の間の関係の種類を示すラベルを出力する。これにより、固有表現32と固有表現35とが、"IS-A"という関係をもつことが抽出される。また、固有表現33と固有表現35とが、"WHEN"という関係をもつことが抽出される。また、固有表現34と固有表現35とが、"IS-A"という関係をもつことが抽出される。
【0055】
上記の固有表現32,33,34,35は、テキスト31において連続した単語列である。ただし、テキストにおいて不連続な単語列が1つの固有表現を形成することもある。また、固有表現32,33,34,35は、テキスト31においてオーバーラップしていない。ただし、テキストに含まれる1つの単語が複数の固有表現に属することで、複数の固有表現がオーバーラップすることもある。また、固有表現32,33,34,35は、テキスト31において入れ子を形成していない。ただし、ある固有表現が他の固有表現に含まれる単語の全てを包含することで、複数の固有表現が入れ子を形成することもある。
【0056】
図5は、固有表現認識を利用した関係抽出の第2の例を示す図である。
図4と同様に、情報処理装置100が、関係抽出の前処理として固有表現認識を行う場合を考える。情報処理装置100は、テキスト41に対して固有表現認識を実行する。
【0057】
これにより、テキスト41から固有表現42,43,44,45が抽出される。固有表現42は、"cumulative incidences of non-relapse mortality"であり単語5個を含む。固有表現42に対して、"Other endpoints (clinical)"というクラスが割り当てられる。固有表現43は、"cumulative incidences of relapse"であり単語4個を含む。固有表現43に対して、"Cumulative incidence of relapse"というクラスが割り当てられる。固有表現44は、"13"であり単語1個を含む。固有表現45は、"16%"であり単語1個を含む。固有表現44,45に対して、"%"というクラスが割り当てられる。
【0058】
情報処理装置100は、固有表現認識の結果を用いて、メインタスクである関係抽出を実行する。これにより、固有表現42と固有表現44とが"IS-A"という関係をもち、固有表現43と固有表現45とが"IS-A"という関係をもつことが抽出される。
【0059】
ここで、固有表現42と固有表現43は、"cumulative incidences of"という共通の単語列を含んでおりオーバーラップしている。また、固有表現43は、テキスト41において、途中で"non-relapse mortality and"という単語列を跨いでおり不連続である。このように、テキストに複雑な固有表現が含まれていることがある。
【0060】
上記の例では、情報処理装置100は、まず固有表現のスパンを認識し、固有表現のスパンの認識結果を利用して関係抽出などのメインタスクを実行した。しかし、一般的な固有表現認識モデルは、固有表現クラスの認識と固有表現のスパンの認識とを統合的に実行する。固有表現のスパンに着目すると、固有表現認識モデルによるスパンの推定精度は、十分に高いとは言えないことがある。よって、固有表現のスパンの推定精度が、メインタスクの精度を低下させる原因となり得る。
【0061】
また、固有表現認識モデルは、固有表現クラスの推定精度を上げるため、特定のドメインに特化していることが多い。特定のドメイン用の固有表現認識モデルの機械学習には、そのドメインのテキストが使用される。よって、固有表現認識モデルの機械学習に使用可能な訓練データが少量であることがあり、その結果、固有表現認識モデルによるスパンの推定精度が十分に向上しないことがある。また、固有表現認識モデルが上記のような複雑な固有表現の情報を出力するためには、固有表現認識モデルの構造が複雑になる。
【0062】
そこで、第3の実施の形態の情報処理装置100は、固有表現認識モデルやその他のメインタスクモデルとは分離して、固有表現のスパンを認識するための汎用的なスパン検索モデルを定義する。スパン検索モデルは、スパンクエリモデル(SQM)またはスパン選択モデルと呼ばれてもよい。スパン検索モデルは、ニューラルネットワークである。情報処理装置100は、機械学習によってスパン検索モデルを生成する。
【0063】
スパン検索モデルは、メインタスクモデルの後段に接続される。スパン検索モデルは、テキストに加えてメインタスクモデルによるクラス推定結果を利用して、事後的に固有表現のスパンを確定する。メインタスクモデルは、固有表現のスパンを正確に推定しなくてもよい。情報処理装置100は、メインタスクモデルの出力とスパン検索モデルの出力を合成して、自然言語処理のタスク結果を生成する。
【0064】
図6は、スパン検索モデルを利用した自然言語処理の流れの例を示す図である。情報処理装置100は、メインタスクモデル51,52,53,54,55,56などの複数のメインタスクモデルと、スパン検索モデル58とを有する。メインタスクモデル51,52,53,54,55,56は、ニューラルネットワークである。
【0065】
メインタスクモデル51は、ドメインA用の固有表現認識モデルである。メインタスクモデル52は、ドメインB用の固有表現認識モデルである。メインタスクモデル53は、ドメインA用の関係抽出モデルである。メインタスクモデル54は、ドメインB用の関係抽出モデルである。メインタスクモデル55は、ドメインA用の意味役割付与モデルである。メインタスクモデル56は、ドメインB用の意味役割付与モデルである。スパン検索モデル58は、メインタスクモデル51,52,53,54,55,56の何れとも組み合わせ可能である。すなわち、スパン検索モデル58は、様々な目的のメインタスクモデルや様々なドメインのメインタスクモデルと組み合わせ可能である。
【0066】
情報処理装置100は、テキスト57を解析する場合、解析目的およびテキスト57のドメインに適合するメインタスクモデルを選択し、選択されたメインタスクモデルにテキスト57を入力する。選択されたメインタスクモデルは、テキスト57に含まれる一部または全部の単語に対してそれぞれクラスを割り当て、クラス情報を出力する。
【0067】
例えば、固有表現認識モデルは、テキスト57に含まれる一部の単語に対して、固有表現の種類を示す固有表現クラスを割り当てる。関係抽出モデルは、テキスト57に含まれる一部の単語に対して、関係の種類を示す関係クラスを割り当てる。意味役割付与モデルは、テキスト57に含まれる一部の単語に対して、述語との係り受け関係の種類を示す役割クラスを割り当てる。
【0068】
このとき、メインタスクモデルは、固有表現のスパンを示すスパン情報を出力しなくてもよい。最終的に固有表現単位でクラスを認識することがタスク目標であっても、メインタスクモデルは、固有表現に属する少なくとも1つの単語に対してクラスを割り当てればよい。よって、メインタスクモデルは、固有表現のスパンの境界を意識しなくてよく、正確なスパン情報を生成することを要しない。
【0069】
情報処理装置100は、メインタスクモデルからの出力に基づいて、スパン検索モデル58用の入力データセットを生成する。入力データセットは、位置情報とクラス情報との組を複数含む。位置情報は、メインタスクモデルによってクラスが割り当てられた単語の位置を示す。クラス情報は、メインタスクモデルによって割り当てられたクラスを示す。メインタスクモデルは、同一の単語に対して2以上のクラスを割り当ててもよい。よって、入力データセットは、位置情報が同じでクラス情報が異なる2以上のレコードを含んでもよい。これにより、オーバーラップや入れ子などの複雑な固有表現が定義可能である。
【0070】
情報処理装置100は、入力データセットから位置情報とクラス情報の組を1つ抽出する。情報処理装置100は、抽出した位置情報およびクラス情報とテキスト57とを、スパン検索モデル58に入力する。スパン検索モデル58は、テキスト57の中から位置情報が示す単語を特定し、特定した単語が属する固有表現のスパンを推定してスパン情報を出力する。情報処理装置100は、位置情報およびクラス情報の異なる組をスパン検索モデル58に入力することで、異なる固有表現のスパン情報を取得する。
【0071】
スパン検索モデル58は、テキスト57に含まれる全ての固有表現のスパンを一度に推定する代わりに、着目する1つの単語を含む固有表現のスパンを1つずつ推定する。よって、スパン検索モデル58の構造が単純化される。また、スパン検索モデル58は、オーバーラップや入れ子などの複雑な固有表現のスパンも精度よく推定できる。
【0072】
情報処理装置100は、メインタスクモデルからの出力とスパン検索モデル58からの出力とを合成して、タスク結果59を生成する。例えば、メインタスクモデルは、クラス情報を含みスパン情報を含まないラベルを、テキスト57に含まれる単語に対して付与する。情報処理装置100は、スパン検索モデル58が出力するスパン情報を、メインタスクモデルが出力するラベルに追加することで、タスク結果59を生成する。
【0073】
メインタスクが固有表現認識である場合、タスク結果59は、テキスト57に含まれる固有表現のスパンと固有表現のクラスを示す。メインタスクが関係抽出である場合、タスク結果59は、テキスト57に含まれる各固有表現のスパンと複数の固有表現の間の関係のクラスを示す。メインタスクが意味役割付与である場合、タスク結果59は、テキスト57に含まれる固有表現のスパンと、固有表現と述語との係り受け関係のクラスを示す。
【0074】
メインタスクモデル51,52,53,54,55,56およびスパン検索モデル58は、機械学習によって生成される。情報処理装置100は、教師ラベルが付与された共通のテキストから、メインタスクモデル用の訓練データとスパン検索モデル58用の訓練データの両方を生成することが可能である。テキストに付与される教師ラベルは、固有表現のスパンと固有表現に対応付けられたクラスとを示す。
【0075】
メインタスクモデル用の訓練データは、テキストを入力データとして含み、固有表現に属する単語の位置情報と固有表現に対応付けられたクラスのクラス情報とを教師データとして含む。スパン検索モデル58用の訓練データは、テキストと位置情報とクラス情報とを入力データとして含み、固有表現のスパンを示すスパン情報を教師データとして含む。
【0076】
図7は、スパン検索モデルを生成するための訓練データの例を示す図である。訓練データは、テキスト61を含む。テキスト61の文字列は、
図5のテキスト41と同じである。情報処理装置100は、テキスト61に含まれる文字列を単語に分割し、テキスト61の先頭から順に各単語に対して昇順の自然数の位置番号を付与する。"cumulative"が位置#15、"incidences"が位置#16、"of"が位置#17、"non-relapse"が位置#18、"mortality"が位置#19、"and"が位置#20、"relapse"が位置#21、"were"が位置#22、"13"が位置#23、"and"が位置#24、"16%"が位置#25である。
【0077】
また、訓練データは、テーブル62を含む。テーブル62は、位置番号とクラスとスパンとを対応付けた複数のレコードを含む。位置番号は、テキスト61の中の1つの単語を示す。クラスは、位置番号が示す単語を包含する固有表現のクラスである。スパンは、テキスト61の各単語が固有表現に属するか否かを示す。スパンは、BIO形式の記号列で表される。記号列の長さは、テキスト61に含まれる単語の個数と同じである。固有表現の先頭の単語は「B」で表され、固有表現に含まれる先頭以外の単語は「I」で表され、固有表現に含まれない単語は「O」で表される。
【0078】
テキスト61は"cumulative incidences of non-relapse mortality"という固有表現42を含み、そのクラスは"Other endpoints (clinical)"である。よって、テーブル62は、位置番号が#15、クラスが"Other endpoints (clinical)"、スパンが"BIIIIOOOOOO"というレコードを含む。同様に、テーブル62は、クラスとスパンが上記と同じで、位置番号がそれぞれ#16,#17,#18,#19であるレコードを含む。
【0079】
また、テキスト61は"cumulative incidences of relapse"という固有表現43を含み、そのクラスは"Cumulative incidence of relapse"である。よって、テーブル62は、位置番号が#15、クラスが"Cumulative incidence of relapse"、スパンが"BIIOOOIOOOO"というレコードを含む。同様に、テーブル62は、クラスとスパンが上記と同じで、位置番号がそれぞれ#16,#17,#21であるレコードを含む。
【0080】
次に、固有表現認識モデルとスパン検索モデル58の構造を説明する。
図8は、固有表現認識モデルの構造例を示す図である。固有表現認識モデルは、分散表現モデル131、エンコーダ132およびフィードフォワードニューラルネットワーク133を含む。固有表現認識モデルは、テキストから連続する複数の単語を抽出する。1回に抽出される単語の個数Nは、例えば、128個、256個、512個などである。
【0081】
固有表現認識モデルは、複数の単語をそれぞれ分散表現モデル131に入力することで、それら複数の単語に対応する分散表現の単語ベクトルw1,w2,…,wi,…,wNを生成する。単語ベクトルは、複数の数値を列挙した列ベクトルである。単語ベクトルの次元数は、例えば、300次元など数百次元程度である。分散表現モデル131が出力する単語ベクトルは、文脈を考慮しない単語ベクトルである。
【0082】
分散表現モデル131は、機械学習を通じて生成されたニューラルネットワークである。例えば、分散表現モデル131は、着目する単語に対応する次元の数値が1であり、他の次元の数値が0であるOne-hotベクトルを受け付ける。分散表現モデル131は、One-hotベクトルを、数百次元程度の次元数の単語ベクトルに変換する。
【0083】
固有表現認識モデルは、単語ベクトルw1,w2,…,wi,…,wNをエンコーダ132に入力することで、単語ベクトルe1,e2,…,ei,…,eNを生成する。分散表現モデル131と異なり、エンコーダ132にはN個の単語ベクトルが同時に入力される。エンコーダ132が出力する単語ベクトルは、文脈を考慮した単語ベクトルである。よって、同じ単語からでも、前後の単語に応じて異なる単語ベクトルが生成され得る。エンコーダ132は、機械学習を通じて生成されたニューラルネットワークである。エンコーダ132は、例えば、BERT(Bidirectional Encoder Representations from Transformers)である。BERTは、直列的に重ねられた24層のTransformerを含む。各Transformerは、入力されたベクトルを別のベクトルに変換する。
【0084】
固有表現認識モデルは、単語ベクトルe1,e2,…,ei,…,eNをフィードフォワードニューラルネットワーク133に入力することで、タグスコアs1,s2,…,si,…,sNを生成する。フィードフォワードニューラルネットワーク133には、N個の単語ベクトルが同時に入力される。よって、フィードフォワードニューラルネットワーク133の入力は、単語ベクトルe1,e2,…,ei,…,eNを連結した連結ベクトルである。フィードフォワードニューラルネットワーク133は、フィードバックパスを含まない順方向のニューラルネットワークである。
【0085】
ある単語に対応するタグスコアは、複数のクラスに対応する複数の非負整数を含む。あるクラスの数値は、その単語がそのクラスに属する確率を示す。一般的な固有表現認識モデルは、タグスコアs1,s2,…,si,…,sNに基づいて、全体の確率が最大になるように、各固有表現のクラスおよびスパンを決定する。
【0086】
一方、固有表現認識モデルは、固有表現のスパンを決定しなくてよい。固有表現認識モデルは、同一の単語に対して2以上のクラスを割り当ててもよい。例えば、固有表現認識モデルは、複数の単語それぞれについて、タグスコアから確率が閾値を超える全てのクラスを選択し、選択したクラスを当該単語に割り当てる。よって、固有表現認識モデルは、オーバーラップや入れ子の固有表現のクラスも認識できる。
【0087】
図9は、スパン検索モデルの構造例を示す図である。スパン検索モデル58は、分散表現モデル141、エンコーダ142、分散表現モデル143、フィードフォワードニューラルネットワーク144および条件付き確率場(CRF:Conditional Random Field)モデル145を含む。スパン検索モデル58は、テキストから連続する複数の単語を抽出する。1回に抽出される単語の個数Nは、固有表現認識モデルと同じである。
【0088】
スパン検索モデル58は、複数の単語をそれぞれ分散表現モデル141に入力することで、それら複数の単語に対応する分散表現の単語ベクトルw1,w2,…,wi,…,wNを生成する。分散表現モデル141は、分散表現モデル131と同じでもよい。スパン検索モデル58は、単語ベクトルw1,w2,…,wi,…,wNをエンコーダ142に入力することで、単語ベクトルe1,e2,…,ei,…,eNを生成する。エンコーダ142は、例えば、BERTである。エンコーダ142は、エンコーダ132と同じでもよい。
【0089】
スパン検索モデル58は、単語ベクトルe1,e2,…,ei,…,eNの中から、指定された位置番号#iに対応する単語ベクトルeiを選択する。単語ベクトルeiは、i番目の単語の単語ベクトルである。また、スパン検索モデル58は、指定されたクラスを分散表現モデル143に入力することで、分散表現のクラスベクトルcを生成する。クラスベクトルcは、複数の数値を列挙した列ベクトルである。クラスベクトルcの次元数は、例えば、300次元など数百次元程度である。クラスベクトルcの次元数は、単語ベクトルe1,e2,…,ei,…,eNの次元数と同じでもよい。
【0090】
分散表現モデル131は、機械学習を通じて生成されたニューラルネットワークである。例えば、分散表現モデル143は、指定されたクラスに対応する次元の数値が1であり、他の次元の数値が0であるOne-hotベクトルを受け付ける。分散表現モデル143は、One-hotベクトルを、数百次元程度の次元数のクラスベクトルcに変換する。分散表現モデル143の構造は、分散表現モデル141と同じでもよい。
【0091】
スパン検索モデル58は、単語ベクトルe1,e2,…,ei,…,eNと単語ベクトルeiとクラスベクトルcを、フィードフォワードニューラルネットワーク144に入力する。フィードフォワードニューラルネットワーク144には、N+2個のベクトルが同時に入力される。よって、フィードフォワードニューラルネットワーク144の入力は、単語ベクトルe1,e2,…,ei,…,eNと単語ベクトルeiとクラスベクトルcとを連結した連結ベクトルである。フィードフォワードニューラルネットワーク144は、フィードバックパスを含まない順方向のニューラルネットワークである。
【0092】
フィードフォワードニューラルネットワーク144は、N個の単語に対応するN個のタグスコアを生成する。ある単語に対応するタグスコアは、複数のスパンタグに対応する複数の非負整数を含む。複数のスパンタグは、B,I,Oである。あるスパンタグの数値は、その単語にそのスパンタグが付与される確率を示す。
【0093】
スパン検索モデル58は、N個のタグスコアをCRFモデル145に入力することで、N個の単語に対応するスパンタグt1,t2,…,ti,…,tNを生成する。CRFモデル145は、ニューラルネットワークである。スパンタグの列は、1つだけ「B」を含み、「B」の前方には「I」が出現しないという制約をもつ。ただし、「B」と「I」の間に「O」が存在してもよく、「I」と「I」の間に「O」が存在してもよい。すなわち、固有表現に含まれる2以上の単語が不連続であってもよい。CRFモデル145は、N個の単語のタグスコアに基づいて、制約条件を満たす範囲で確率が最大になるスパンタグt1,t2,…,ti,…,tNの組み合わせを探索する。
【0094】
次に、情報処理装置100の機能および処理手順について説明する。
図10は、情報処理装置の機能例を示すブロック図である。情報処理装置100は、テキスト記憶部121、モデル記憶部122、タスク結果記憶部123、訓練データ生成部124、モデル生成部125、タスク実行部126およびスパン推定部127を有する。
【0095】
テキスト記憶部121、モデル記憶部122およびタスク結果記憶部123は、例えば、RAM102またはHDD103の記憶領域を用いて実装される。訓練データ生成部124、モデル生成部125、タスク実行部126およびスパン推定部127は、例えば、CPU101が実行するプログラムを用いて実装される。
【0096】
テキスト記憶部121は、自然言語で記述されたテキストを記憶する。テキスト記憶部121は、教師ラベルが付与された機械学習用のテキストを記憶する。また、テキスト記憶部121は、教師ラベルが付与されていない解析対象のテキストを記憶する。
【0097】
モデル記憶部122は、メインタスクモデルおよびスパン検索モデルを記憶する。モデル記憶部122は、複数種類のメインタスクモデルを記憶してもよい。メインタスクモデルは、情報処理装置100によって生成されてもよいし、他の情報処理装置によって生成されてもよい。スパン検索モデルは、情報処理装置100によって生成される。
【0098】
タスク結果記憶部123は、解析対象のテキストに対して実行された自然言語処理のタスクの結果を示すタスク結果を記憶する。タスク結果は、例えば、固有表現認識の結果、関係抽出の結果または意味役割付与の結果である。タスク結果は、テキストの単語に対応付けられたラベルを含む。ラベルは、クラス情報およびスパン情報を含む。
【0099】
訓練データ生成部124は、スパン検索モデルの機械学習用の訓練データを生成する。訓練データ生成部124は、テキスト記憶部121から教師ラベル付きテキストを読み出す。訓練データ生成部124は、教師ラベル付きテキストから固有表現に属する単語を抽出し、単語の位置番号と固有表現に対応付けられたクラスの組を網羅的に生成する。また、訓練データ生成部124は、固有表現のスパンのBIO表現を生成する。訓練データ生成部124は、テキストと位置番号とクラスとスパンを含む訓練データを生成する。
【0100】
モデル生成部125は、訓練データ生成部124が生成した訓練データを用いて、スパン検索モデルの機械学習を実行する。例えば、モデル生成部125は、誤差逆伝播法によって、ニューラルネットワークに含まれるエッジの重みを最適化する。モデル生成部125は、訓練データに含まれるテキストと位置番号とクラスをスパン検索モデルに入力する。モデル生成部125は、スパン検索モデルが出力する推定スパンと訓練データに含まれる正解スパンの間の誤差を算出し、誤差が小さくなるようにパラメータの値を更新する。モデル生成部125は、生成されたスパン検索モデルをモデル記憶部122に保存する。
【0101】
タスク実行部126は、テキスト記憶部121から解析対象のテキストを読み出す。また、タスク実行部126は、メインタスクモデルをモデル記憶部122から読み出す。解析対象のテキストおよびメインタスクは、ユーザから指定される。タスク実行部126は、メインタスクモデルにテキストを入力し、テキストとメインタスクモデルの出力をスパン推定部127に渡す。タスク実行部126は、スパン推定部127からスパン情報を取得し、メインタスクモデルの出力とスパン情報を合成してタスク結果を生成する。
【0102】
タスク実行部126は、タスク結果を出力する。例えば、タスク実行部126は、タスク結果をタスク結果記憶部123に保存する。また、例えば、タスク実行部126は、タスク結果を表示装置111に表示する。また、例えば、タスク実行部126は、タスク結果を他の情報処理装置に送信する。
【0103】
スパン推定部127は、モデル記憶部122からスパン検索モデルを読み出す。スパン推定部127は、テキストと位置番号とクラスを含む入力データセットを生成する。スパン推定部127は、テキストに加えて位置番号とクラスの組を1つずつスパン検索モデルに入力して、位置番号が示す単語を含む固有表現のスパン情報を生成する。スパン推定部127は、生成されたスパン情報の集合をタスク実行部126に渡す。
【0104】
図11は、機械学習の手順例を示すフローチャートである。訓練データ生成部124は、固有表現のスパンおよび固有表現に割り当てられたクラスを示す教師ラベルが付与されたテキストを読み出す(S10)。訓練データ生成部124は、教師ラベルテキストから固有表現に含まれる単語を1つ選択する。訓練データ生成部124は、テキストにおける選択された単語の位置を示す位置番号を算出する。また、訓練データ生成部124は、選択された単語が属する固有表現に対応付けられているクラスを特定する(S11)。
【0105】
訓練データ生成部124は、選択された単語が属する固有表現のスパンのBIO表現を生成する。スパンのBIO表現は、テキストに含まれる単語の個数に相当する長さをもつ。スパンの先頭の単語は「B」、スパンに含まれる単語のうち先頭以外の単語は「I」、スパンに含まれない単語は「O」で表現される(S12)。訓練データ生成部124は、ステップS11の位置番号およびクラスと、ステップS12のスパンのBIO表現とを含むレコードを、訓練データに追加する(S13)。
【0106】
訓練データ生成部124は、教師ラベル付きテキストから、固有表現に属する単語を全て選択したか判断する。全ての単語が選択された場合はステップS15に処理が進み、それ以外の場合はステップS11に処理が戻る(S14)。
【0107】
モデル生成部125は、テキストに含まれる複数の単語それぞれを、分散表現の単語ベクトルに変換する。ここで生成される単語ベクトルは、文脈を考慮した単語ベクトルであることが好ましい(S15)。モデル生成部125は、訓練データからレコードを1つ選択する。モデル生成部125は、ステップS15の複数の単語ベクトルの中から、選択されたレコードに含まれる位置番号に応じた1つの単語ベクトルを選択する(S16)。
【0108】
モデル生成部125は、選択されたレコードに含まれるクラスを、分散表現のクラスベクトルに変換する(S17)。モデル生成部125は、ステップS15で生成された複数の単語ベクトルと、ステップS16で選択された単語ベクトルと、ステップS17で生成されたクラスベクトルとを連結して、連結ベクトルを生成する。モデル生成部125は、連結ベクトルから、スパンのBIO表現を推定する(S18)。
【0109】
モデル生成部125は、ステップS18の推定スパンと選択されたレコードに含まれる正解スパンとの間の誤差を評価する。モデル生成部125は、誤差が小さくなるように、スパン検索モデルのパラメータの値を更新する(S19)。モデル生成部125は、ステップS16~S19のイテレーションが所定回数に達したか判断する。イテレーションが所定回数に達した場合はステップS21に処理が進み、それ以外の場合はステップS16に処理が戻る。モデル生成部125は、スパン検索モデルを保存する(S21)。
【0110】
図12は、自然言語処理の手順例を示すフローチャートである。タスク実行部126は、解析対象のテキストおよびメインタスクモデルを読み出す(S30)。タスク実行部126は、メインタスクモデルにテキストを入力して、メインタスクを実行する。メインタスクモデルの出力は、固有表現のスパン情報を含まなくてよい(S31)。
【0111】
スパン推定部127は、スパン検索モデルを読み出す(S32)。スパン推定部127は、ステップS31のメインタスクモデルの出力から、単語の位置を示す位置番号と単語に割り当てられたクラスとを対応付けたデータセットを生成する。データセットは、位置番号とクラスの組み合わせが異なる複数のレコードを含む(S33)。
【0112】
スパン推定部127は、テキストに含まれる複数の単語それぞれを、分散表現の単語ベクトルに変換する。ここで生成される単語ベクトルは、文脈を考慮した単語ベクトルであることが好ましい(S34)。スパン推定部127は、データセットからレコードを1つ選択する。スパン推定部127は、ステップS34の複数の単語ベクトルの中から、選択されたレコードに含まれる位置番号に応じた1つの単語ベクトルを選択する(S35)。
【0113】
スパン推定部127は、選択されたレコードに含まれるクラスを、分散表現のクラスベクトルに変換する(S36)。スパン推定部127は、ステップS34で生成された複数の単語ベクトルと、ステップS35で選択された単語ベクトルと、ステップS36で生成されたクラスベクトルとを連結して、連結ベクトルを生成する。スパン推定部127は、連結ベクトルから、スパンのBIO表現を推定する(S37)。
【0114】
スパン推定部127は、データセットから全てのレコードを選択したか判断する。全てのレコードが選択された場合はステップS39に処理が進み、それ以外の場合はステップS35に処理が戻る(S38)。タスク実行部126は、メインタスクモデルの出力とステップS37で推定されたスパンのBIO表現とを合成する(S39)。
【0115】
例えば、ある単語に対して、メインタスクモデルによって「クラスX」というラベルが付与され、スパン検索モデルによって「I」というラベルが付与されたとする。その場合、タスク実行部126は、2つのラベルを合成して「I-クラスX」というラベルを生成する。また、「I-クラスX」の単語の前方の単語に対して、メインタスクモデルによってラベルが付与されておらず、スパン検索モデルによって「B」というラベルが付与されたとする。その場合、タスク実行部126は、その単語に対して「B-クラスX」というラベルを付与する。このように、タスク実行部126は、正確なスパンを表していないメインタスクモデルの出力に対して、スパン検索モデルが推定したスパンの情報を補完する。
【0116】
タスク実行部126は、ステップS39で合成されたタスク結果を出力する。例えば、タスク実行部126は、タスク結果をタスク結果記憶部123に保存する。また、例えば、タスク実行部126は、タスク結果を表示装置111に表示する。また、例えば、タスク実行部126は、タスク結果を他の情報処理装置に送信する(S40)。
【0117】
以上説明したように、第3の実施の形態の情報処理装置100は、機械学習を通じて、テキストと単語の位置番号と単語に対応付けられたクラスから単語が属する固有表現のスパンを推定するスパン検索モデルを生成する。そして、情報処理装置100は、メインタスクモデルの後段にスパン検索モデルを接続することで、固有表現のスパンを推定する。各種のメインタスクモデルから分離されたスパン検索モデルを用いることで、情報処理装置100は、固有表現のスパンを精度よく推定することができる。
【0118】
情報処理装置100は、スパン検索モデルの機械学習に、様々なタスク用のテキストや様々なドメインのテキストを訓練データとして使用することができる。よって、情報処理装置100は、訓練データの量を大きくすることができ、スパン検索モデルの精度を向上させることができる。例えば、情報処理装置100は、医療分野のテキストと政治経済分野のテキストの両方を用いて、スパン検索モデルの精度を向上させることが可能となる。
【0119】
また、情報処理装置100は、固有表現認識、関係抽出、意味役割付与などのメインタスクの精度の影響を受けずに、スパン推定の精度を向上させることができる。また、スパン推定の精度が原因で、メインタスクの精度が低くなることを抑制できる。また、各種のメインタスクモデルからスパン推定が分離されることにより、メインタスクモデルの実装が容易となり、メインタスク自体の精度が向上する。特に、スパン推定が事後的に行われるため、メインタスクモデルは、固有表現のスパンの境界を意識しなくてよい。
【0120】
また、スパン検索モデルは、着目する1つの単語に対して、その単語を含む固有表現のスパンを推定する。よって、スパン検索モデルは、テキスト上で不連続な固有表現、オーバーラップした固有表現、入れ子の固有表現など、複雑な固有表現のスパンも、精度よく推定することができる。また、スパン検索モデルの構造が簡潔になる。
【0121】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0122】
10 機械学習装置
11,21 記憶部
12,22 制御部
13 訓練データ
13a,23a テキスト
13b,23b クラス情報
13c,23c 位置情報
13d,23d 範囲情報
14,24 機械学習モデル
20 自然言語処理装置
23 入力データ