<用語の説明>
まず、本実施例で用いられる用語について説明する。「テーマ文(または、単に、テーマ)」とは、創作や議論の中心課題、主題または論題を意味する。ディベートなどでは、一例として『消費税は増税すべきである。』といった論題がテーマとして与えられる。
「テーマ表現」とは、本実施例の文書処理システムを利用するユーザが行いたい調査の調査観点を表す語句及びその関連語句である。ユーザが行いたい調査は、テーマとして文書処理システムに与えられる。たとえば、テーマが『消費税は増税すべきである。』の場合、「消費税」や「増税」がテーマ表現である。また、テーマ表現の関連語である「税金」、「付加価値税」、「VAT(Value Added Tax)」などもテーマ表現として扱われる。
「争点」とは、過去の文書での議論の対象や、観点、焦点であり、「争点表現」とは、争点の具体的な例を示す語句である。たとえば、争点が「ニュース」である場合、「経済」、「景気」、「製品」、「税制」、「内政」、「外交」などが争点表現となる。ただし、これらの語は意味の幅が広すぎるため、その下位概念の語句も争点表現としてもよい。たとえば、「税制」の場合、「国税」、「地方税」、「直接税」、「間接税」、「所得税」「住民税」などの下位概念も、争点表現となる。争点および争点表現は、後述する争点オントロジ情報701(図8を参照)により定義される。
「肯定・否定表現」とは、争点について肯定的または否定的な語句である。一般的な評判分析、感情分析と同様、肯定・否定表現は、争点との関係で規定される。たとえば、『ジャンクフードは健康に悪い。』という文の場合、「健康」が争点であり、「悪い」が争点を否定する否定表現となる。
促進・抑制表現は、テーマ表現を促進または抑制する表現である。促進・抑制表現は、テーマ表現と述語の組で規定される。具体的には、促進表現の場合では、あるテーマ表現と、そのテーマ表現を促進する述語の組であり、抑制表現の場合は、テーマ表現と抑制を表現する述語の組である。たとえば、『適度な運動は健康に良い。』という文の場合、テーマ表現である「適度な運動」が「健康」を促進するという関係である。また『運賃の値上げによって、乗客数は減少した。』という文の場合、テーマ表現である「運賃の値上げ」が「乗客数」を抑制したという関係になる。
なお、テーマ、テーマ表現、争点、争点表現、肯定・否定表現、および促進・抑制表現は、文書処理システムにおいて、辞書テーブルによりあらかじめ規定しておいてもよい。また、文書処理システムは、機械学習により生成した学習モデルを適用して、テーマ、テーマ表現、争点、争点表現、肯定・否定表現、および促進・抑制表現を特定することとしてもよい。
<語句の特定例>
つぎに、本実施例における上述した語句の特定例について説明する。語句の特定方法としては、たとえば、ルールに基づく方法と機械学習に基づく方法の2種類がある。ルールに基づく方法は、特定方法を決定的なルールとして表現した方法であり、たとえば、語句を格納した辞書テーブルである。したがって、入力文と一致する語句が辞書テーブルにある場合、当該語句が入力文から特定される。入力文中の特定語句には、該当するアノテーションが付与される。
また、機械学習に基づく方法は、過去の事例を数値ベクトルに変換することで学習モデルを生成しておき、過去の事例の学習と同様の方法で、入力文を数値ベクトルに変換して学習モデルを適用し、入力文のうち学習モデルにより特定された語句には、該当するアノテーションが付与される。
ここで、機械学習に基づく方法について具体的に説明する。機械学習に基づく方法としては、系列ラベリング問題としてSupport Vector Machine(SVM)や条件付き確率場(Conditional Random Field,CRF)を用いることができる。系列ラベリング問題とは、固有表現特定や形態素解析などで用いられる機械学習の問題の定式化の一種である。具体的には、ノードの系列として与えられるデータに対して、各ノードに対応するタグを付与する問題(系列ラベリング問題)である。文へのアノテーションの場合、形態素や文字をノードとする場合が多い。
ここで、系列ラベリング問題では、人手で付与した訓練文書から学習モデルを生成する学習フェーズと、生成した学習モデル用いて未知のデータにタグを付与する適用フェーズの二つがある。
まず、学習フェーズについて説明する。学習フェーズでは、計算機は、訓練文書として人手によりある特徴(たとえば、テーマ、テーマ表現、争点、争点表現、肯定・否定表現、および促進・抑制表現)を特定し、特定した特徴を示すアノテーションを付与した訓練文書を作成する。以下では、特徴の一例として争点を挙げる。
次に、計算機は、訓練文書内の文の文字列を数値ベクトルの系列に変換する。具体的には、計算機は、まず、訓練文書内の文に対して形態素解析し、各形態素を系列のノードとする。次に、計算機は、各形態素の表層文字列や品詞などをリストアップする。そして、訓練文書中に表層文字列が合計Vs種類、品詞の種類が合計Vp種類あったとする。計算機は、これらの各表層文字列と各品詞を順に辞書のキーとして辞書テーブルに追加し、その値として辞書テーブルへの登録順に自然数を一つずつ重複のないように割り当てる。
計算機は、この辞書テーブルを用いて、各ノードの表層文字列と品詞を数値に変換する。すると、各ノードは、表層文字列と品詞に相当する次元を1として、それ以外の次元を0とする数値ベクトルとして表現できる。この数値ベクトルに対して、争点であるかどうかを表すタグを組にする。ノードが争点に該当すれば、issueタグが、争点に該当しなければO(other)タグが付与される。
また、別のタグの与え方としては、複合語の争点を仮定したとき、争点の開始位置であるノードにB−issueを、中間位置であるノードにI−issueというように、issueタグを区別する方法もある。この変種としては、さらに終了位置をE−issue、単一ノードの争点をU−issueとして区別する方法もある。計算機は、この数値ベクトル列とタグの組を、SVMやCRFに入力し、学習モデルを生成する。
入力文に学習モデルを適用する場合は、計算機は、訓練文書内の文と同様の方法で入力文を数値ベクトル列に変換して学習モデルを適用し、入力文の該当語句にアノテーションを付与する。
このように、以下の実施例で語句を特定する場合、ルールに基づく方法と機械学習に基づく方法のいずれかが適用される。なお、上述した機械学習では、争点を例に挙げて説明したため、タグの表記は「issue」としたが、他の特徴の場合はその特徴に応じたタグ表記となる。たとえば、テーマ表現のタグはthemeタグ、肯定表現の場合はpositiveタグ、否定表現の場合はnegativeタグ、促進表現の場合はpromoteタグ、抑制表現の場合はsuppressタグとなる。
<知能処理システムの一例>
図1は、知能処理システムの一例を示す説明図である。知能処理システム1は、生成システム100と、データ管理システム101と、を有する。知能処理システム1では、生成システム100がデータ管理システム101と連携することで知能処理を実行する。
まず、本発明の知能処理システム1の全体像について説明する。本発明の知能処理システム1は、9つのモジュールが結合された生成システム100と、データ管理システム101と、からなる。
生成システム100は、議題が入力されると、その議題に対する意見を述べた論述文を出力する。データ管理システム101には、あらかじめデータ処理されたデータが保存され、生成システム100からアクセス可能になっている。以下では、まず生成システム100を説明してから、データ管理システム101を説明する。
生成システム100では、9つのモジュール102〜110を順に実行する。これらのモジュール102〜110は、それぞれ独立したアルゴリズムにより構成されている。
生成システム100は、まず入力部102で、ユーザから議題の入力を受け取付ける。生成システム100は、さらに、議題に対して肯定的な意見を生成したいか、否定的な意見を生成したいかについての入力を受け付けても良い。このように、生成する文章の立場を明確にすることで、知能処理システム1をディベートのような議論の場で用いることも可能になる。
生成システム100は、次に議題解析部103で、議題を解析し、議題の極性と検索に用いるキーワードを判定する。続いて、検索部104で、キーワードと、ディベートにおける争点を示す争点語とを用いて記事を検索する。例えば、議題が「カジノを禁止すべき」というものだった場合、キーワードとしては名詞句である「カジノ」があげられる。さらに、生成システム100は、極性を判定することで、「カジノ」に対して肯定的な争点語を用いるべきか、否定的な争点語を用いるべきかを決定することができる。ここでいう争点語とは、たとえば、議論における論点となる価値観をあらわした単語をいう。また、ここでいう「促進語」とは、「争点を促進する事象」を言う。一方、ここでいう「抑制語」とは、「争点を抑制する事象」を言う。
生成システム100は、上記の議題に対し、肯定的な意見を出力したい場合には、検索部104で、キーワードとして「カジノ」を、争点語としてはカジノを抑制する「抑制語」を選択して検索を行う。ここでは、議題が「カジノ」に対して否定的であるため、争点語としては「抑制語」を用いる処理としている。検索においては、「カジノ」のような争点語とキーワードとを合わせ検索することにより、「カジノ」に対する是否を述べている記事を検索することができる。議題から抽出したキーワードのみでは、例えば「カジノ」についての宣伝記事や、「カジノ」に行った感想のみを述べているブログ記事のように、ディベートにおいて考慮する必要のない記事等も多く検索結果に含まれてしまい、適切に検索することができない。
生成システム100は、続いて、争点決定部105で、出力された記事を分類し、意見を生成する際に用いる争点を決定する。生成システム100は、続いて、文抽出部106で、出力した記事から争点について述べている文を抽出する。生成システム100は、続いて、文並び替え部107で、抽出された文を並び替えることにより文章を生成する。生成システム100は、続いて、評価部108で、生成された文を評価する。生成システム100は、続いて、言い換え部109で、適切な接続詞を挿入し、不要な表現を削除する。生成システム100は、続いて、出力部110で、最も評価の高い文章を、意見を述べた論述文として出力する。
データ管理システム101は、インターフェース/構造化部111と4つのデータベース(Database、DB)112〜115とから構成される。
インターフェース/構造化部111は、DB112〜115に管理されているデータに対するアクセス手段を提供する。インターフェース/構造化部111は、テキストデータDB112、テキストアノテーションデータDB113、検索用インデックスDB114、争点オントロジDB115へのアクセス手段を提供するインターフェースであり、RESTなどの技術で実装される。
テキストデータDB112は、ニュース記事などのテキストデータである。テキストアノテーションデータDB113は、テキストデータDB112に付与されたデータである。検索用インデックスDB114は、テキストデータDB112とアノテーションデータDB113を検索可能にするためのインデックスである。争点オントロジDB115は、ディベートでよく議論になる争点と、その関連語を紐づけたデータベースである。また、争点オントロジDB115は、争点オントロジ情報701(図8を参照)を含む。
以下ではまず次に、データ管理システム101を説明した後、生成システム100の各部を説明する。
テキストデータDB112に蓄積されているデータは、ニュース記事などのテキストデータである。生成システム100は、このテキストデータの中から意見文を構成するために適切なセンテンスを抜き出し、抜き出したセンテンスを並べることで論述文を生成する。従ってテキストデータDB112は、出力される論述文を構成するセンテンスのデータソースとなる。英語と日本語のニュース記事をインターネットからクローリングすることにより、テキストデータDB112が構築される。それぞれのデータには、例えばユニークな識別子としてdoc_idを振って管理される。
テキストアノテーションデータDB113は、テキストデータDB112に付与されたデータを蓄積したDBである。テキストアノテーションデータDB113は、上述したpositive、negativeやpromote、suppressのようなアノテーションを格納する。
検索用インデックスDB114は、テキストデータDB112およびテキストアノテーションデータDB113を検索できるようにするためのインデックスデータである。キーワード検索用のインデックスデータとしては、類似検索用に各テキストデータの特徴的な語の統計量(例えばTF−IDFによる計算結果)のベクトル値を、類似検索用のインデックスとして格納しておく。あるいは、Solrなどのソフトウェアを使い、Solrのインデックス生成用APIに、テキストデータ112やテキストアノテーションデータ113を渡す入力をすることで、自動的に検索用インデックス114を生成することもできる。
また、類似検索用に各テキストデータの特徴的な語の統計量を表すTF−IDFによる計算結果のベクトル値を、類似検索用のインデックスとして格納してもよい。
争点オントロジDB115は、ディベートでよく議論になる争点と、その関連語を紐づけたデータベースである。ここでの争点オントロジの例として、ディベートでよく議論になる争点の価値と、その価値を促進する表現と、その価値を抑制する表現と、が関連付けられる。例えば、争点の価値例としてhealthがある。これは時折、ディベートでは健康という価値が増すか減るかの観点で争点として意見を戦わせることを意味する。ここでは、たとえば、healthの価値を促進する表現として、exercise、doctor、organ donation、medicineなどがある。またhealthの価値を抑制する表現として、junk food、tabacco、alchohol、smokingなどがある。争点オントロジは、たとえば、過去のディベートなどを参考に、人手で作成される。争点オントロジDB115は、このほか、争点オントロジ情報701(図8を参照)を保持する。
<文抽出部106および文並び替え部107の具体例>
図2は、図1に示した文抽出部106および文並び替え部107の具体例を示す説明図である。文抽出部106は、検索部104で検索された関連記事であるテキストデータ13a〜13dから、争点決定部105で認識された争点に関わる文200a〜200dを特定する。文200a〜200dにおいて、「健康」、「課税」など下線で示した語句は争点決定部105で認識された争点であり、「ジャンクフード」など太字で示した語句はテーマ表現である。
文並び替え部107は、文抽出部106で特定された複数の文200a〜200dを並び替えることにより、論述文201を生成する。文並び替え部107は、文200a〜200dの文種(主張、理由、事例)を特定する。本例では、文200aが事例、文200bが文種なし、文200cが主張、文200dが理由と特定されたものとする。主張→理由→事例の順序で並び替えると一貫性のある文章となるため、文並び替え部107は、文200a〜200dの文種が主張→理由→事例の順序となるように並べ替えて、論述文201を生成する。
これにより、生成システム100は、内容に一貫性のある順序で論述文201をユーザに提示することができ、その後のデータの解釈がより容易になり、また、解釈の信頼性の向上も図ることができる。
<システム構成例>
図3は、文書処理システムのシステム構成例を示す説明図である。文書処理システム300は、図1に示した知能処理システム1の一部を構成するシステムである。文書処理システム300は、1台以上の計算機301と端末14とを有する。計算機301と端末14とは、不図示のネットワークによって接続される。ネットワークは、LAN(Local Area Network)またはWAN(Wide Area Network)、インターネットなどである。また、計算機301は、文書DB302にアクセス可能である。文書DB302は、図1に示したテキストデータDB112に相当する。計算機301は、文書DB302内の複数の文を分類して複数の文集合303−1〜303−nにまとめる。端末14は、いずれかの文集合303−iを選択して、計算機301に与える。
<計算機301のハードウェア構成例>
図4は、図3に示した計算機301のハードウェア構成例を示すブロック図である。計算機301は、プロセッサ410とメモリ420とローカルファイルシステム430と入力装置440と出力装置450とネットワークデバイス460とバス470を有する。プロセッサ410〜ネットワークデバイス460は、バス470によって接続される。また、ローカルファイルシステム430とは、計算機301に内蔵ないし外部に接続された書き換え可能な記憶領域を指し、具体的にはハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、RAMディスクなどの記憶装置である。
入力装置440は、キーボード及びマウス、ないしは音声入力装置など、ユーザからの入力を受け付けるインターフェースである。出力装置450は、ディスプレイ装置及びプリンタないしは音声合成装置などのプログラムの実行結果をユーザが読んだり、聞いたりできる形で出力するインターフェースである。ネットワークを介してリモートから操作する場合、入力装置440と出力装置450は省略可能である。
図5は、図4に示した文書DB302の記憶内容例を示す説明図である。文書DB302は、文書を文に分割して記憶するデータベースである。文書は、例えば、図1に示したテキストデータ13である。文書DB302は、文書IDフィールド501と、文IDフィールド502と、本文フィールド503と、を有し、文ごとに、各フィールド501〜503の値を有する。
文書IDフィールド501は、値として文書IDを格納する領域である。文書IDとは、文書を一意に特定する識別情報である。本例では、新聞名と日付と紙面番号を連結した文字列を文書IDとする。
文IDフィールド502は、文IDを格納する領域である。文IDとは、文書IDで特定される文書中の文の位置を一意に特定する識別情報である。本例では、文書の先頭位置からの出現順を文IDとする。
本文フィールド503は、文IDで特定される位置に存在する文を格納する領域である。文書DB302は、文書IDおよび文IDを指定されることで、対応する文を読み出す。なお、文書IDのみが指定され、文IDが指定されなかった場合、同じ文書IDを持つ全ての文が読み出される。また、このような文または文書の取得方法が実現可能であれば、他のデータ構造で文書が保存されてもよい。
図6は、文集合303−iの記憶内容例を示す説明図である。文集合303−iも、文書DB302と同様、文書IDフィールド501と、文IDフィールド502と、本文フィールド503と、を有し、文ごとに、各フィールド501〜503の値を有する。
<文書処理システム300の機能的構成例>
図7は、文書処理システム300の機能的構成例を示すブロック図である。計算機301は、入力部710と、検索部711と、分類部712と、を有する。また、計算機301は、取得部720と、分析部721と、文種判定部722と、テンプレート選択部723と、並び替え処理部724と、算出部725と、妥当性判定部726と、出力部727と、生成部728と、を有する。これらは、具体的には、たとえば、メモリ420に記憶されたプログラムをプロセッサ410に実行させることでその機能を実現する。また、計算機301は、争点オントロジ情報701と、テンプレートDB702と、争点連鎖モデル703と、訓練文書DB704と、を格納する。これらは、具体的には、たとえば、KVS(Key Value Store)やリレーショナルデータベース、または図4に示したローカルファイルシステム430により実現する。
(事前処理)
まず、事前処理について説明する。事前処理とは、文書DB302内の文書に存在する文を複数の文集合303−1〜303−nに分類しておく処理である。事前処理は、具体的には、たとえば、図1に示した入力部102、議題解析部103および検索部104に相当する。入力部102、議題解析部103および検索部104は、データ管理システム101と連携して実行される。事前処理では、入力部710と、検索部711と、分類部712と、が用いられる。
入力部710は、端末14からテーマ表現となる単語の入力を受け付ける。たとえば、入力部710は、「ジャンクフード」といったテーマ表現を示す単語の入力を受け付ける。
検索部711は、入力部710からのクエリの入力を受け付ける。クエリは、たとえば、上述した「ジャンクフード」などのテーマ表現である。検索部711は、文書DB302からクエリに関連する文を検索する。クエリに関連する文とは、クエリであるテーマ表現の文字列を含む文である。
分類部712は、検索結果であるさまざまな話題や文脈を含む文を、似た話題の文としてまとめなおす。これにより、話題に対応する文集合303−iが生成される。検索結果の話題が複数あった場合には、話題の数n分の文集合303−1〜303−nが得られる。
分類部712は、たとえば、機械学習を用いて文を分類する。機械学習の例としては、Bag−of−words表現を用いたk−means法がある。Bag−of−words表現とは、テキストに単語がいくつ含まれるか、という情報だけでテキストを数値的に表現する方法である。Bag−of−words表現では、辞書の語彙数だけの次元をもつベクトルが生成される。各次元には対応する単語の出現頻度が記録される。
k−means法は、bag−of−wordsの数値ベクトルを用いてテキスト間の類似性を比較することで、あらかじめ決められた個数のクラスタにテキストをクラスタリングする。また、別の機械学習の例としては、潜在意味解析や確率的潜在意味解析、潜在的ディリクレ配分法などのトピックモデルと呼ばれる方法によっても文を分類することができる。
(並び替え処理)
つぎに、並び替え処理について説明する。並び替え処理とは、複数の文を並び替えることにより、一貫性のある論述文として出力する処理である。並び替え処理は、具体的には、たとえば、図1に示した争点決定部105〜文並び替え部107に相当する。争点決定部105〜107は、データ管理システム101と連携して実行される。並び替え処理では、取得部720と、分析部721と、文種判定部722と、テンプレート選択部723と、並び替え処理部724と、算出部725と、妥当性判定部726と、出力部727と、生成部728と、争点オントロジ情報701と、テンプレートDB702と、争点連鎖モデル703と、訓練文書DB704と、が用いられる。
取得部720は、端末14からテーマとなる文字列の入力を受け付ける。ここで入力されるテーマは、たとえば、『ジャンクフードは健康に悪い。』といったテーマを示す文である。また、取得部720は、端末14から文集合303−i群のいずれかの文集合303−iを取得する。
分析部721は、テーマ表現特定部731により、入力されたテーマからテーマ表現を特定する。テーマ表現特定部731は、具体的には、たとえば、上述したルールに基づく方法または機械学習に基づく方法により、テーマからテーマ表現を特定する。たとえば、テーマが『ジャンクフードは健康に悪い。』の場合、「ジャンクフード」がテーマ表現として特定される。ルールに基づく方法の場合、テーマ表現用の辞書テーブルが用いられる。当該辞書テーブルには、テーマ表現を示す単語が格納されている。テーマ表現を示す単語は、文集合303−iの分類単位である話題ごとに格納されてもよい。この場合、取得部720によって取得された文集合303−iの話題に対応する単語がテーマ表現の特定対象となる。
また、並び替え処理では、テーマ表現特定部731は、取得部720によって取得された文集合303−iの各文において、テーマから特定したテーマ表現に一致する単語がある場合には、文集合303−iの文中の当該単語にアノテーションとしてタグを付与する。具体的には、たとえば、テーマ表現が「ジャンクフード」の場合において、『ジャンクフードは、栄養バランスを著しく欠いた食品である。』という文のうち「ジャンクフード」がテーマ表現に一致する。したがって、『<theme theme−id“健康”>ジャンクフード</theme>は、栄養バランスを著しく欠く。』のように、テーマ表現特定部731は、「ジャンクフード」にthemeタグを示すタグをアノテーションとして付与する。theme−id“健康”は属性値であり、テーマ表現に対応する話題である。
また、機械学習の場合は、テーマ表現特定部731は、上位概念や下位概念などテーマ表現に関連する具体的な語句も特定する。たとえば、テーマ表現が「ジャンクフード」の場合、上位概念として「食品」、下位概念として「ファーストフード」や「ソフトドリンク」が文集合303−iの各文から特定される。
分析部721は、争点表現特定部732により、取得された文集合303−iの各文から争点表現を特定する。争点表現特定部732は、具体的には、たとえば、上述したルールに基づく方法または機械学習に基づく方法により、文集合303−iの各文から争点表現を特定する。争点表現特定部732は、あらかじめ用意された辞書テーブルを用いる。辞書テーブルには、争点表現である単語が格納されている。辞書テーブルとしては、たとえば、争点オントロジ情報701が用いられる。
図8は、争点オントロジ情報701のデータ構造例を示す説明図である。争点オントロジ情報701は、争点フィールド801と争点表現フィールド802とを有し、エントリごとに争点と争点表現との対応関係を示す。争点フィールド801は、争点を格納する領域である。争点表現フィールド802は、争点の下位概念である争点表現を格納する領域である。争点表現特定部732は、争点オントロジ情報701の争点表現に一致する単語を争点表現として、文集合303−iの各文から特定する。
また、機械学習に基づく方法が適用される場合、争点表現特定部732は、たとえば、学習モデルにより、文集合303−iの各文の中から争点表現に該当する語句を特定する。
また、争点表現特定部732は、取得部720によって取得された文集合303−iの各文において、特定した争点表現に一致する単語がある場合には、当該単語にアノテーションとしてタグを付与する。具体的には、たとえば、「危険ドラッグ」が争点表現である場合、『日本は、危険ドラッグを禁止した。』という文について、『日本は、<issue issue−id“健康”>危険ドラッグ</issue>を禁止した。』のように、争点表現特定部732は、「危険ドラッグ」にissueタグを、アノテーションとして付与する。issue−id“健康”は属性値であり、争点表現に対応する争点である。
なお、後述するが、issueタグについては、生成部728が争点連鎖モデル703を生成する際に付与される場合がある。したがって、この場合、争点表現特定部732は、単に付与済みのissueタグに挟まれている文字列を争点表現として特定すればよい。
分析部721は、肯定・否定表現特定部733により、テーマ表現や争点表現を肯定する肯定表現またはテーマ表現や争点表現を否定する否定表現を、テーマや文集合303−iの各文から特定する。肯定・否定表現特定部733は、具体的には、たとえば、上述したルールに基づく方法または機械学習に基づく方法により、テーマや文集合303−iの各文から肯定・否定表現を特定する。肯定・否定表現特定部733は、あらかじめ用意された辞書テーブルを用いる。辞書テーブルには、肯定表現および否定表現を示す単語が肯定または否定という属性と関連付けられて格納されている。具体的には、たとえば、肯定・否定表現特定部733は、ある文に争点表現が存在する場合、当該争点表現の係り受け先となる語句を特定し、特定した語句を辞書テーブルで検索する。肯定・否定表現特定部733は、一致する語句が辞書テーブルにある場合、当該語句の属性(肯定または否定)を特定する。
たとえば、『ジャンクフードは<issue issue−id“健康”>健康</issue>に悪い。』という文の場合、「健康」が争点である。そして、「健康」の係り受け先となる「悪い」が否定の属性付きで辞書テーブルに格納されている場合、肯定・否定表現特定部733は、「悪い」を否定表現として特定する。
また、機械学習に基づく方法が適用される場合、肯定・否定表現特定部733は、たとえば、学習モデルにより、争点が存在する文の中から、肯定表現または否定表現に分類された語句(たとえば、「禁止」)を特定する。
そして、肯定・否定表現特定部733は、『ジャンクフードは<issue issue−id“健康”>健康</issue>に悪い。』という文に、アノテーションを付与して、『ジャンクフードは<issue issue−id“健康”>健康</issue>に<negative>悪い</negative>。』とする。
分析部721は、促進・抑制表現特定部734により、文集合303−iの各文のテーマ表現が促進表現または抑制表現のいずれに該当するかを特定する。促進・抑制表現特定部734は、具体的には、たとえば、上述したルールに基づく方法または機械学習に基づく方法により、テーマや文集合303−iの各文からテーマ表現に対する促進・抑制表現を特定する。促進・抑制表現特定部734は、あらかじめ用意された辞書テーブルを用いる。辞書テーブルには、促進表現および抑制表現を示す単語が促進または抑制という属性と関連付けられて格納されている。具体的には、たとえば、促進・抑制表現特定部734は、ある文にテーマ表現が存在する場合、当該テーマ表現の述部を特定し、当該述部に含まれる語句が促進表現であるか抑制表現であるかを、辞書テーブルを参照して判断する。
たとえば、『<theme theme−id“健康”>ジャンクフード</theme>は栄養バランスを著しく欠く。』という文の場合、テーマ表現「ジャンクフード」の述部は、「栄養バランスを著しく欠く」である。この場合、辞書テーブルに抑制表現として「欠く」が格納されていれば、テーマ表現「ジャンクフード」が「栄養バランス」を抑制するという関係を特定することができる。
そして、促進・抑制表現特定部734は、『<theme theme−id“健康”>ジャンクフード</theme>は栄養バランスを著しく欠く。』という文に、アノテーションを付与して、『<theme theme−id“健康”>ジャンクフード</theme>は栄養バランスを著しく<suppress>欠く</suppress>。』とする。
分析部721は、権威特定部735により、文集合303−iの各文から権威を示す語句を特定する。権威を示す語句は、文の発言主体を示し、たとえば、組織名や人名である。権威特定部735は、組織名および人名(または人名の末尾につく「議員」や「氏」といった敬称などの接尾語でもよい)と権威を示す属性とを関連付けた辞書テーブルを用いる。権威特定部735は、この辞書テーブルを参照して、文集合303−iの各文から権威を示す語句を特定する。
たとえば、『「ファーストフードやソフトドリンクに新たに課税することを検討している」とA議員は述べた。』という文の場合、権威特定部735は、人名である「A議員」を権威として特定する。より具体的には、単に組織名や人名を特定するのではなく、組織名や人名の述語が「述べた」や「示した」といった発言したことを示す動詞である場合に、権威として特定することとしてもよい。この場合、権威特定部735は、権威を示す語句にアノテーションを付与する。たとえば、『「ファーストフードやソフトドリンクに新たに課税することを検討している」とA議員は述べた。』という文の場合、『「ファーストフードやソフトドリンクに新たに課税することを検討している」と<authority>A議員</authority>は述べた。』となる。
図9は、文分析結果の例1を示す説明図である。文分析結果900は、一例としてテーブル形式で表現される。文分析結果900は、項番フィールド901と、文フィールド902と、争点フィールド903と、肯定・否定フィールド904と、促進・抑制フィールド905と、権威フィールド906と、文種フィールド907と、を有し、各フィールド901〜907の値の組み合わせが、1つの文のエントリを構成する。なお、文には、分析部721でアノテーションとしてタグが付与されているため、文内の争点、肯定表現、否定表現、促進表現、抑制表現、権威が特定可能である。
項番フィールド901は、項番を格納する領域である。項番は、分析部721により分析された文を一意に特定する識別情報である。文フィールド902は、分析部721により分析された文を格納する領域である。争点フィールド903は、文フィールド902の文に含まれる争点を格納するシールドである。文に争点ではなく争点表現が記載されている場合には、issueタグの属性(issue−id)である争点が格納される。
肯定・否定フィールド904は、文フィールド902の文における争点に対する肯定表現または否定表現の存否を示す情報を格納する領域である。肯定表現(positiveタグ)が存在する場合は「肯定」、否定表現(negativeタグ)が存在する場合は「否定」、いずれも存在しない場合は、「なし」が格納される。
促進・抑制フィールド905は、文フィールド902の文におけるテーマ表現に対する促進表現、抑制表現の存否を示す情報を格納する領域である。テーマ表現が、ある対象を「促進している」場合には「促進」、テーマ表現がある対象に「促進されている」場合には「被促進」が格納される。抑制・被抑制についても同様である。
文種フィールド907は、文フィールド902の文の文種を格納する領域である。文種フィールド907の値である文種は、文種判定部722によって格納される。
図7に戻り、文種判定部722は、分析部721によって分析された各文の文種を判定する。文種とは、たとえば、主張、理由、事例、現状説明、主張の重要性、引用などの文の種類である。文種は、文の修辞的な特徴に基づいて定められる。たとえば、並べ替え後の文がどの順番で配置されるか、という観点で設定される。文種は、後述するテンプレートで利用される。このような特徴を持つため、文種の設定は、生成したい論述文に依存する。
文種判定部722は、ルールに基づく方法または機械学習に基づく方法を用いて文種を判定する。ルールに基づく方法の場合、文種判定部722は、辞書テーブルを用いる。辞書テーブルには、文種ごとに適切なルールが関連付けられる。たとえば、主張という文種の場合、テーマ表現に対する肯定または否定の判断を述べている文が主張文として利用できる。したがって、『テーマ表現が肯定または否定の対象になっている文を文種:主張とする』というルールが設定される。また、たとえば、『争点に対する否定表現を促進する内容である文を文種:理由とする』というルールが設定されてもよい。また、『争点に対する肯定表現や否定表現がなく、テーマ表現に対する促進表現や抑制表現もなく、権威を示す語句が存在する文を文種:事例とする』というルールが設定されてもよい。
機械学習に基づく方法の場合、事前に各文種に人手で振り分けた文を訓練データとして用意し、計算機301が文種判定モデルを作成する。具体的には、文種判定部722は、訓練データを分析部721に与えて、訓練データについてテーマ表現、争点、肯定・否定表現、促進・抑制関係を特徴として数値ベクトルを生成する。計算機301は、この数値ベクトルをSVMやロジスティック回帰に与えることにより、数値ベクトルに対応する文種を推定する文種判定モデルを作成する。
文種判定部722は、文集合303−iの各文について、訓練データと同様、分析部721によって特定されたテーマ表現、争点、肯定・否定表現、促進・抑制関係を特徴として数値ベクトルを生成する。文種判定部722は、生成した数値ベクトルを文種判定モデルに与えて、該当する文種を判定する。
図10は、文分析結果900の例2を示す説明図である。図10は、図9の文分析結果900において文種フィールド907の値である文種が格納された状態を示す。
図7に戻り、テンプレート選択部723は、テンプレートDB702からいずれかのテンプレートを選択する。テンプレートは、文の修辞的な並べ方を指定する情報である。たとえば、まず主張を述べ、次にその理由を述べ、最後に事例を紹介する、という多くの場合に共通する形式的な順序がテンプレートに規定される。テンプレートは複数のスロットを持つ。スロットとは、文を入れるべき空欄のことを意味する。一つのスロットには、一つの文種が指定される。文を入れる際には、文種にあった文のみが入力可能である。
また、各スロットは、重要度と必須かどうかというプロパティを持つ。重要度は、スロット間の相対的な重要性を表す。主張や理由のようにその文を変更する論旨が大きく変わってしまう主要なスロットに対しては大きな重要度を指定し、2番目ないしは3番目の事例のようにその文がなくても論旨が大きく変わらないスロットに対しては、重要度を低く設定する。また、必須かどうかを示すプロパティでは、そのスロットが埋まっていない場合には、意味のない出力文書であることを設定することができる。
図11は、テンプレートのデータ構造例を示す説明図である。図11では、例として2種類のテンプレートT1、T2(以下、総称してテンプレートT)を示す。テンプレートTは一例としてテーブル形式で表現される。テンプレートTは、あらかじめ人手で設定される情報である。
テンプレートTは、順序フィールド1101と、文種フィールド1102と、重要度フィールド1103と、必須フィールド1104と、スロット1105と、を有する。順序フィールド1101は、適用される文の順序を示す値を昇順に格納する領域である。文は、順序の値で示される順番で並び替えられる。
文種フィールド1102は、適用される文の文種を格納する領域である。重要度フィールド1103は、文種の重要度を格納する領域である。重要度は、後述する算出部725において、評価値の計算に用いられる。必須フィールド1104は、文種が必須か否かを示す情報を格納する領域である。文種が必須である場合は「True」、必須でない場合は「False」が格納される。スロット1105は、各エントリに対応する文を埋め込む領域である。
テンプレートT1は、最大で3個の文を並べるためのテンプレートTであり、最初の文の文種が「主張」、2番目の文の文種が「理由」、最後の文の文種が「事例」となるように並び替えられる。なお、最後の文の文種「事例」の必須フィールド1104の値が「False」であるため、最後の文は欠落されてもよい。
テンプレートT2は、最大で5個の文を並べるためのテンプレートTであり、最初の文の文種が「主張」、2番目の文の文種が「現状説明」、3番目の文の文種が「主張の重要性」、4番目および5番目の文の文種が「引用」となるように並び替えられる。なお、2番目〜5番目の文必須フィールド1104の値が「False」であるため、欠落されてもよい。
なお、テンプレート選択部723は、あらかじめ選択したいテンプレートTの特徴がユーザにより設定されている場合には、当該特徴に該当するテンプレートTのみを選択する。たとえば、文種の主張、理由および事例がすべて「True」に設定されているテンプレートTのみなど、自由に設定することができる。
並び替え処理部724は、組み合わせ処理部741と争点選択部742とを含む。組み合わせ処理部741は、選択したテンプレートTの各スロット1105に文を埋め込む。組み合わせ処理部741は、スロット1105を埋める際に、争点選択部742を呼び出す。
争点選択部742は、現在までにスロット1105に埋め込まれた文の並びとテンプレートTと文集合303−iとを用いて、争点を含む文を文集合303−iから選択する。争点選択部742は、争点連鎖モデル703を参照して、争点を含む文を文集合303−iから選択する。
図12は、争点連鎖モデル703のデータ構造例を示す説明図である。争点連鎖モデル703は、文の内容についての連続性を整理した構造化データである。争点連鎖モデル703は、内容的な連続状況を整理した構造化データである。争点連鎖モデル703は、ある文で、Aという争点が取り上げられていたとき、次の文で取り上げられやすい争点は何かということを推測するために用いられる。争点連鎖モデル703は、生成部728により生成される。生成部728による生成処理の詳細は後述する。
争点連鎖モデル703は、先行文の争点フィールド1201と、後続文の争点フィールド1202と、所在情報フィールド1203と、頻度フィールド1204と、を有し、各フィールド1201〜1204の値の組み合わせにより争点の連鎖のエントリを規定する。ここで、先行文と後続文は、連続する2つの文であり、先行文の次に後続文が出現する。
先行文の争点フィールド1201は、先行文の争点を格納する領域である。先行文の争点とは、先行文に含まれる争点である。
後続文の争点フィールド1202は、後続文の争点を格納する領域である。後続文の争点は、後続文に含まれている争点である。
所在情報フィールド1203は、先行文の争点および後続文の争点の所在情報を格納する領域である。所在情報は、文書IDと文IDとの組み合わせで構成される。文書IDは、先行文および後続文が存在する文書を一意に特定する識別情報である。文IDは、当該文書内で当該先行文および後続文を一意に特定する識別情報である。文IDは、たとえば、文書IDにおける文書での先行文(後続文でもよい)の出現順である。先行文の争点および後続文の争点の同一の組み合わせが複数存在する場合には、組み合わせごとに所在情報が格納される。
頻度フィールド1204は、頻度を格納する領域である。頻度は、先行文の争点および後続文の争点の組み合わせが出現する回数である。具体的には、たとえば、所在情報に格納された組み合わせの数となる。なお、頻度は、確率で表現されてもよい。確率で表現する場合は、争点連鎖モデル703の頻度フィールド1204の値の総和を分母とし、各エントリの所在情報の数を分子とした値が、各エントリの確率となる。
争点連鎖モデル703の一行目のエントリは、母集団となる文書の集合において、先行文の争点「健康」および後続文の争点「税金」が、N新聞X年Y月Z日1面の10番目の文(先行文)に出現しており、また、N新聞P年Q月R日8面の42番目の文(先行文)に出現していることを示す。また、出現回数が2であるため、頻度は「2」となる。
図13は、争点の連鎖状況を示す説明図である。図13では、例として2つの文を挙げる。文1301,1302は、同一の文書の連続する文である。文1301は「ジャンクフードは、健康に害を及ぼす可能性がある。」という文であり、文1302は「政府は健康増進施策のため、ジャンクフードに課税することを検討している。」という文である。
文1301の争点表現は「健康」であり、文2の争点表現は「健康」と「課税」である。これを争点にマッピングすると、文1301の争点は「健康」であり、文1302の争点は「健康」と「税金」となる。この例では、「健康」を増進するための手段として「税金」を用いたため話題も「健康」から健康に関する「税金」の話題に転換したことが分かる。「健康」と「税金」は、語義的には遠い関係にあるため、こうした話題の転換は、語義の類似性ではモデル化することは難しい。争点連鎖モデル703では、話題の転換を直接文の並び替えに利用するためのモデルである。
図14は、争点連鎖モデル703の利用例を示す説明図である。図14では、争点連鎖モデル703の利用例を、状態遷移図を用いて説明する。状態遷移図の円図形はノードであり、争点を示す。状態遷移図の矢印はエッジであり、ノード間の遷移とその重みを示す。重みは、図12に示した頻度である。文1〜文Nは、文集合303−iから選択される文であり、組み合わせ処理部741は、開始端から終了端に向かって文1、文2、…、文Nの順に選択し、選択テンプレートTのスロット1105に追加する。なお、Nは選択テンプレートTのスロット1105数である。
たとえば、文1では、「健康」を争点とする文が選択されたとする。なお、文1を選択する場合、争点選択部742は、文集合303−iから順次文を文1として選択してもよく、特定の争点を含む文に限定して選択してもよい。特定の争点とは、あらかじめユーザに指定された争点であってもよく、文集合303−iで出現回数が所定回数以上の争点であってもよい。争点選択部742は、文1の「健康」を選択した場合に、争点連鎖モデル703において先行文の争点フィールド801の値が「健康」であるエントリを特定する。
文2を選択する場合、争点選択部742は、文1の「健康」のノードから出るエッジをたどって次の争点を選択する。具体的には、争点選択部742は、先行文の争点フィールド1201の値が「健康」であるエントリを参照して、後続文の争点フィールド1202の値を特定する。総当たりで探索する場合は、争点選択部742は、遷移先となる後続文の争点フィールド1202の値をそれぞれ特定して、終了端まで探索する。
また、争点選択部742は、頻度フィールド1204の値を参照して、特定の頻度となる後続文の争点を選択してもよい。特定の頻度とは、遷移元となる先行文の争点から遷移先となる後続文の争点への頻度のうち最大値でもよく、所定値以上の頻度でもよい。最大値を選択する場合は、たとえば、動的計画法が用いられる。また、所定値は、頻度フィールド1204の値の平均値や中央値でもよく、管理者が任意に設定した値でもよい。これにより、争点の遷移の起こりやすい文の組み合わせが優先されるようになる。
このようにして、争点選択部742は、i(i=1〜N−1)番目の文の争点とi+1番目の争点を選択する。なお、文の数が限られているため、途中で合致する遷移先ノードがなくなってしまう場合も考えられる。その場合には、争点選択部742は、当該遷移先ノードを通行禁止ノードに設定し、バックトラックして再度探索を続けることができる。
算出部725は、組み合わせ処理部741によって選択テンプレートTのスロット1105に埋められた文の組み合わせの並びを評価する評価値を算出する。評価の観点としては、たとえば、選択テンプレートTの充足状況が挙げられる。選択テンプレートTの充足状況に関する評価値は、選択テンプレートTのスロット1105が何個中何個埋められているかを示す値である。たとえば、3個中2個埋められている場合は、2/3となる。また、各スロット1105には重要度が対応付けられているため、算出部は、重要度を重みとして分子の値を重み付き線形和で求めてもよい。たとえば、テンプレートT1のすべてのスロット1105が埋められている場合、選択テンプレートT1の充足状況に関する評価値は、3/3ではなく、(1×1+1×1+1×0.8)/3=2.8/3となる。
また、選択テンプレートTの必須フィールド1104のスロット1105が空の場合には、算出部725は、当該文の組み合わせに対し不十分フラグを設定する。算出部725は、選択テンプレートTの充足状況に関する評価値を算出せずに、不十分フラグの設定を行うこととしてもよい。
また、評価の観点として、選択テンプレートTに埋め込まれた隣り合う文の関連性を示す評価値が挙げられる。関連性を示す評価値とは、遷移元となる先行文の争点から遷移先となる後続文の争点への頻度の総和である。
また、算出部725は、不十分フラグが設定されなかった場合、充足状況に関する評価値と関連性を示す評価値との重み付き線形和を評価値として算出してもよい。なお、重みは管理者が任意に設定することができる。
妥当性判定部726は、算出部725によって算出された評価値に基づいて、並び替え処理を終了するか否かを判定する。すなわち、妥当性判定部726は、判定対象となる選択テンプレートTに埋め込まれた文の組み合わせの妥当性を判定する。具体的には、たとえば、妥当性判定部726は、判定対象となる選択テンプレートTに埋め込まれた文の組み合わせについて、不十分フラグが設定されているか否かを判定する。不十分フラグが設定されている場合は、テンプレートTを再選択する必要があるため、並び替え処理を終了しないと判定する。
また、妥当性判定部726は、判定対象となる選択テンプレートTに埋め込まれた文の組み合わせについて、不十分フラグが設定されていない場合には、評価値を基準にして、並び替え処理を終了するか否かを判定する。具体的には、たとえば、妥当性判定部726は、選択テンプレートTの充足状況に関する評価値がしきい値以上である場合は、争点の連鎖に一貫性があるとして、並び替え処理の終了と判定する。
また、妥当性判定部726は、関連性を示す評価値がしきい値以上である場合は、争点の連鎖に一貫性があるとして、並び替え処理の終了と判定する。なお、妥当性判定部726は、充足状況に関する評価値と関連性を示す評価値とのうち、少なくともいずれか一方の評価値を用いて、終了判定をおこなう。
妥当性判定部726は、判定対象となる評価値がしきい値以上である場合は、争点の連鎖に一貫性があるとして、並び替え処理の終了と判定してもよい。また、両評価値を用いる場合は、両評価値のうち少なくとも一方で終了すべきでないと判定された場合は、妥当性判定部726は、争点の連鎖に一貫性がないとして、並び替え処理を終了しないと判定してもよい。また、妥当性判定部726は、両評価値の重みづけ線形和がしきい値以上である場合は、争点の連鎖に一貫性があるとして、並び替え処理の終了と判定してもよい。いずれの場合でも、終了しないと判定された場合、テンプレート選択部723は、未選択のテンプレートTを選択することになる。
出力部727は、妥当性判定部726による判定結果を出力する。具体的には、たとえば、選択テンプレートTに埋め込まれた文の組み合わせ、すなわち、論述文を出力する。出力方式としては、たとえば、出力装置への出力(ディスプレイでの表示やプリンタでの印刷出力、音声合成による音声出力)、ネットワークデバイスを介して他の装置(たとえば、端末14)への送信、ローカルファイルシステムへの格納が含まれる。
テンプレート選択部723において、選択すべきテンプレートTがない場合、たとえば、未選択のテンプレートTがテンプレートDB702にない場合や、選択回数が所定回数を超過した場合には、該当する論述文がないこととなり、その旨の出力がされる。
図15は、出力部727からの出力情報の一例を示す説明図である。出力情報1500は、図10の分析結果を組み合わせ処理部741によって並び替えた結果を示す情報である。図15の出力情報1500は、図10の分析結果について、図11のテンプレートT1を適用した例である。
図7に戻り、生成部728は、訓練文書DB704を用いて争点連鎖モデル703を生成する。生成部728の具体的構成例について図を用いて説明する。
図16は、生成部728の詳細な機能的構成例を示すブロック図である。生成部728は、争点抽出モデル生成部1601と、争点同定モデル生成部1602と、争点アノテーション付与部1603と、争点連鎖解析部1604と、を有する。
訓練文書DB703は、訓練文書を格納するデータベースである。訓練文書は、人手で文書内の争点表現にアノテーションが付与された文書である。ここで、アノテーション付与とは、争点表現に相当する部分の開始文字位置と終了文字位置を記録する作業を意味する。たとえば、アノテーション付与は、たとえば、XML(Extensible Markup Language)の記法を用いて、争点表現を<issue>〜</issue>というissueタグで囲む作業である。
アノテーションの属性は、<issue issue−id=“健康”>〜</issue>というように、issueタグの属性として争点表現が属する争点を記録する。なお、属性値”健康”は争点間で一意に区別できるようにする必要があるため、実際にはURI(Uniform Resource Identifier)等の識別子の形式に従って一意な名称が付けられる。
争点抽出モデル生成部1601は、争点抽出モデル1610を生成する。争点抽出モデル1610は、訓練文書内の文中の部分文字列が争点表現であれば、その部分を争点表現として抽出するルールまたはパターンである。具体的には、たとえば、争点抽出モデル生成部1601は、争点オントロジ情報701を参照し、争点オントロジ情報701の争点表現に一致する文字列がある場合、issueタグをアノテーションとして付与する。この場合、issueタグの属性は、争点オントロジ情報701の争点が設定される。
たとえば、訓練文書内の文に「ジャンクフード」という文字列が出現した場合、争点抽出モデル生成部1601は、「ジャンクフード」にアノテーションを付与して、<issue issue−id=“健康”>ジャンクフード</issue>」とする。issue−idの「健康」は、争点オントロジ情報701において、争点表現「ジャンクフード」の争点である。争点連鎖モデル703をルールに基づく方法で生成する場合、争点抽出モデル1610は、アノテーション付きの争点表現を含む訓練文書の集合となる。なお、図示しないが、争点抽出モデル生成部1601は、アノテーション付きの争点表現に、当該争点表現の所在情報(訓練文書の文書IDおよび争点表現を含む文の文ID)を関連付けておく。
また、機械学習に基づく方法の場合、争点抽出モデル生成部1601は、上述したアノテーション付きの争点表現を含む訓練文書内の文字列を、特徴抽出により数値ベクトルの系列に変換する。まず、争点抽出モデル生成部1601は、文に対して形態素解析する。そして、各形態素を系列のノードとする。次に、争点抽出モデル生成部1601は、各形態素の表層文字列や品詞などをリストアップする。たとえば、訓練文書中に表層文字列が合計Vs種類、品詞の種類が合計Vp種類あったとする。
争点抽出モデル生成部1601は、これらの各表層文字列と各品詞を順に辞書テーブルのキーとして追加し、その値として辞書テーブルへの登録順に自然数を一つずつ重複のないように割り当てる。争点抽出モデル生成部1601は、この辞書テーブルを用いて、各ノードの表層文字列と品詞を数値に変換する。すると、各ノードは、表層文字列と品詞に相当する次元を「1」として、それ以外の次元を「0」とする数値ベクトルとして表現される。
この数値ベクトルに対して、争点であるかどうかを表すラベルを組にする。争点抽出モデル生成部1601は、ノードが争点であれば(アノテーションが付与されていれば)、issueラベルを、争点でなければO(other)ラベルを与える。また、別のラベルの与え方としては、複合語の争点を仮定したとき、争点の開始位置であるノードにB−issueラベルを、中間位置であるノードにI−issueラベルを、というように、issueラベルを区別する方法もある。この変種としては、さらに終了位置をE−issueラベル、単一ノードの争点をU−issueラベルとして区別する方法もある。争点抽出モデル生成部1601は、この数値ベクトル列とラベルの組を、SVMやCRFに入力して学習させる。この機械学習の結果出力されるモデルが、争点抽出モデル1610である。争点抽出モデル1610を適用することにより、与えられる文字列がどの争点に属する争点表現であるかを特定することができる。
争点同定モデル生成部1602は、争点同定モデル1620を生成する。争点同定モデル1620は、対象とする争点表現が争点オントロジ情報701のどのエントリに相当するかを関連付けるモデルである。具体的な方法としては、まず、単純な場合として、争点同定モデル生成部1602は、対象とする争点表現が、争点オントロジ情報701の中で1つのエントリにだけ出現する場合には、そのエントリと関連付けるルールを生成する。次に、争点同定モデル生成部1602は、対象とする争点表現が、争点オントロジ情報701の複数のエントリに出現する場合には、周囲の文脈から曖昧性を解消して、いずれかのエントリに関連付けるルールを生成する。具体的には、たとえば、自然言語処理の語義曖昧性解消やエンティティ同定、書誌同定と同様の問題であり、公知のそれらの手法を利用することで曖昧性を解消することができる。これらのルールの集合が争点同定モデル1620である。
争点アノテーション付与部1603は、争点抽出モデル1610を用いて、文書DB302に蓄積された文書内の文から争点表現を抽出する。具体的には、たとえば、争点アノテーション付与部1603は、争点抽出モデル1610を適用して、文書内の文に含まれる文字列がどの争点に属する争点表現であるかを特定する。次に、争点アノテーション付与部1603は、争点同定モデル1620を用いて、特定された争点表現を争点オントロジ情報701の争点に関連付ける。そして、争点アノテーション付与部1603は、争点表現に該当する文字列にissueタグを付与する。このとき、争点アノテーション付与部1603は、争点オントロジ情報701を参照して、issue−IDとして、争点同定モデル1620を用いて争点表現に関連付けられた争点を設定する。これにより、文書DB302内の文書にアノテーションが付与され、争点アノテーション付き文書群1630が生成される。
争点連鎖解析部1604は、争点アノテーション付き文書群1630の各文書内に連続的に出現する2つの文(先行文と後続文)を組として先行文に出現する争点と後続文に出現する争点との組み合わせとその所在情報を特定する。なお、争点連鎖解析部1604は、文中から争点表現が特定された場合は、争点オントロジ情報701を参照して、争点同定モデル1620を用いて関連付けられた争点に変換する。争点連鎖解析部1604は、同一の組み合わせの出現回数を計数する。そして、争点連鎖解析部1604は、先行文の争点と後続文の争点との組み合わせごとに、その所在情報と頻度である出現回数とを有するエントリを争点連鎖モデル703に追加することにより、図12に示したような争点連鎖モデル703を生成する。
なお、争点連鎖解析部1604は、争点表現を争点としてまとめ上げずに、先行文に出現する争点表現と後続文に出現する争点表現との組み合わせとその所在情報を特定することとしてもよい。
また、争点連鎖解析部1604は、後続文に出現する争点表現を争点に変換するのではなく、後続文と後続文に出現する争点表現との組を、先行文の争点(または争点表現)に関連付けたエントリを保持してもよい。この場合、先行文に出現する争点から後続文のに出現する争点を探索する方法が異なる。この場合の争点連鎖モデル703では先行文に出現する争点が与えられると、後続文と後続文に出現する争点表現との組のリストが返される。当該リストを用いて後続文に出現する争点を決定する場合、争点連鎖解析部1604は、リストからある確率分布に従って争点表現と文の組をサンプリングする。
たとえば、争点連鎖解析部1604は、一様分布に従って事例をサンプリングする際には、リストのエントリを互いに等しい確率でサンプリングし、選ばれた後続文に出現する争点表現を返す。この場合、後続文で多く登場する争点表現が選ばれやすくなるため、頻度でまとめあげたときと同様の効果がある。一方、争点連鎖解析部1604は、各後続文に出現する争点表現とテーマ表現との類似度を計算し、類似度の大きさに比例する確率分布で事例をサンプリングしてもよい。この場合、争点連鎖解析部1604は、テーマ表現との類似度が高い争点表現(争点でもよい)を選択する。これにより、テーマ表現とのつながりを加味して争点表現(争点でもよい)を選択することができる。
<並び替え処理手順例>
図17は、文書処理システム300の計算機301による並び替え処理手順例を示すフローチャートである。なお、並び替え処理前に、人手により、または入力部710、検索部711および分類部712の処理により、文書DB302内の文書群が複数の文集合303−iに分類されており、並び替え処理対象として、任意の文集合303−iが選択されているものとする。
まず、取得部720が、並び替え処理対象の文集合303−iとテーマとを取得する(ステップS1701)。つぎに、分析部721が、取得された文集合303−i内の文ごとに、テーマ表現、争点表現、肯定表現、否定表現、促進表現、抑制表現、および、権威を特定する(ステップS1702)。これにより、図9に示したような文分析結果900が得られる。
そして、文種判定部722が、取得された文集合303−i内の文ごとに、文種を判定する(ステップS1703)。これにより、図10に示したような文分析結果900が得られる。
このあと、テンプレート選択部723が、テンプレートDB702から未選択のテンプレートTを選択する(ステップS1704)。テンプレート選択部723がテンプレートTを選択できない場合(ステップS1705:No)、エラー出力をして終了する(ステップS1706)。たとえば、未選択のテンプレートTがテンプレートDB702にない場合や、選択回数が所定回数を超過した場合には、テンプレート選択部723がテンプレートTを選択できないため、エラー出力をする。
一方、テンプレート選択部723がテンプレートTを選択できた場合(ステップS1705:Yes)、組み合わせ処理部741は、争点選択部742により争点を選択して、選択した争点を含む文を選択テンプレートTのスロット1105に埋め込む(ステップS1707)。
そして、算出部725は、文が埋め込まれた選択テンプレートTについて評価値を算出する(ステップS1708)。このあと、妥当性判定部726が、算出部725によって算出された選択テンプレートTについての評価値に基づいて、並び替え処理を終了するか否かを判定する(ステップS1709)。終了しないと判定した場合(ステップS1709:No)、ステップS1704に戻り、テンプレート選択部723が、テンプレートTの選択を再試行する(ステップS1704)。一方、終了すると判定された場合(ステップS1709:Yes)、出力部727は、妥当性判定部726による判定結果である選択テンプレートTに埋め込まれた文の組み合わせ、すなわち、論述文である出力情報1500を出力する(ステップS1710)。これにより、一連の並び替え処理を終了する。
<並び替え処理の適用例>
ここで、上述した並び替え処理の適用例について説明する。並び替え処理は、たとえば、ディベートの立論システムに実装することができる。
ディベートでのテーマは、いわゆる論題である。たとえば、「ジャンクフードを禁止すべきである。」という論題が挙げられたとする。また、ディベートでのテーマ表現とは、論題の文中に登場する語、及びその関連語を示す。なお、ディベートにおいては、肯定側、否定側の二つの立場があるため、テーマ表現が論題において肯定されているのか、否定されているのかは重要な情報である。そのため、テーマ表現とその肯定・否定の属性の両方がテーマ表現として扱われる。
また、ディベートにおいては、肯定側、否定側の二つの立場があるため、文の中で発言者が明示されている場合に、その発言者を抽出する必要がある。発言者の特定は、たとえば、上述した権威特定部735が実行する。
以下では、ディベートの肯定側立論に適用した場合を例に挙げる。本来、ディベートの立論の場合には、文種として、プラン、用語の定義、現状説明、重要性の説明、解決性の説明などが求められる。肯定側の立場の場合で、それぞれの文種を説明する。
プランとは、論題を実現する具体的な施策を表す文である。たとえば、「所得に上限を設定すべきである。」という論題に対して「年間の所得の上限を1000万円に設定する。」というように具体的に実行可能な施策を示したものがプランである。
用語の定義とは、論題中に現れる語や、立論の際に使用する語の定義文である。前記の例では、「所得」とは「日本に居住する人の所得」を表す、などのように議論の範囲が指定される。
現状説明とは、プランを採用していない現在の状況を表す。たとえば、前記の例の場合では、所得の上限がないために「所得の偏りが大きい」などのデメリットを記述した文である。
並び替え処理をディベートの肯定側立論に適用した場合、計算機301は、肯定側立論のすべてを生成するのではなく、最低限の要素として立場の表明(主張)、その理由、事例となる文を選択し、順に並べることになる。
論題「ジャンクフードを禁止すべきである」が与えられた場合、テーマ表現特定部731は、論題からテーマ表現である「ジャンクフード」を特定する。また、肯定・否定表現特定部733は、論題から肯定表現または否定表現を特定する。この場合、論題に「禁止」が含まれているため、肯定・否定表現特定部733は、否定表現として「禁止」を特定する。したがって、テーマ表現「ジャンクフード」の肯定・否定属性は、「否定」となる。
また、論題に関連する文集合303−iが分析対象としてユーザに選択される。ここでは、トピックが「健康」に分類された文集合303−iが選択されたものとする。
計算機301は、取得部720により、文集合303−iおよびテーマ表現としてジャンクフードの否定を取得する。そのため、並び替え処理では、「ジャンクフード」を「否定」する、主張、理由、例示を示す文を集め、集めた文を主張、理由、例示の順に並べることになる。
分析部721は、文集合303−iの各文に対して、文分析を実行し、図9に示した文分析結果900を得る。図9では、4つの文が列挙される。文の太字の文字列がテーマ表現、下線を引いてある文字列が争点表現である。テーマ表現は、論題中に登場する語だけではなく、その上位、下位語、具体的な語彙も含むため、テーマ表現「ジャンクフード」に対して「ファーストフード」や「ソフトドリンク」もテーマ表現として扱ってもよい。このような類義語については、分析部721が、図示しない類義語の辞書テーブルを参照して特定することになる。また、類義語の辞書テーブルのかわりに、争点オントロジ情報701を用いてもよい。
また、図9において、争点フィールド903では、文中に登場する争点の抽象度が揃えられる。たとえば、争点表現「課税」は上位概念である争点「税金」に、争点表現「肥満」は上位概念である争点「健康」揃えられる。分析部721は、この変換処理を、争点オントロジ情報701を用いて実行する。
肯定・否定フィールド904において、項番3と項番4のエントリに否定が挙げられている。項番3では争点である「健康」の「リスク」について述べている。したがって、肯定・否定表現特定部733は、争点「健康」の係り受け先である「リスク」は、争点「健康」を抑制するため、「リスク」を争点「健康」の否定表現と判定する。一方、争点「健康」の係り受け先が「メリット」など争点「健康」を促進する場合は、「メリット」を争点「健康」の肯定表現と判定する。
促進・抑制フィールド905において、項番2と項番4のエントリにそれぞれ被抑制と促進が挙げられている。ここで、項番2の文では、テーマ表現「ジャンクフード」は、「規制」という抑制表現の受動態での主語、つまり抑制の対象として記述されている。したがって、項番2のエントリにおける促進・抑制フィールド905の値は、「被抑制」となる。また、項番4の文では、テーマ表現「ジャンクフード」が「助長」という促進表現の能動態の主語、つまり促進の動作主体として記述されている。したがって、項番4のエントリにおける促進・抑制フィールド905の値は、「促進」となる。
また、文種判定部722の文種判定処理が実行されることにより、図9の文種フィールド907に文種が登録されて、図10に示した文分析結果900が得られる。ここでは、項番1および項番2のエントリは「事例」、項番3のエントリは「主張」、項番4のエントリは「理由」と判定されたものとする。
項番3の文はテーマ表現の否定という意見を述べているため、「主張」となる。項番4の文は、テーマ表現「ジャンクフード」が争点表現「肥満」という否定表現を促進している、つまり、テーマ表現「ジャンクフード」の悪影響を説明しているため、理由となった。最後に項番1および項番2の文は、テーマ表現「ジャンクフード」に関する肯定・否定表現がなく、テーマ表現「ジャンクフード」が促進・抑制する影響も述べられていない。しかし、項番1および項番2の文から、権威特定部735により「議員」や「政府」という権威の語句が特定される。したがって、文種判定部722は、項番1および項番2の文の文種を「事例」として特定する。
また、テンプレート選択部723は、テンプレートDB702のテンプレートTを選択するが、本例の場合、主張、理由、事例を文種に含むテンプレートT1が選択されると他のテンプレートT(たとえば、「現状説明」や「主張の重要性」が「True」)よりも高い評価値が算出部725により算出されることになる。
また、組み合わせ処理部741は、選択テンプレートTに文を埋め込む。組み合わせ処理部741は、争点連鎖モデル703を参照し、過去に見られた内容の並びを優先して、各文種の中から文を選択し、文を並び変える。並び変えられた文のリストが出力候補となる。
算出部725は、選択テンプレートTの充足状況や関連性を確認する。たとえば、選択テンプレートTがT1である場合、選択テンプレートT1の順序1から順序3のスロット1105が埋まっていること、特に、必須フィールド1104が必須である順序1および順序2のスロット1105が埋まっていることを確認する。算出部725は、各スロット1105の争点の連鎖が争点連鎖モデル703に存在し、かつ、争点の連鎖が「健康」から「健康」、または「健康」から「税金」という頻度の高い関係であることを確認し、評価値を返す。
妥当性判定部726は、たとえば、算出した評価値としきい値とを比較し、閾値以上であれば、終了と判定する。出力部727は、終了と判定された場合に、図15に示したような判定結果である出力情報1500を出力する。これにより、ディベートにおける立論が生成される。
このように、本実施例によれば、論理に一貫性のある出力文を生成することができる。また、対象となる文に、テーマ表現と、争点表現を肯定または否定する肯定・否定表現との間に関係性がある場合は、当該文を「主張」という文種に判定することができる。また、テーマ表現が、肯定・否定表現を促進または抑制する場合や、テーマ表現によって肯定・否定表現が促進または抑制される場合は、当該文を「理由」という文種に判定することができる。また、テーマ表現について肯定・否定表現がなく、かつ、権威が特定される場合は、当該文を「事例」という文種に判定することができる。
また、テンプレートTの各文種に重要度が設定されている場合には、当該文種のスロット1105に埋め込まれた文の組み合わせについて、重要度に基づく評価値を算出することができる。したがって、文の組み合わせがテンプレートTにどの程度従っているかを客観的に判断することができる。
また、争点連鎖モデル703を適用することにより、過去の話題の転換に基づいて文を並べるため、話題が転換する際にも一貫性をもって文を並び変えることができる。また、争点連鎖モデル703の各エントリには連鎖の出現回数である頻度が設定されているため、争点連鎖モデル703の頻度を適用することにより、争点の連鎖が起こりやすい文の組み合わせを選択することができる。したがって、論理に一貫性のある出力文を高精度に生成することができる。また、争点オントロジ情報701を適用することにより、文中の具体的な争点表現を抽象度の高い争点にまとめ上げることができ、文の組み合わせの自由度の向上を図ることができる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。