(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024062632
(43)【公開日】2024-05-10
(54)【発明の名称】自然言語処理システム、自然言語処理方法、及び自然言語処理プログラム
(51)【国際特許分類】
G06F 40/279 20200101AFI20240501BHJP
G06F 40/216 20200101ALI20240501BHJP
【FI】
G06F40/279
G06F40/216
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022170607
(22)【出願日】2022-10-25
(71)【出願人】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100080953
【弁理士】
【氏名又は名称】田中 克郎
(72)【発明者】
【氏名】角田 充弘
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AA15
5B091AB01
5B091AB04
5B091AB06
5B091CA02
5B091CA06
5B091EA01
(57)【要約】
【課題】異なるレイアウトの文書を解析することが可能な自然言語処理システム、自然言語処理方法、及び自然言語処理プログラムを提供する。
【解決手段】少なくとも1つの文字を含む少なくとも1つの文字列に、少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得する重み配列取得部と、対象文字列に対応する素性を抽出する素性抽出部と、学習によって生成される学習済みモデル、重み配列、及び抽出された少なくとも1つの素性に基づいて、対象文字列のラベルを判定するラベル判定部と、を備える自然言語処理システム。
【選択図】
図1
【特許請求の範囲】
【請求項1】
少なくとも1つの文字を含む少なくとも1つの文字列に、前記少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得する重み配列取得部と、
対象文字列に対応する素性を抽出する素性抽出部と、
前記学習によって生成される学習済みモデル、前記重み配列、及び前記抽出された少なくとも1つの素性に基づいて、前記対象文字列の前記ラベルを判定するラベル判定部と、
を備える自然言語処理システム。
【請求項2】
前記ラベルは、前記対象文字列が属する文字列における前記対象文字列の意味に応じた属性を示す、請求項1に記載の自然言語処理システム。
【請求項3】
前記対象文字列に対応する複数の文節の係り受けに関する係り受け情報を取得する係り受け情報取得部をさらに備え、
前記素性抽出部は、前記係り受け情報に基づいて、前記対象文字列に対応する対象文節の係り元の文節と、前記対象文節の係り先の文節の係り元の文節であって前記対象文節とは異なる文節と、の少なくともいずれかに対応する素性を抽出する、
請求項1又は2に記載の自然言語処理システム。
【請求項4】
コンピュータが、
少なくとも1つの文字を含む少なくとも1つの文字列に、前記少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得し、
対象文字列に対応する素性を抽出し、
前記学習によって生成される学習済みモデル、前記重み配列、及び前記抽出された少なくとも1つの素性に基づいて、前記対象文字列の前記ラベルを判定する、
自然言語処理方法。
【請求項5】
コンピュータに、
少なくとも1つの文字を含む少なくとも1つの文字列に、前記少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得する重み配列取得部と、
対象文字列に対応する素性を抽出する素性抽出部と、
前記学習によって生成される学習済みモデル、前記重み配列、及び前記抽出された少なくとも1つの素性に基づいて、前記対象文字列の前記ラベルを判定するラベル判定部と、
を実現させるための自然言語処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語処理システム、自然言語処理方法、及び自然言語処理プログラムに関する。
【背景技術】
【0002】
近年、コンピュータによる、文章の文脈解析や意味解析等の自然言語処理に関する技術が発達しつつある。
【0003】
コンピュータによる自然言語処理では、文章に含まれる各単語の品詞等の属性を示すラベルを判定する処理が行われ、文章の解析が行われる場合がある。
【0004】
例えば、特許文献1に記載されている装置では、入力された文書画像データにレイアウト解析を施してその文書画像データの表す文書のレイアウトが特定される。また、入力された文書画像データに文字解析を施してその文書画像データの表す文書の各記載項目の属性が判別される。そして、特定されたレイアウトおよび判別された各記載項目の属性に基づいて、記載項目間の階層構造が特定され、その階層構造を表すルールデータが生成される。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載されている装置では、文書のレイアウトに基づいて文書の各記載項目の属性の階層構造が判別されるため、レイアウトが異なる文書に関する処理は考慮されていなかった。
【0007】
そこで、本発明は、異なるレイアウトの文書を解析することが可能な自然言語処理システム、自然言語処理方法、及び自然言語処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係る自然言語処理システムは、少なくとも1つの文字を含む少なくとも1つの文字列に、少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得する重み配列取得部と、対象文字列に対応する素性を抽出する素性抽出部と、学習によって生成される学習済みモデル、重み配列、及び抽出された少なくとも1つの素性に基づいて、対象文字列のラベルを判定するラベル判定部と、を備える。
【0009】
本発明の一態様に係る自然言語処理方法は、コンピュータが、少なくとも1つの文字を含む少なくとも1つの文字列に、少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得し、対象文字列に対応する素性を抽出し、学習によって生成される学習済みモデル、重み配列、及び抽出された少なくとも1つの素性に基づいて、対象文字列のラベルを判定する。
【0010】
本発明の一態様に係る自然言語処理プログラムは、コンピュータに、少なくとも1つの文字を含む少なくとも1つの文字列に、少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得する重み配列取得部と、対象文字列に対応する素性を抽出する素性抽出部と、学習によって生成される学習済みモデル、重み配列、及び抽出された少なくとも1つの素性に基づいて、対象文字列のラベルを判定するラベル判定部と、を実現させる。
【0011】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」又は装置が有する機能が2つ以上の物理的手段、装置、又はソフトウェアにより実現されても、2つ以上の「部」又は装置の機能が1つの物理的手段、装置、又はソフトウェアにより実現されてもよい。
【発明の効果】
【0012】
本発明によれば、異なるレイアウトの文書を解析することが可能な自然言語処理システム、自然言語処理方法、及び自然言語処理プログラムを提供することができる。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態である自然言語処理システム100の構成を示す図である。
【
図2】記憶部110に記憶される学習用文字列情報の例を示す図である。
【
図3】記憶部110に記憶される重み配列の例を示す図である。
【
図4】記憶部110に記憶される対象文字列情報の例を示す図である。
【
図5】文字列における係り受けの関係の例を示す図である。
【
図6】ラベル判定部145によるラベル判定処理の例を示す図である。
【
図7】記憶部110に記憶される判定結果情報の例を示す図である。
【
図8】自然言語処理システム100におけるラベル判定精度に関する実験結果を示す図である。
【
図9】自然言語処理システム100における処理の例を示すフローチャートである。
【
図10】自然言語処理システム100における処理の例を示すフローチャートである。
【発明を実施するための形態】
【0014】
添付図面を参照して、本発明の好適な実施形態について説明する。
図1は、本発明の一実施形態である自然言語処理システム100の構成を示す図である。
【0015】
自然言語処理システム100は、学習によって生成される学習済みモデル、文字列に対応するラベルを判定するための重み配列、及び対象文字列に対応する少なくとも1つの素性に基づいて、対象文字列のラベルを判定する情報処理システムである。
【0016】
本実施形態において、文字列は、少なくとも1文字を含む文字列であり、1文字からなる文字列(すなわち、1文字)を含む。
【0017】
自然言語処理システム100は、情報処理システム200及びユーザ端末300とインターネット等のネットワークを介して通信可能に接続される。自然言語処理システム100の詳細については、後述する。
【0018】
情報処理システム200は、学習用文字列を記憶し、学習用文字列を外部の情報処理システム(例えば、自然言語処理システム100)に提供する情報処理システムである。情報処理システム200は、例えば、自然言語処理システム100に対し、学習用文字列に関する学習用文字列情報並びに学習用文字列の少なくとも1つの文字列に対応する素性及びラベルに関する情報を提供することができる。
【0019】
ユーザ端末300は、ユーザが利用するコンピュータであり、スマートフォン、タブレット端末、パーソナルコンピュータ等である。ユーザ端末300は、自然言語処理システム100によるラベル判定処理の対象となる対象文字列に関するデータが含まれた文書データ若しくは画像データを、自然言語処理システム100に提供したり、自然言語処理システム100に対し、外部の情報処理システムから取得するように指示したりすることができる。
【0020】
なお、
図1では、情報処理システム200及びユーザ端末300の例として、情報処理システム200及びユーザ端末300をそれぞれ1つのみ示しているが、情報処理システム200及びユーザ端末300の数はこれに限られない。
【0021】
また、情報処理システム200は、自然言語処理システム100に組み込まれるシステムであってもよい。
【0022】
続いて、自然言語処理システム100の詳細について説明する。自然言語処理システム100は、記憶部110、学習用文字列取得部115、学習部120、重み配列取得部125、対象文字列取得部130、係り受け情報取得部135、素性抽出部140、ラベル判定部145、出力部150を備える。
図1に示す各部は、例えば、記憶領域を用いたり、記憶領域に格納されたプログラムをプロセッサが実行したりすることにより実現することができる。
【0023】
記憶部110は、自然言語処理システム100において処理される情報を記憶する。記憶部110は、例えば、後述する、学習用文字列情報、重み配列、対象文字列情報、係り受け情報、判定結果情報を記憶することができる。
【0024】
学習用文字列取得部115は、少なくとも1つの文字列に素性及びラベルが設定された学習用文字列に関する学習用文字列情報を取得し、記憶部110に格納する。
【0025】
ここで、学習用文字列情報は、少なくとも1つの文字列に素性及びラベルが設定された文字列に関する情報であり、機械学習におけるいわゆる教師データである。また、学習用文字列情報は、自然言語処理システム100が、後述する重み配列を生成する際に学習する情報である。
【0026】
少なくとも1つの文字列に素性及びラベルが設定された学習用文字列に関する学習用文字列情報は、自然言語処理システム100又は情報処理システム200において生成される情報であってもよく、また、別の情報処理システムで生成される情報であってもよい。
【0027】
すなわち、具体的には、学習用文字列取得部115は、例えば、情報処理システム200から、少なくとも1つの文字列に素性及びラベルが設定された学習用文字列に関する学習用文字列情報を取得して、記憶部110に格納してもよい。
【0028】
また、学習用文字列取得部115は、例えば、情報処理システム200から、素性が設定されていない学習用文字列に関する学習用文字列情報を取得してもよい。この場合、自然言語処理システム100(例えば、後述する素性抽出部140)が、学習用文字列取得部115が取得する学習用文字列情報に基づいて、当該学習用文字列の素性を抽出し、少なくとも1つの文字列に素性及びラベルが設定された学習用文字列情報を生成してもよい。そして、学習用文字列取得部115が、少なくとも1つの文字列に素性及びラベルが設定された学習用文字列情報を取得して、記憶部110に格納してもよい。
【0029】
ここで、素性は、例えば、文字種又は形態素を含む。
【0030】
文字種は、文字列の種別を示す情報であり、例えば、漢字、片仮名、平仮名、ローマ字、数字、及びその他を含む。
【0031】
形態素は、例えば、文字列の品詞を示す情報であり、例えば、名詞、動詞、接頭辞、接尾辞、普通名詞、固有名詞、一般名詞、及び人名を示す情報を含む。
【0032】
また、形態素は、対応する文字列が属する単語における、当該文字列の位置を示す情報を含んでもよい。すなわち、当該文字列が、単語の先頭の文字である場合は、先頭を示す情報(例えば、「B」)を含んでもよく、また、当該文字列が、単語の先頭でない文字である場合は、先頭ではないことを示す情報(例えば、「I」)を含んでもよい。
【0033】
ラベルは、例えば、文字列が属する単語、文節又は文等において、文字列が示す意味に応じた属性を示す情報であり、例えば、「固有名」、「地名」、「組織」、「人名」、「日付」、「住所」を含む。すなわち、ラベルは、例えば、文字種、形態素、及び文章又は単語における文字列の位置等に基づいて付与される、文字列の意味に応じた属性を示す。
【0034】
具体的には、数字の文字列がある場合、当該数字の文字列が属する単語、文節又は文等において、当該数字の文字列は、日付を示す場合もあり、また、住所を示す場合もある。ラベルは、文字列の意味内容に関する情報であるため、ラベルに基づいて、当該文字列がどのような意味をもつ文字列であるか(すなわち、例えば、日付を示す数字であるか)を判別することができる。
【0035】
ラベルが日付を示す場合、ラベルは、例えば、特定の日時を示してもよく、また、特定の時期(例えば、月の上旬・中旬・下旬、季節等)を示してもよい。また、ラベルが住所を示す場合、ラベルは、特定の地点の住所を示してもよく、特定の地域を示してもよい。
【0036】
また、数字の文字列のラベルは、当該数字が表す意味を示すものであってもよい。具体的には、当該数字が株式市場に関する数字である場合、ラベルは、例えば、どの市場(例えば、国内市場か、プライム市場か等)における、いつ(例えば、月初か、月末か等)の、どのような数字(例えば、高値か、終値か、どのようなインデックスか、株価か、騰落率か、ポイントか等)を示すものであってもよい。すなわち、当該数字が、1月の月初におけるインデックスAの価格である場合、当該数字のラベルは、「1月の月初におけるインデックスAの価格」であってもよい。
【0037】
ラベルは、ラベルの種類ごとに、所定の記号を用いて表現されてもよい。「固有名」を示すラベルは、例えば、「ART」と表現されてもよく、「日付」を示すラベルは、例えば、「DAT」として表現されてもよい。また、適切なラベルに対応しない場合は、その他のラベルであることを示す「O」と表現されてもよい。
【0038】
学習用文字列には、少なくとも1つの文字列に素性及びラベルが設定されていればよく、全ての文字列に素性及びラベルが設定されていなくてもよい。
【0039】
また、学習用文字列において、ラベルは、文字列(すなわち、1文字又は2以上の文字列)ごとに設定されてもよく、また、単語ごとに設定されてもよい。
【0040】
また、学習用文字列取得部115は、学習用文字列情報自体を取得し記憶部110に格納してもよく、また、学習用文字列情報のリンクに関する情報を取得し、学習用文字列情報のリンクに関する情報を記憶部110に格納してもよい。
【0041】
図2は、記憶部110に記憶される学習用文字列情報の例を示す図である。記憶部110に記憶される情報は、例えば、学習用文字列ID、学習用文字列内容情報、素性情報、ラベル情報を含む。
【0042】
学習用文字列IDは、学習用文字列情報に含まれる学習用文字列を識別する情報である。
【0043】
学習用文字列内容情報は、学習用文字列の内容に関する情報である。学習用文字列内容情報は、学習用文字列に含まれる少なくとも1つの文字列(「4」及び「月」)に、ラベルが設定されている。
【0044】
素性情報は、文字列に対応する素性を示す情報である。素性情報は、例えば、文字種を示す情報及び形態素を示す情報を含む。ラベル情報は、文字列に対応するラベルを示す情報である。
【0045】
なお、
図2において示す素性情報及びラベル情報の記載形式は一例であり、素性情報及びラベル情報の記載形式はこれに限られない。また、
図2において、素性情報及びラベル情報は、1文字ごと、2文字以上の文字列ごと、又は単語ごとに設定されてもよい。
【0046】
学習部120は、素性及びラベルが設定された学習用文字列に基づいて、文字列の素性と当該文字列に対応するラベルとの関係を学習して、重み配列及び学習済みモデルを生成し、重み配列及び学習済みモデルを記憶部110に格納する。
【0047】
学習部120は、例えば、所定の文字列のラベルと、当該所定の文字列から所定の相対位置(例えば、前後2語)にある文字列の素性との関係を学習する。なお、当該所定の相対位置にある文字列は、当該所定の文字列を含んでもよい。
【0048】
重み配列は、文字列のラベルを判定する基準となる重みに関する配列データであって、学習用文字列の少なくとも1つの文字列の素性と、当該素性の相対位置ごとの重みとの関係を対応させた配列データである。
【0049】
学習部120によって学習される学習済みモデルは、素性及び重み配列に基づいて、文字列に対応するラベルを判定するモデルである。ここで、素性は、例えば、ラベル判定の対象となる文字列から所定の相対位置(例えば、前後2語)にある文字列に対応する素性を含む。
【0050】
すなわち、具体的には、学習済みモデルは、入力される、素性(例えば、当該特定の文字列から所定の相対位置にある文字列に対応する素性)及び重み配列に基づいて、判定対象となる当該特定の文字列のラベルに関するスコアを出力する。
【0051】
学習部120による重み配列の生成は、例えば、システム管理者の指示に応じて実行される。また、システムメンテナンス時間等の所定のタイミングで自動的に学習が実行されてもよく、また、後述するラベル判定部145によるラベル判定処理の直前に実行されてもよい。学習のアルゴリズムは特に限定されないが、例えば、条件付き確率場(Conditional Random Field)を用いることができる。
【0052】
重み配列取得部125は、学習部120による学習によって生成される重み配列を取得する。すなわち、重み配列取得部125は、少なくとも1つの文字からなる少なくとも1つの文字列に、少なくとも1つの文字列の素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された、文字列に対応するラベルを判定する重みに関する重み配列を取得する。
【0053】
また、重み配列取得部125は、外部の情報処理システムに記憶される重み配列を、当該外部の情報処理システムから取得し、記憶部110に格納してもよい。これにより、自然言語処理システム100は、外部の情報処理システムにおいて学習された結果を、ラベル判定処理に活用することができる。
【0054】
図3は、記憶部110に記憶される重み配列の例を示す図である。記憶部110に記憶される重み配列は、例えば、素性情報、相対位置情報、及び重み情報を含む。
【0055】
相対位置情報は、素性情報に対応する素性それぞれの、相対位置に関する情報である。ここで、相対位置は、例えば、後述するラベル判定部145によるラベル判定対象となる対象文字列を起点とする相対位置である。
【0056】
重み情報は、素性及び相対位置に対応する、文字列のラベルを判定する基準となる重みに関する情報である。
【0057】
なお、記憶部110は、学習部120によって生成される重み配列及び学習済みモデルを記憶してもよく、また、外部の情報処理システムに記憶されている重み配列に対応する情報や当該重み配列に対応する情報のリンクに関する情報を記憶してもよい。
【0058】
対象文字列取得部130は、自然言語処理システム100に提供される文字列に関するデータが含まれた文書データ若しくは画像データに基づいて、ラベル判定処理の対象となる対象文字列に関する対象文字列情報を取得し、記憶部110に格納する。
【0059】
対象文字列取得部130は、文字列に関するデータが含まれた文書データ若しくは画像データをユーザ端末300から提供を受けてもよく、また、ユーザ端末300を通じたユーザからの指示に基づいて、文書データ若しくは画像データを外部の情報処理システムから取得してもよい。
【0060】
自然言語処理システム100が文字列に関するデータが含まれた文書データの提供を受ける場合、対象文字列取得部130は、例えば、文書データを解析して、提供を受けた文書データに含まれる文字列を取得する。
【0061】
自然言語処理システム100が文字列に関するデータが含まれた画像データの提供を受ける場合、対象文字列取得部130は、例えば、画像認識技術を用いて、提供を受けた画像データに含まれる文字列を取得する。
【0062】
図4は、記憶部110に記憶される対象文字列情報の例を示す図である。記憶部110に記憶される対象文字列情報は、例えば、対象文字列ID、グループID、対象文字列内容情報を含む。
【0063】
対象文字列IDは、自然言語処理システム100におけるラベル判定処理の対象となる対象文字列を識別する情報である。対象文字列IDは、例えば、文字ごと又は単語ごとに設定されてもよい。
【0064】
グループIDは、対象文字列IDに対応する文字列が属するグループを識別する情報である。グループは、例えば、文字列が属する単語、文節、文、又は段落等であってもよい。
【0065】
対象文字列内容情報は、対象文字列の内容に関する情報である。
【0066】
なお、
図4に示す図では、対象文字列IDは、単語ごとに設定されているが、文字ごとに設定されてもよい。
【0067】
係り受け情報取得部135は、対象文字列に対応する複数の文節の係り受けに関する係り受け情報を取得し、記憶部110に格納する。ここで、対象文字列に対応する複数の文節は、例えば、対象文字列が属する文に含まれる複数の文節である。
【0068】
係り受けは、例えば、1つの文に含まれる複数の文節の関係性を示す。すなわち、係り受けは、例えば、主語と述語の関係、主語と修飾語の関係を示す。例えば、主語と修飾語の関係を備える文節は、修飾語に対応する文節が主語に対応する文節に係っていることから、修飾語に対応する文節が係り元の文節であり、主語に対応する文節が係り先の文節であるといえる。
【0069】
係り受け情報取得部135は、例えば、文節ごとに、当該文節の係り先及び係り元の文節を示す係り受け情報を取得する。
【0070】
また、係り受け情報取得部135は、例えば、文節ごとに、当該文節の係り先の文節の係り元の文節を示す係り受け情報を取得することができる。
【0071】
なお、係り受け情報取得部135は、例えば、対象文字列が属する文字列(例えば、文又は段落等)について、既知の自然言語処理解析を施して、係り受け情報を取得することができる。また、係り受け情報取得部135は、例えば、係り受け情報を生成することが可能な情報処理システムから、対象文字列が属する文字列の係り受け情報を取得してもよい。
【0072】
図5は、文字列における係り受けの関係の例を示す図である。
図5は、「株式市場は、月初は下落して始まりました。」なる文における、係り受けの関係の例を示す。
【0073】
例えば、文節番号1の文節「株式市場は、」は、文節番号4の文節「始まりました。」に係っていることから、文節番号1の文節の係り先文節の文節番号は、「4」となる。また、同様に、文節番号4の文節の係り元文節の文節番号は、「1、2、3」となる。また、文節番号1の係り先文節(この場合は、文節番号4)の係り元文節の文節番号は「1、2、3」となる。
【0074】
素性抽出部140は、対象文字列に対応する素性を抽出し、素性情報を生成する。
【0075】
素性抽出部140は、素性として、例えば、対象文字列に対応する文字種及び形態素を抽出する。
【0076】
また、素性抽出部140は、対象文字列に対応する素性として、例えば、文字列の前後2単語の素性又は文字列の前後2文字の素性を抽出してもよく、また、その他、任意の範囲の素性を抽出することができる。ここで、素性抽出部140が素性を抽出する範囲は、自然言語処理システム100のシステム管理者の設定に基づいてもよく、また、ユーザの設定に基づいてもよい。
【0077】
また、素性抽出部140は、対象文字列に対応する素性として、係り受け情報に基づいて、対象文字列に対応する文節の係り元の文節に対応する素性を抽出することができる。また、素性抽出部140は、対象文字列に対応する素性として、係り受け情報に基づいて、対象文字列に対応する文節の係り先の文節の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節に対応する素性を抽出することができる。
【0078】
ここで、素性抽出部140が、係り受け情報に基づいて素性を抽出し、後述するラベル判定部145が、係り受け情報に基づいて抽出された素性に基づいてラベル判定処理をすることの意義について、具体例を用いて説明する。
【0079】
具体的に、文「1月の株式市場は上昇しましたが、月初は、円高の進行などを受けて、下落しました。」における対象文字列「下落し」のラベル判定処理を例にして考える。この場合、対象文字列「下落し」のラベルは、例えば、「1月の月初の株式市場の状況」とすることが適切である。文法上、「月初は」は「下落し」に係っているため、この文は、株式市場の下落が月初に起きたことを示している。
【0080】
素性抽出部140が、対象文字列の前後の単語の素性又は文字列の前後2文字の素性を抽出し、後述するラベル判定部145が、当該抽出された素性に基づいてラベル判定処理をする場合、対象文字列から離れた位置にある文字列の素性をラベル判定処理に取り込めないという問題が想定される。
【0081】
すなわち、対象文字列の前後の単語の素性に基づいてラベル判定処理を行う場合、例えば、「進行」や「受けて」等の対象文字列に近い位置にある文字列の素性をラベル判定処理に用いることはできるものの、「下落し」のラベル判定処理において重要な「月初は」は、対象文字列から離れた位置にあるため、素性として用いることができない。そのため、上記文における「下落し」のラベル判定処理において、月初に下落したことを考慮することができず、適切なラベル判定処理を行うことができないという問題が想定される。
【0082】
そこで、素性抽出部140は、対象文字列に対応する素性として、係り受け情報に基づいて、対象文字列に対応する文節の係り元の文節「月初は」に対応する素性を抽出する。これにより、後述するラベル判定部145は、対象文字列から離れた位置にある文字列(この場合は、「月初」)の素性をラベル判定処理に取り込むことができ、ラベル判定処理の精度を向上させることができる。
【0083】
次に、文「1月の株式市場は上昇しましたが、月初は、円高の進行などを受けて、下落して始まりました。」における対象文字列「下落して」のラベル判定処理を例にして考える。この場合、「月初は」は、「始まり」に係っており、「下落して」に係っていない。そのため、素性抽出部140が、対象文字列に対応する素性として、係り受け情報に基づいて、対象文字列に対応する文節の係り元の文節に対応する素性を抽出しても、「下落して」のラベル判定処理において、「月初は」に対応する素性を考慮することができない。
【0084】
一方、「下落して」は、「始まり」に係っていることから、「始まり」は、「月初は」及び「下落して」の係り先になっている。そこで、素性抽出部140は、対象文字列に対応する素性として、係り受け情報に基づいて、対象文字列に対応する文節の係り先の文節(この場合は、「始まり」)の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節(この場合は、「月初は」)に対応する素性を抽出する。これにより、後述するラベル判定部145は、対象文字列から離れた位置にある文字列の素性をラベル判定処理に取り込むことができ、ラベル判定処理の精度を向上させることができる。
【0085】
なお、素性抽出部140は、係り受け情報に基づいて素性を抽出する際、対象文字列が、当該対象文字列が属する文節の所定の文字列(例えば、文節の主辞)である形態素の場合に、当該対象文字列に対応する素性として、当該対象文字列に対応する文節の係り元の文節に対応する素性、又は当該対象文字列に対応する文節の係り先の文節の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節に対応する素性を抽出することができる。
【0086】
具体的には、例えば、文節「下落して」において、主辞である形態素は「下落」であり、主辞ではない形態素は「し」「て」である。この場合、文節「下落して」が属する文において、「下落」は、文や他の単語の意味を決定づけることが多い場合があるが、「し」「て」は、文法上用いられる付加的な文字列であり、文の意味に影響を与えることが少ない場合がある。
【0087】
この場合において、素性抽出部140は、対象文字列「下落」に対応する素性として、対象文字列「下落」が属する文節「下落して」の係り元文節に対応する素性、又は係り先の文節の係り元の文節であって、当該対象文字列に対応する文節「下落して」とは異なる文節に対応する素性を抽出することができる。一方、素性抽出部140は、対象文字列「し」又は「て」に対応する素性として、対象文字列「し」「て」が属する文節「下落して」の係り元文節に対応する素性、及び係り先の文節の係り元の文節であって、当該対象文字列に対応する文節「下落して」とは異なる文節に対応する素性を抽出しないことができる。
【0088】
これにより、自然言語処理システム100は、係り受け関係をより適切に把握して、後述する対象文字列のラベル判定処理に影響を与えると考えられる、関連性の高い素性を抽出することができる。また、これにより、ラベル判定処理に影響を与えないと考えられる素性を排除し、ラベル判定処理に用いる素性のデータ量を削減することができ、ラベル判定処理の速度及び精度を向上させることができる。
【0089】
なお、素性抽出部140は、文節に対応する素性を抽出する際、例えば、文節に含まれる文字列(例えば、1文字の文字列、2文字以上の文字列、単語等)に対応する素性を抽出することができる。
【0090】
ラベル判定部145は、学習済みモデル、重み配列、及び素性抽出部140によって抽出して生成される、対象文字列に対応する少なくとも1つの素性情報に基づいて、対象文字列のラベルを判定し、対象文字列及びラベルを対応付けた判定結果情報を記憶部110に格納する。
【0091】
ここで、対象文字列は、例えば、ラベル判定部145によるラベル判定処理の対象となる文字列(例えば、1文字の文字列、2文字以上の文字列、単語等)である。
【0092】
ラベル判定部145は、学習済みモデルに、重み配列及び対象文字列に対応する少なくとも1つの素性情報を入力し、対象文字列に対応する少なくとも1つのラベルの候補のスコアを算出する。その上で、ラベル判定部145は、当該スコアが一定値以上であるラベル(例えば、最もスコアが高いラベル)を、対象文字列に対応するラベルであると判定することができる。
【0093】
図6は、ラベル判定部145によるラベル判定処理の例を示す図である。
図6は、ラベル判定部145が、対象文字列「月」についてラベルを判定する際の例を示す。
【0094】
まず、素性抽出部140が、対象文字列「月」から所定の相対位置(例えば、前後2語)にある文字列(この場合、「は」、「4」、「月」、「16」、「日」)に対応する素性を抽出する。そして、ラベル判定部145が、学習済みモデル、重み配列、及び抽出される素性に基づいて、対象文字列「月」のラベルを判定する。
【0095】
また、ラベル判定部145は、係り受け情報にさらに基づいて、対象文字列のラベルを判定することができる。
【0096】
すなわち、この場合、まず、素性抽出部140が、例えば、係り受け情報に基づいて、対象文字列に対応する文節の係り元の文節に対応する素性、又は、対象文字列に対応する文節の係り先の文節の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節に対応する素性を抽出する。そして、ラベル判定部145が、学習済みモデル、重み配列、及び抽出される素性に基づいて、対象文字列のラベルを判定する。
【0097】
図7は、記憶部110に記憶される判定結果情報の例を示す図である。記憶部110に記憶される判定結果情報は、例えば、判定結果ID、対象文字列ID、判定ラベル情報を含む。判定結果IDは、判定結果情報を識別する情報である。判定ラベル情報は、ラベル判定部145によって判定されたラベルを示す情報である。
【0098】
出力部150は、判定結果情報を出力する。
【0099】
出力部150は、判定結果情報を、例えば、ユーザ端末300に出力してもよい。この場合、出力部150は、ラベルの種類に応じた表示態様(例えば、色)によって、ユーザ端末300に出力してもよい。
【0100】
また、出力部150は、別の情報処理システム(例えば、ラベル判定処理に続く自然言語処理を行う情報処理システム)に出力してもよい。
【0101】
図8は、自然言語処理システム100におけるラベル判定精度に関する実験結果を示す図である。
図8に示す図では、自然言語処理システム100における処理方法のうち、パターン1及びパターン2の方法を用いた、与えられた文字列に含まれる対象文字列のラベルを判定する処理において、処理に用いた教師データの件数及びラベル判定の精度が示されている。
【0102】
ここで、パターン1は、ラベル判定部145が、学習済みモデル、重み配列、対象文字列に対応する素性、及び対象文字列に対応する文節の係り元の文節に対応する素性に基づいて、対象文字列のラベル判定処理を行った場合の結果を示す。また、パターン2は、ラベル判定部145が、対象文字列に対応する文節の係り先の文節の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節に対応する素性にさらに基づいて、対象文字列のラベル判定処理を行った場合の結果を示す。
【0103】
図8に示すとおり、ラベル判定部145が、対象文字列に対応する文節の係り先の文節の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節に対応する素性にさらに基づいて、対象文字列のラベル判定処理を行った場合、教師データ件数を増大させなくても、ラベル判定の精度が向上していることが分かる。
【0104】
図9は、自然言語処理システム100における処理の例を示すフローチャートである。
図9は、自然言語処理システム100における学習処理の例を示すフローチャートである。
【0105】
まず、学習用文字列取得部115が、学習用文字列情報を取得する(S901)。続いて、係り受け情報取得部135が、対象文字列に対応する係り受け情報を取得する(S902)。素性抽出部140が、対象文字列に対応する素性を抽出する(S903)。そして、学習部120が、学習用文字列情報に基づいて学習し、重み配列及び学習済みモデルを生成する(S904)。
【0106】
なお、学習用文字列取得部115は、少なくとも1つの文字列に素性及びラベルが設定された学習用文字列を取得してもよい。この場合、適宜、係り受け情報取得部135による係り受け情報の取得処理又は素性抽出部140による素性抽出処理は行われなくてもよい。
【0107】
図10は、自然言語処理システム100における処理の例を示すフローチャートである。
図10は、自然言語処理システム100における対象文字列におけるラベル判定処理の例を示すフローチャートである。
【0108】
まず、対象文字列取得部130が、ユーザ端末300を通じたユーザの指示に基づいて、ラベル判定処理の対象となる対象文字列を取得する(S1001)。続いて、係り受け情報取得部135が、対象文字列に対応する係り受け情報を取得する(S1002)。
【0109】
そして、素性抽出部140が、対象文字列に対応する素性を抽出する(S1003)。このとき、素性抽出部140は、対象文字列に対応する文節の係り元の文節に対応する素性、及び、対象文字列に対応する文節の係り先の文節の係り元の文節であって、当該対象文字列に対応する文節とは異なる文節に対応する素性を抽出してもよい。ラベル判定部145が、学習済みモデル、重み配列、及び抽出された素性に基づいて、対象文字列のラベルを判定する(S1004)。出力部150が、判定結果に基づいて、判定結果情報を出力する(S1005)。
【0110】
以上、本発明の一実施形態について説明した。自然言語処理システム100は、素性及びラベルが設定された少なくとも1つの学習用文字列に基づいた学習により生成された学習済みモデル及び重み配列、並びに対象文字列に対応する素性に基づいて、対象文字列のラベルを判定することができる。これにより、異なるレイアウトの文書においても、対象文字列のラベルを判定することができ、異なるレイアウトの文書を解析することができる。
【0111】
また、自然言語処理システム100は、係り受け情報に基づいて、対象文字列に対応する対象文節の係り元の文節と、対象文節の係り先の文節の係り元の文節であって対象文節とは異なる文節と、の少なくともいずれかに対応する素性を抽出して、ラベル判定処理を行うことができる。これにより、対象文字列の係り受けを素性としてラベル判定処理に用いることができ、より広域の文字列の素性をラベル判定処理に用いることができる。
【0112】
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。
【符号の説明】
【0113】
100 自然言語処理システム、110 記憶部、115 学習用文字列取得部、120 学習部、125 重み配列取得部、130 対象文字列取得部、135 係り受け情報取得部、140 素性抽出部、145 ラベル判定部、150 出力部、200 情報処理システム、300 ユーザ端末