図面 (/)
課題
解決手段
係り受け解析部40により、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている入力文の各々について、入力文に含まれる各単語に対応して単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで単語ノード間を結んだ木構造であって、単語ノードの各々について、単語の表記を表すノード、単語の標準表記を表すノード、及び単語の終止形を表すノードの少なくとも1つを単語ノードの子ノードとして追加した木構造を作成し、モデル学習部50により、作成された木構造から得られる複数の部分木と、入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習する。
概要
背景
対話システムは大きく分けて二種類あり、タスク指向型対話システムと非タスク指向型対話システムに分けられる。前者は特定のタスクをシステムとの対話により達成するものであり、例えば、フライトの予約システムや天気情報検索システムに用いられている。これらのシステムでは、予め話される内容が想定できるため、手作業で作り込んだ発話のデータベースを保持したり、データベースから抽出される天気情報などを手作業によるテンプレートに当てはめてシステムは発話を生成する(非特許文献1)。
非タスク指向型対話システムでは、目的のない対話を扱い、対話の内容はいわゆる雑談である。雑談はさまざまな話題が話されるため、予め話される内容は想定できない。そのため発話生成は非常に難しい課題である。ユーザの幅広い入力に対応するために、近年の技術では、ウェブやツイッター(登録商標)などの文章をデータベース化しておき、ユーザ発話に類似するものを選択することでシステム発話とするものがある(非特許文献2、非特許文献3)。
概要
発話文として適格な文であるか否かを判定するモデルを高精度に学習することができる。係り受け解析部40により、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている入力文の各々について、入力文に含まれる各単語に対応して単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで単語ノード間を結んだ木構造であって、単語ノードの各々について、単語の表記を表すノード、単語の標準表記を表すノード、及び単語の終止形を表すノードの少なくとも1つを単語ノードの子ノードとして追加した木構造を作成し、モデル学習部50により、作成された木構造から得られる複数の部分木と、入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習する。
目的
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている形態素解析済みの入力文の各々について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成する係り受け解析部と、前記係り受け解析部において前記入力文の各々について作成された前記木構造から得られる複数の部分木と、前記入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、前記木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習するモデル学習部と、を含むモデル学習装置。
請求項2
前記係り受け解析部は、前記単語ノードの各々について、前記単語ノードに対応する単語の意味情報を表すノード、及び前記単語ノードに対応する単語の必須格を表すノードの少なくとも一方を前記単語ノードの子ノードとして更に追加した前記木構造を作成する請求項1記載のモデル学習装置。
請求項3
形態素解析済みの入力文について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成する係り受け解析部と、前記係り受け解析部において作成された前記木構造から得られる複数の部分木と、前記木構造に対応する文が、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、前記入力文が発話文として適格な文である度合いを表すスコアを算出するモデル適用部と、前記モデル適用部において算出されたスコアに基づいて、前記入力文が発話文として適格な文か否かを判定し、発話文として適格な文であると判定された前記入力文を出力するフィルタ部と、を含む、フィルタ装置。
請求項4
前記係り受け解析部は、前記単語ノードの各々について、前記単語ノードに対応する単語の意味情報を表すノード、及び前記単語ノードに対応する単語の必須格を表すノードの少なくとも一方を前記単語ノードの子ノードとして更に追加した前記木構造を作成する請求項3記載のフィルタ装置。
請求項5
係り受け解析部と、モデル学習部と、を含むモデル学習装置におけるモデル学習方法であって、前記係り受け解析部は、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている形態素解析済みの入力文の各々について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成し、前記モデル学習部は、前記係り受け解析部において前記入力文の各々について作成された前記木構造から得られる複数の部分木と、前記入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、前記木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習するモデル学習方法。
請求項6
係り受け解析部と、モデル適用部と、フィルタ部と、を含むフィルタ装置におけるフィルタ方法であって、前記係り受け解析部は、形態素解析済みの入力文について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成し、前記モデル適用部は、前記係り受け解析部において作成された前記木構造から得られる複数の部分木と、前記木構造に対応する文が、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、前記入力文が発話文として適格な文である度合いを表すスコアを算出し、前記フィルタ部は、前記モデル適用部において算出されたスコアに基づいて、前記入力文が発話文として適格な文か否かを判定し、発話文として適格な文であると判定された前記入力文を出力するフィルタ方法。
請求項7
請求項8
コンピュータを、請求項3又は請求項4記載のフィルタ装置を構成する各部として機能させるためのプログラム。
技術分野
背景技術
0002
対話システムは大きく分けて二種類あり、タスク指向型対話システムと非タスク指向型対話システムに分けられる。前者は特定のタスクをシステムとの対話により達成するものであり、例えば、フライトの予約システムや天気情報検索システムに用いられている。これらのシステムでは、予め話される内容が想定できるため、手作業で作り込んだ発話のデータベースを保持したり、データベースから抽出される天気情報などを手作業によるテンプレートに当てはめてシステムは発話を生成する(非特許文献1)。
0003
非タスク指向型対話システムでは、目的のない対話を扱い、対話の内容はいわゆる雑談である。雑談はさまざまな話題が話されるため、予め話される内容は想定できない。そのため発話生成は非常に難しい課題である。ユーザの幅広い入力に対応するために、近年の技術では、ウェブやツイッター(登録商標)などの文章をデータベース化しておき、ユーザ発話に類似するものを選択することでシステム発話とするものがある(非特許文献2、非特許文献3)。
先行技術
0004
Ryuichiro Higashinaka, Katsuhito Sudoh, Mikio Nakano, ″Incorporating Discourse Features into Confidence Scoring of Intention Recognition Results in Spoken Dialogue Systems″, Speech Communication, Volume 48, Issues 3-4, pp.417-436,2006.
Shibata, M., Nishiguchi, T., and Tomiura, Y. (2009). ″Dialog system for open-ended conversation using web documents. ″ Infomatica, 33 (3), pp. 277-284.
Bessho, F., Harada, T., and Kuniyoshi, Y. (2012). ″Dialog System Using Real-Time Crowdsourcing and Twitter Large-Scale Corpus. ″ In Proc. SIGDIAL,pp. 227-231.
発明が解決しようとする課題
0005
非タスク指向型対話システムにおいて、ウェブやツイッター(登録商標)などの文を抽出し、システム発話として用いる場合、発話として問題が生じる場合がある。例えば、文脈に依存した文を抽出して、システム発話として突然ユーザに伝えるとその文脈を共有していないユーザにとっては、意味が理解できない。たとえば、「行くと楽しいですよね」という文を抽出して、これをシステムがユーザに伝えても、場所の情報が共有されていなければ、どこに行くのか分からないため、ユーザはこの文を理解できない。
0006
また、物事の説明としてよくある体言止めの文を抽出して、システム発話として用いる場合にも、「何がどうした」という基本的な内容が備わっていないため、ユーザにとっては意味が取りにくいという問題がある。例えば、「あっさり味のラーメン」とシステムが発話したとしても、「あっさり味のラーメン」がどうしたのかが分からないため、ユーザにとっては理解しにくい。
0007
「行くと楽しいですよね」という文では目的語である「どこに」という情報が欠けている。すなわち必要な文法的要素が足りない。「あっさり味のラーメン」では、「何がどうした」の「どうした」の要素が欠けている。どちらも文法的に必要的な要素が欠けているということが問題となる。
0008
このような文を検知して、システム発話候補からフィルタできればよいが、このような文を自動的に検知することはなかなか難しいという問題がある。なぜなら、ウェブ、特に、ツイッター(登録商標)における文は、格助詞の省略など、書き言葉の文法に則っていないことが多いため、文法的な解析が適切にできないことが多く、そのため、どの文法的要素が欠けているのかを検出しにくい。
0009
加えて、そもそも必要な文法的要素を満たしているかという判断自体も困難である場合が多いという問題がある。なぜなら、動詞はその使われる状況によって必要となる文法的要素が異なるからである。「食べないと生きていけない」であれば「食べる」に目的語は必要ないが「食べに行きたいな」であれば目的語がないと意味が理解できない。「新宿駅が混みすぎて迷子」は体言で終わる名詞句の文であるが、「何がどうした」という意味内容は適切に含まれおり、発話として問題はない。
0010
本発明では、上記問題点を解決するために成されたものであり、発話文として適格な文であるか否かを高精度に判定するモデルを学習することができるモデル学習装置、方法、及びプログラムを提供することを目的とする。
0011
また、発話文として適格な文であるか否かを高精度に判定し、発話文として適格な文と判定された文を出力することができるフィルタ装置、方法、及びプログラムを提供することを目的とする。
課題を解決するための手段
0012
上記目的を達成するために、第1の発明に係るモデル学習装置は、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている形態素解析済みの入力文の各々について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成する係り受け解析部と、前記係り受け解析部において前記入力文の各々について作成された前記木構造から得られる複数の部分木と、前記入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、前記木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習するモデル学習部と、を含んで構成されている。
0013
第2の発明に係るモデル学習方法は、係り受け解析部と、モデル学習部と、を含むモデル学習装置におけるモデル学習方法であって、前記係り受け解析部は、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている形態素解析済みの入力文の各々について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成し、前記モデル学習部は、前記係り受け解析部において前記入力文の各々について作成された前記木構造から得られる複数の部分木と、前記入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、前記木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習する。
0014
第1及び第2の発明によれば、係り受け解析部により、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている形態素解析済みの入力文の各々について、係り受け解析を行い、木構造を作成し、モデル学習部により、入力文の各々について作成された木構造から得られる複数の部分木と、入力文の各々に付加されている正例の情報又は負例の情報とに基づいて、木構造に対応する文が、発話文として適格な文であるか否かを判定するモデルを学習する。
0015
このように、発話文として適格であることを示す正例の情報又は発話文として適格でないことを示す負例の情報が付加されている入力文の各々について、木構造を作成し、作成された木構造から得られる複数の部分木と、正例の情報又は負例の情報とに基づいて、木構造に対応する文が、発話文として適格な文であるか否かを高精度に判定するモデルを学習することができる。
0016
また、第1の発明に係るモデル学習装置において、前記係り受け解析部は、前記単語ノードの各々について、前記単語ノードに対応する単語の意味情報を表すノード、及び前記単語ノードに対応する単語の必須格を表すノードの少なくとも一方を前記単語ノードの子ノードとして更に追加した前記木構造を作成してもよい。
0017
第3の発明に係るフィルタ装置は、形態素解析済みの入力文について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成する係り受け解析部と、前記係り受け解析部において作成された前記木構造から得られる複数の部分木と、前記木構造に対応する文が、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、前記入力文が発話文として適格な文である度合いを表すスコアを算出するモデル適用部と、前記モデル適用部において算出されたスコアに基づいて、前記入力文が発話文として適格な文か否かを判定し、発話文として適格な文であると判定された前記入力文を出力するフィルタ部と、を含んで構成されている。
0018
第4の発明に係るフィルタ方法は、係り受け解析部と、モデル適用部と、フィルタ部と、を含むフィルタ装置におけるフィルタ方法であって、前記係り受け解析部は、形態素解析済みの入力文について、係り受け解析を行い、前記入力文に含まれる各単語に対応して前記単語の品詞を表す各単語ノードを含み、単語の係り受け関係に応じたエッジで前記単語ノード間を結んだ木構造であって、前記単語ノードの各々について、前記単語ノードに対応する単語の表記を表すノード、前記単語ノードに対応する単語の標準表記を表すノード、及び前記単語ノードに対応する単語の終止形を表すノードの少なくとも1つを前記単語ノードの子ノードとして追加した前記木構造を作成し、前記モデル適用部は、前記係り受け解析部において作成された前記木構造から得られる複数の部分木と、前記木構造に対応する文が、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、前記入力文が発話文として適格な文である度合いを表すスコアを算出し、前記フィルタ部は、前記モデル適用部において算出されたスコアに基づいて、前記入力文が発話文として適格な文か否かを判定し、発話文として適格な文であると判定された前記入力文を出力する。
0019
第3及び第4の発明によれば、係り受け解析部により、形態素解析済みの入力文について、係り受け解析を行い、木構造を作成し、モデル適用部により、作成された木構造から得られる複数の部分木と、木構造に対応する文が、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、入力文が発話文として適格な文である度合いを表すスコアを算出し、フィルタ部により、算出されたスコアに基づいて、入力文が発話文として適格な文か否かを判定し、発話文として適格な文であると判定された入力文を出力する。
0020
このように、入力文について木構造を作成し、作成された木構造から得られる複数の部分木と、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、スコアを算出し、算出されたスコアに基づいて、入力文が発話文として適格な文か判定することにより、発話文として適格な文であるか否かを高精度に判定し、発話文として適格な文であると判定された入力文を出力することができる。
0021
また、第3の発明に係るフィルタ装置において、前記係り受け解析部は、前記単語ノードの各々について、前記単語ノードに対応する単語の意味情報を表すノード、及び前記単語ノードに対応する単語の必須格を表すノードの少なくとも一方を前記単語ノードの子ノードとして更に追加した前記木構造を作成してもよい。
0022
また、本発明のプログラムは、コンピュータを、上記のモデル学習装置を構成する各部として機能させるためのプログラムである。
0023
また、本発明のプログラムは、コンピュータを、上記のフィルタ装置を構成する各部として機能させるためのプログラムである。
発明の効果
0024
以上説明したように、本発明のモデル学習装置、方法、及びプログラムによれば、正例又は負例の情報が付加されている入力文の各々について、木構造を作成し、作成された木構造から得られる複数の部分木と、正例又は負例の情報とに基づいて、木構造に対応する文が、発話文として適格な文であるか否かを高精度に判定するモデルを学習することができる。
0025
また、本発明のフィルタ装置、方法、及びプログラムによれば、入力文について木構造を作成し、作成された木構造から得られる複数の部分木と、発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、スコアを算出し、算出されたスコアに基づいて、入力文が発話文として適格な文か判定することにより、発話文として適格な文であるか否かを高精度に判定し、発話文として適格な文であると判定された入力文を出力することができる。
図面の簡単な説明
0026
本発明の実施の形態に係るモデル学習装置の機能的構成を示すブロック図である。
JDEPによる解析結果の例を示す図である。
文節間の依存構造の例を示す図である。
単語間の係り受け構造に変換された木構造の例を示す図である。
品詞ノードを中心として構築した木構造の例を示す図である。
意味属性と必須格の情報を追加した木構造の例を示す図である。
学習データの例を示す図である。
学習されたモデルの例を示す図である。
本発明の実施の形態に係るフィルタ装置の機能的構成を示すブロック図である。
本発明の実施の形態に係るモデル学習装置におけるモデル学習処理ルーチンを示す図である。
本発明の実施の形態に係るフィルタ装置におけるフィルタ処理ルーチンを示す図である。
実験例の結果を示す図である。
入力される文に5段階のスコア用いた場合の学習データの例を示す図である。
実施例
0027
以下、図面を参照して本発明の実施の形態を詳細に説明する。
0028
<本発明の原理>
本発明の実施の形態において、機械学習の手法を導入し、文法的に問題がある文とそうでない文を見分ける分類器を学習する。具体的には、ウェブやツイッター(登録商標)から抽出した文を複数用意し、これらについて、文法的な観点から、発話文としての適格性を示すスコアを付与する。そして、これらのスコアが高いものを正例とし、スコアが低いものを負例として、二値分類器を学習する。学習においては、単語間の文法的な関係性が特徴量に含まれるように、構文解析の結果(具体的には、係り受け解析の結果)を特徴量として用いる。
0029
<本発明の実施の形態に係るモデル学習装置の構成>
次に、本発明の実施の形態に係るモデル学習装置の構成について説明する。図1に示すように、本発明の実施の形態に係るモデル学習装置100は、CPUと、RAMと、後述するモデル学習処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。このモデル学習装置100は、機能的には図1に示すように入力部10と、演算部20と、出力部90とを備えている。
0030
入力部10は、ウェブやツイッター(登録商標)等から抽出され、かつ、システムの発話として適格な文には正例の情報を、システムの発話として不適格な文には負例の情報を付与した、複数の文の各々を受け付ける。
0031
演算部20は、形態素解析部30と、係り受け解析部40と、モデル学習部50と、モデル記憶部60と、を備えている。
0032
形態素解析部30は、入力部10において受け付けた複数の文の各々について、形態素解析を行う。本実施の形態においては、形態素解析を行うプログラムとして、JTAGを用いる。なお、形態素解析を行うプログラムとしてChasenやMecab等を用いてもよい。
0033
係り受け解析部40は、形態素解析部30において形態素解析された複数の文の各々について、係り受け解析(依存構造解析)を行う。具体的には、形態素解析済みの複数の文の各々について、当該文を文節(文節は内容語とそれに伴う機能語からなる日本語の基本的な単位)毎にまとめ、まとめられた文節同士の依存関係を決定する。例えば、「私は彼と映画に行く」という文については、形態素解析処理の結果から、「私は」「彼と」「映画に」「行く」という4つの文節を取得する。そして、取得された文節同士の依存構造を求めることで、「私は」、「彼と」、「映画に」は、すべて「行く」に係る構造であると解析できる。本実施の形態においては、係り受け解析を行うプログラムとしてJDEPを用いる。ここで、JDEPは、JTAGの出力を基にして、係り受け解析を行うソフトウェアである。なお、係り受け解析を行うプログラムとしてCabochaやKNPを用いてもよい。
0034
また、係り受け解析部40は、係り受け解析された複数の文の各々について、当該文に含まれる文節の依存関係の構造に基づいて、木構造を作成する。具体的には、係り受け解析された複数の文毎に、当該文に含まれる文節の各々について、当該文節に含まれる各単語について、当該単語から、当該単語から一番近く、かつ当該文節内で右側に位置する単語に係るようにする。また、文節の各々について、当該文節の最右の単語は、係先の文節内の主辞となる単語に係るようにする。係先が存在しない単語(文内最後の単語)については、木のルートノード(root)に係るようにする。そして、当該文に含まれる単語の各々について、当該単語の品詞を表すノードを、当該単語を代表するノード(以後、単語ノードとする)として作成し、単語の係り受け関係に応じたエッジで単語ノード間を結ぶ。また、当該文に含まれる単語の各々について、当該単語の単語ノードの子ノードとして、当該単語の表記、標準表記、終止形の各々を表すノードを追加する。
0035
また、当該文に含まれる単語の各々について、当該単語に対応する意味属性が存在する場合は、当該単語の単語ノードの子ノードとして、その意味属性の情報を持つノードを追加する。なお、意味属性が複数存在する場合には、全ての意味属性についてのノードを各々追加する。ここで、意味属性とは、単語の持つ意味内容を指す。日本語語彙大系という辞書には、単語とその意味属性の対応が記憶されている。意味属性情報は三種類あり、一般名詞に付与される一般名詞意味属性、固有名詞に付与される固有名詞意味属性、用言(主に動詞)に付与される用言意味属性がある。本実施の形態においては、文毎に当該文に含まれる単語の各々について、これらに対応する意味属性を日本語語彙大系から取得する。なお、意味属性情報が、単語の意味情報の一例である。
0036
また、当該文に含まれる単語の各々について、当該単語が、述語(主に、動詞、形容詞)であり、かつ当該単語が必須格辞書に存在する場合には、当該単語の単語ノードの子ノードとして、述語の必須格情報を持つノードを追加する。ここで、必須格辞書は、大規模なテキストデータを解析して構築できる、述語の、その述語が伴う格のリストを保持したデータである。具体的には、大規模なテキストデータを係り受け解析し、述語に係る文節の持つ格助詞の頻度を数え上げる。そして、特定の述語に偏って多く出現する格助詞をその述語の必須格として必須格辞書に含める。偏って多く出現するかどうかには統計検定の手法を用いればよく、カイ二乗検定や、対数尤度比検定を用いればよい。本実施の形態において用いる必須格辞書では、「行く」の必須格として「ニ格」が、「買う」の必須格として「ヲ格」と「デ格」が、「思う」の必須格として「ト格」が定義されている。
0037
具体的に、「私は彼と映画に行った」という文について、係り受け解析部40において木構造を作成する場合について説明する。図2はJDEPの当該文に対する係り受け解析結果である。図2のアスタリスクの記号は文節情報を表している。アスタリスク以降は、それぞれ文節ID、係り先文節のIDと係りタイプ(通常はDで表記され、並列の係り受けについてはPで表記される)、主辞と機能語主辞である。図2の一行目に着目すると、「私は」の文節は文節IDが0で、文節IDが3の文節に係っており、主辞は文節内0番目の単語(すなわち「私」)、機能語主辞は文節内1番目の単語(すなわち「は」)であることがわかる。文の終わりはEOS(End of Sentence)記号で示される。アスタリスクから始まらず、EOSでもない行は、個々の単語に関する行であり、6つのフィールドからなる。それぞれ、表記、品詞、標準表記、終止形(活用がある品詞の場合)、読み、意味属性情報(一般名詞属性、固有名詞属性、用言属性の順で[]内に示される)である。図3から図6は、それぞれ、文節間の依存構造を図示したもの、単語間の係り受け関係を表す木構造、品詞を表す単語ノードを中心として構築した木構造、意味属性を表すノードと必須格を表すノードを追加した木構造の例を示す。ここで、意味属性は数字で表されたものであるが、図6においては、一般名詞属性、固有名詞属性、用言属性をそれぞれ区別するため、接頭辞としてそれぞれN、P、Yを付与している。
0038
最終的に得られる木構造は、文の大まかな構造を、品詞を表す単語ノードにより表し、また、その詳細情報を子ノードとして保持する構造となっている。また、子ノードとして意味属性情報を持つことで、その単語の指す大まかな意味内容を保持している。さらに、必須格辞書より、述語に本来持つべき格の情報を持つことにより必要な格情報が備わっているかどうかを検証するための情報を持つ。
0039
モデル学習部50は、正例の情報又は負例の情報が付与された文の各々について、係り受け解析部40において作成された当該文の木構造と、当該文に付与されている正例の情報又は負例の情報とに基づいて、システムの発話文として適格か否かを判定するモデルを学習する。本実施の形態においては、モデルの学習に用いるアルゴリズムとしてBACTを用いる。当該アルゴリズムは、与えられたデータ中の木構造に含まれる部分木を列挙し、当該部分木が正例、負例の判定にどの程度寄与しているかの重みを統計的な処理によって計算するものである。最終的に得られるモデルの学習結果は、部分木とその重みのペアの集合となる。BACTは木構造一般の判定に用いられるアルゴリズムである(非特許文献4:Taku Kudo, Yuji Matsumoto (2004) A Boosting Algorithm for Classification of Semi-Structured Text,EMNLP 2004.)。なお、学習アルゴリズムは、木構造中の部分木の存在を特徴量にでき、その特徴量に重みを付与できるものであれば、他のアルゴリズムを用いてもよい。
0040
学習データの一例を図7に示す。正例データの先頭には正例を表す+1が、負例には−1が付加されている。木構造はBACTの入力形態であるS式となっている。このS式は、図6で説明した木構造と同じ内容を含む。「case」で示されているところは必須格情報を表す。学習された結果、得られるモデルの一例を図8に示す。
0041
図8に表される最初の行は切片であり、どのような部分木を持つかによらず判定対象に与えられる重みである。以降、左の欄が重みであり、右の欄がその重みを持つ部分木の文字列表現である。文字列表現の隣接する要素において、「)」は兄弟関係を表しており、それ以外は親子関係である。例えば、「動詞語幹:A名詞」は、「動詞語幹:A」を表す親ノードと「名詞」を表す子ノードとからなる部分木を表している。正の重みは、その部分木が含まれていると正例になりやすいことを示し、負の重みはその逆である。ここで、作成した重みはモデルとしてモデル記憶部60に記憶し、出力部90に出力する。
0042
モデル記憶部60には、モデル学習部50において学習された、システムの発話文として適格か否かを判定するモデルが記憶されている。
0043
<本発明の実施の形態に係るフィルタ装置の構成>
次に、本発明の実施の形態に係るフィルタ装置の構成について説明する。図9に示すように、本発明の実施の形態に係るフィルタ装置200は、CPUと、RAMと、後述するフィルタ処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。このフィルタ装置200は、機能的には図9に示すように入力部210と、演算部220と、出力部290とを備えている。
0044
入力部10は、フィルタ処理の対象となる文を受け付ける。
0045
演算部220は、形態素解析部230と、係り受け解析部240と、モデル適用部250と、モデル記憶部260と、フィルタ部270とを備えている。
0046
形態素解析部230は、入力部210において受け付けた文について、モデル学習装置100の形態素解析部30と同様に、JTAGを用いて形態素解析を行う。
0047
係り受け解析部240は、形態素解析部230において形態素解析された文について、モデル学習装置100の係り受け解析部40と同様に、JDEPを用いて係り受け解析(依存構造解析)を行う。また、係り受け解析部240は、モデル学習装置100の係り受け解析部40と同様に、係り受け解析された文について、当該文に含まれる文節の依存関係の構造に基づいて、木構造を作成する。
0048
モデル適用部250は、入力部210において受け付けた文について係り受け解析部240において作成した木構造と、モデル記憶部260に記憶されているシステムの発話文として適格か否かを判定するモデルとに基づいて、当該作成した木構造に対応する文がシステムの発話文として適格である度合いを示すスコアを算出する。具体的には、当該木構造に含まれる部分木を列挙し、下記(1)式に従って、当該モデルを参照して、それぞれの部分木の重みを足し合わせることによりシステムの発話文として適格である度合いを示すスコアを算出する。
0049
0050
ここで、tは当該文の木構造であり、scoreは木構造についてのシステムの発話文として適格である度合いを示すスコアを返す。weight0は切片を指し、subtreesは木構造から部分木を列挙する関数である。weightは部分木について、当該モデルを参照し、その重みを返す関数である。
0051
モデル記憶部260は、モデル学習装置100のモデル記憶部60に記憶されているシステムの発話文として適格か否かを判定するモデルと同一のモデルが記憶されている。
0052
フィルタ部270は、入力部210において受け付けた文についてモデル適用部250において算出されたシステムの発話文として適格である度合いを示すスコアが、予め定められた閾値を超えているかを判定し、閾値を超えている場合には、当該文を発話文として適格であると判定し、出力部290に出力する。また、システムの発話文として適格である度合いを示すスコアが閾値以下の場合には、当該文を除去する対象として判定し、出力部290に出力する。なお、BACTの学習におけるデフォルトの設定によれば、閾値を0とするとき、判定性能が最も高いが、再現率を多少低くしても、適合率を高めたい場合など、閾値を高めに設定することで、システムの発話文として不適格な文が、システムの発話文として適格な文と判定されることを減らすことができる。例えば、閾値が0.005のときである。
0053
<本発明の実施の形態に係るモデル学習装置の作用>
次に、本発明の実施の形態に係るモデル学習装置100の作用について説明する。正例の情報又は負例の情報を付与した、複数の文の各々を受け付けると、モデル学習装置100は、図10に示すモデル学習処理ルーチンを実行する。
0054
まず、ステップS100では、入力部10において受け付けた正例の情報又は負例の情報が付与された複数の文の各々について、JTAGを用いて形態素解析を行う。
0056
次に、ステップS104では、ステップS102において取得した処理対象の文の係り受け解析結果に基づいて、木構造を作成する。
0057
次に、ステップS106では、入力部10において受け付けた全ての文について、ステップS102〜ステップS104までの処理を終了したか否かの判定を行う。全ての文について、ステップS102〜ステップS104までの処理を終了した場合には、ステップS108へ移行し、全ての文について、ステップS102〜ステップS104までの処理を終了していない場合には、処理対象となる文を変更し、ステップS102へ移行する。
0058
次に、ステップS108では、ステップS104において取得した入力部10において受け付けた複数の文の各々についての木構造と、当該文の各々に付与されている正例の情報又は負例の情報とに基づいて、システムの発話文として適格か否かを判定するモデルを学習し、モデル記憶部60に記憶する。
0059
次に、ステップS110では、ステップS108において取得したシステムの発話文として適格か否かを判定するモデルを出力部90に出力して、モデル学習処理ルーチンの処理を終了する。
0060
<本発明の実施の形態に係るフィルタ装置の作用>
次に、本発明の実施の形態に係るフィルタ装置200の作用について説明する。まず、入力部210から、モデル学習装置100において学習されたシステムの発話文として適格か否かを判定するモデルが入力され、モデル記憶部260に記憶される。そして、処理対象となる文を受け付けると、フィルタ装置200は、図11に示すフィルタ処理ルーチンを実行する。
0061
まず、ステップS200では、モデル記憶部260に記憶されているシステムの発話文として適格か否かを判定するモデルを読み込む。
0062
次に、ステップS202では、ステップS100と同様に、入力部210において受け付けた文について、JTAGを用いて形態素解析を行う。
0063
次に、ステップS204では、ステップS102と同様に、ステップS202において取得した処理対象の文の形態素解析結果に基づいて、JDEPを用いて係り受け解析を行う。
0064
次に、ステップS206では、ステップS104と同様に、ステップS204において取得した処理対象の文の係り受け解析結果に基づいて、木構造を作成する。
0065
次に、ステップS208では、ステップS100において取得したモデルと、ステップS206において取得した処理対象となる文の木構造とに基づいて、上記(1)式に従って、当該木構造のシステムの発話文として適格である度合いを示すスコアを算出する。
0066
次に、ステップS210では、ステップS208において取得したシステムの発話文として適格である度合いを示すスコアが、予め定められた閾値を超えているか否かを判定し、システムの発話文として適格である度合いを示すスコアが閾値を超えている場合には、ステップS214へ移行し、閾値以下である場合には、ステップS212へ移行する。
0067
次に、ステップS212では、入力部210において受け付けた文を除外対象として判定して、出力部290に出力して処理を終了する。
0068
次に、ステップS214では、入力部210において受け付けた文がシステムの発話文として適格であると判定して、出力部290に出力して処理を終了する。
0069
<実験例>
図12のグラフは、本発明の実施の形態に係るフィルタ装置200(図中のSyntax)と、ベースラインとして単語・品詞N−gram(unigram、bigram、trigram)の素性を用いたSVM(サポートベクトルマシン)ベースのフィルタの性能を比較したものである。図12は、フィルタ部の閾値を変えた場合にどのように精度が変動するかを示しており、図12の上部に線が位置する方がよい性能を示す。図12からわかるとおり、precision(適合率)、recall(再現率)は絶えずフィルタ装置200が上回っており、本発明の有効性が検証された。
0070
以上説明したように、本発明の実施の形態に係るモデル学習装置によれば、正例又は負例の情報が付加されている入力文の各々について、木構造を作成し、作成された木構造から得られる複数の部分木と、正例又は負例の情報とに基づいて、木構造に対応する文が、システムの発話文として適格な文であるか否かを高精度に判定するモデルを学習することができる。
0071
また、本発明の実施の形態に係るフィルタ装置によれば、入力文について木構造を作成し、作成された木構造から得られる複数の部分木と、システムの発話文として適格な文であるか否かを判定する、予め学習されたモデルとに基づいて、システムの発話文として適格である度合いを示すスコアを算出し、算出されたシステムの発話文として適格である度合いを示すスコアに基づいて、入力文がシステムの発話文として適格な文か判定することにより、システムの発話文として適格な文であるか否かを高精度に判定し、システムの発話文として適格な文であると判定された入力文を出力することができる。
0073
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
0074
また、本実施の形態においては、モデル学習装置100に入力される文に付加されている情報が、正例の情報又は負例の情報の二値である場合について説明したが、これに限定されるものではない。例えば、入力される文に5段階などのスコアを用いて、1点又は2点を負例とし、4点又は5点を正例とするようにして二値化して用いてもよい。図13に、外部アノテータによってスコアが付与された例を示す。
0075
また、本実施の形態においては、単語ノードに意味属性の子ノードを追加する場合について説明したが、これに限定されるものではない。例えば、単語の意味を表す情報を子ノードとして追加することができればよいため、WordNetにおける、Synset IDを用いてもよい。また、大規模データにおける複数の単語をその出現の仕方によってクラスタリングすることによって得られる、各単語に割当てられるクラスタの番号を子ノードとして追加してもよい。
0076
また、単語ノードの子ノードとして、当該単語の表記を表すノード、標準表記を表すノード、終止形を表すノード、意味属性の情報を持つノード、及び必須格情報を持つノードを追加する場合を例に説明したが、これに限定されるものではない。例えば、単語ノードの子ノードとして、当該単語の表記を表すノード、標準表記を表すノード、終止形を表すノード、意味属性の情報を持つノード、及び必須格情報を持つノードの少なくとも一つを追加するようにしてもよい。
0077
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
0078
10 入力部
20演算部
30形態素解析部
40係り受け解析部
50モデル学習部
60モデル記憶部
90 出力部
100モデル学習装置
200フィルタ装置
210 入力部
220 演算部
230 形態素解析部
240 係り受け解析部
250モデル適用部
260 モデル記憶部
270フィルタ部
290 出力部