まず、本発明の理解を容易にするために、本発明の背景と概要を説明する。図1は、本発明に係る意見分析装置が入力として受け付けるデータの例を示す図である。テキストAは意見が大きく変化している例であり、テキストBは意見が変化していない例である。
テキストAとBは、食品Xを使ったダイエット法が広まる原因になった健康情報番組の実験内容に虚偽があったという事実を知り、このダイエット法は効果がない、という否定的な意見を現在持っているという点で共通している。本発明に関連する技術であるテキストの評価極性の判定技術を用いた場合は、どちらのテキストについても食品Xを使ったダイエットに対して否定的である、という同じ解析結果が出力される。
しかし、テキストAの記述者とテキストBの記述者の過去の意見は大きく異なっている。テキストAの記述者は、以前は食品Xダイエットに効果があると考えていて、現在は食品Xダイエットに効果がないと考えており、大きく意見が変化している。一方、テキストBの記述者は、以前から食品Xダイエットに効果がないと考えており、意見は以前から否定的であるため、意見は変化していない。
本発明に係る意見分析装置によれば、テキストAとBのような意見の変化が有る場合と無い場合とを区別できるように、過去の意見からの意見の変化の有無を判定することができる。
以下、本発明の実施の形態を説明する。
<第1の実施の形態>
図2は、本発明の第1の実施の形態に係る意見分析装置100のハードウェア構成図である。図2に示すように、意見分析装置100は、CPU(central processing unit)1と、通信インターフェース(IF)2と、メモリ3と、HDD(ハードディスクドライブ)4と、入力装置5と、出力装置6とを有する。これらの構成要素は、バス7を通して互いに接続されており、データの入出力を行なう。通信IF2は、外部のネットワークに接続するためのインターフェースである。入力装置5は、例えば、キーボードやマウスである。出力装置6は、例えばディスプレイなどである。意見分析装置100は、CPU1が、メモリ3又はHDD4等の記憶媒体に記憶されているプログラムを実行することにより実現される。
図3は、本発明の第1の実施の形態に係る意見分析装置100の機能構成を示すブロック図である。図3に示すように、意見分析装置100は、意見変化手がかり表現抽出部10と意見変化判定部30とを有する。また、意見分析装置100は、例えばLAN(Local Area Network)又はWAN(Wide Area Network)を介して意見変化手がかり表現辞書20と接続されている。なお、意見分析装置100は、意見変化手がかり表現辞書20を有していても良い。この場合、意見変化手がかり表現辞書20は、後述する意見変化手がかり表現を辞書データとして記憶する記憶部であり、メモリ3やHDD4などの記憶装置により実現されていても良い。
意見分析装置100は、入力としてテキストのデータを受け付ける。このテキストは、一人の記述者の意見を含む文章であると見なせるものである。具体例としては、例えば、インターネット上に公開されているブログ記事、同じくWebページ、及び電子メールなどから取得されたテキストデータが挙げられる。
なお、テキストの記述者とは、文章中の意見を保持している主体を指すものとする。ブログ記事などでは、テキストを記述した者が、そのまま文章中の意見を保持している主体と見なせることが多い。一方、議事録等、出席者Aの意見を他の出席者Bが記述したテキストも考えられるが、この場合は出席者Aを記述者と見なしても良い。このテキストは、出席者Aの意見を記述したものであり、出席者Bの意見を記述したものではないからである。
入力されるテキストのデータ(以下、単に、テキストとも呼ぶ)は、長い文書のうち、特に判定対象としたい意見が書かれている周辺の文字列のデータを切り出したデータでも良い。判定対象とした意見が書かれている周辺の文字列のみを入力テキストとすることで、判定対象とした意見と無関係な情報を排除して、判定の正確さを高めることができる。
入力されるテキストは、入力前に機械処理や人間の手で加工されたテキストでも良い。例えば、入力されるテキストは、意見文判定技術や評判抽出技術を用いて見つけた意見を含む文の前後を切り出したテキストでも良い。
本実施の形態では、意見分析装置100へ入力されるテキストは、必要があれば上記のような前処理を施しており、テキストには単独の記述者がいることを前提とする。そのテキストを人間が読めば、その記述者の意見について知ることができると期待できるテキストである。
ブログ記事など、多くの文書では前処理を行わなくても単独の記述者を仮定して問題ない。また、テキストの一部が異なる記述者によるものであっても、テキストの大半が単独の記述者によるものであれば問題ない。
意見分析装置100において、意見変化手がかり表現抽出部10は、入力されたテキストから、意見変化手がかり表現を抽出し表現データとして出力する。この抽出は、例えば、図2に示すCPU1によって実行されてもよい。意見変化手がかり表現とは、その表現がテキストに出現しているとき、そのテキストに含まれる意見が、そのテキストの記述者の過去の意見から変化した意見であるか否かを判定する手がかりになる表現のことである。
意見変化手がかり表現辞書20は、意見変化手がかり表現を辞書データとして記憶する。本実施の形態では、意見変化手がかり表現抽出部10は、意見変化手がかり表現辞書20が記憶している表現を、入力されたテキストから抽出する。
意見変化判定部30は、意見変化手がかり表現抽出部10が抽出した意見変化手がかり表現を用いて、テキストに含まれる意見が、そのテキストの記述者の過去の意見から変化した意見であるか否かを判定する。すなわち、意見変化判定部30は、意見変化手がかり表現に対応する、テキストの記述者の過去の意見からの意見変化の度合いに基づいて、入力されたテキストのデータに含まれる意見が、該テキストの記述者の過去の意見から変化した意見であるか否かを示す判定情報を出力する。
意見変化手がかり表現に対応する意見変化の度合いは、意見変化手がかり表現に関連付けたスコアでもよい。また、意見変化手がかり表現に対応する意見変化の度合いは、意見変化手がかり表現がテキスト中から抽出されたかどうかを表す2値の情報でも良い。
意見変化判定部30は、意見変化手がかり表現がひとつでも抽出されていれば、意見の変化があったと判定しても良い。意見変化判定部30は、抽出した意見変化手がかり表現の数を数えて、その数が閾値を超えた場合に意見の変化があったと判定しても良い。意見変化判定部30は、抽出した意見変化手がかり表現に関連付けたスコアを合計して、その合計が閾値を超えた場合に意見の変化があったと判定しても良い。意見変化判定部30は、関連する技術によって、意見変化手がかり表現を肯定的な表現か否定的な表現かに分類して、それぞれの数を数えて意見の変化を判定しても良い。
意見変化判定部30が出力する、意見の変化の有無を表す判定情報は、数値でもラベルでも良い。
次に、意見変化手がかり表現抽出部10と意見変化手がかり表現辞書20について詳細に説明する。
意見変化手がかり表現抽出部10は、入力されたテキストから、そのテキストに含まれる意見が、そのテキストの記述者の過去の意見から変化した意見であるか否かを判定する手がかりとなる表現(意見変化手がかり表現)を抽出する。
意見変化手がかり表現は、意見の変化が大きい、すなわち意見変化の度合いが大きいことを示す表現と、意見の変化が少ない、すなわち意見変化の度合いが小さいことを示す表現の大きく2種類に分かれる。
意見の変化が大きいことを示す主な表現は、自分の以前の思考・予想・行動を、否定したり停止したりする表現である。あるいは、意見の変化が大きいことを示す表現は、自分の以後の思考・予想・行動を、肯定したり開始したりする表現である。例えば「今まで〜していたのに」のような表現は、自分の以前の行動に対する否定を表す表現であり、テキストの記述者の意見が、以前の意見とは異なっていることを示す。また、「今度から気をつけよう」という表現は、今まではしていなかった行動を今後は行おうとする宣言を表す表現であり、テキストの記述者の意見が変化したことを示す。
また、「知らなかった」「そうだったのか」など、伝聞や新情報の取得、驚きを表す表現は、記述者が今までは知らなかった重要な情報を得たことを表す。そのため、伝聞や新情報の取得、驚きを表す表現を、テキストの記述者の意見の変化が起こっていると推定する手がかりとして、意見の変化が大きいことを示す表現に含めても良い。
一方、意見の変化が少ないことを示す主な表現は、自分の以前からの思考・予想・行動を、継続したり肯定したりする表現である。「やっぱりね」「前から〜思っていた」「〜して良かった」のような表現は、以前の自分の判断を記述時点でも肯定しているため、意見の変化が少ないことを示す。
意見の変化が大きいことを示す意見変化手がかり表現の例を、図1におけるテキストAを用いて具体的に説明する。例えば、意見変化手がかり表現は、「知らなかった」のような新規の情報に触れたことを示す表現である。また例えば、意見変化手がかり表現は、「今まで〜していたのに」のような自分の過去の行動に関する否定的表現である。あるいは、意見変化手がかり表現は、「今度から気をつけよう」のような自分の未来の行動を開始する表現である。これらは全て、意見の変化が大きいことを示す表現である。
また、意見の変化が少ないことを示す意見変化手がかり表現の例を、図1におけるテキストBを用いて具体的に説明する。例えば、意見変化手がかり表現は、「やっぱり」「思った通りだ」「前から〜思っていた」のような自分の以前からの意見や行動を肯定する表現である。これらは全て、意見の変化が少ないことを示す表現である。
なお、意見変化手がかり表現は、テキストの記述者の過去の意見から変化した意見であるのかを判定する手がかりとなる表現であればどのような表現でもよく、上記の例に限定されない。
意見変化手がかり表現抽出部10は、テキストの形態素解析を行うことで、語の活用の違いなどを考慮して、意見変化手がかり表現辞書20が記憶する表現とテキスト中の表現とのマッチングを行っても良い。また、意見変化手がかり表現抽出部10は、テキストの構文解析を行うことで、文の構造を表す構文木のレベルでマッチングを行っても良い。意見変化手がかり表現抽出部10は、以上のように表現のマッチングを行なった結果で、意見変化手がかり表現を抽出しても良い。
図4は、意見変化手がかり表現辞書20が記憶している辞書データの内容の例を示す図である。意見変化手がかり表現辞書20は、意見変化手がかり表現を記憶する。また、図4に示すように、意見変化手がかり表現辞書20は、意見変化手がかり表現と意見変化の度合いを示すスコアをペアで記憶していても良い。以後の説明においては、意見変化手がかり表現辞書20は、意見変化手がかり表現にスコアを関連付けて記憶している場合を説明する。意見変化意見変化手がかり表現辞書20は、例えば意見変化手がかり表現として「もうやめよう」を、そのスコアとして「+3.0」を記憶している。
まず、意見変化手がかり表現について説明する。意見変化手がかり表現は、テキスト中の意見がテキストの記述者の過去の意見から変化しているかどうかを判断する手がかりとなる表現であれば、どのような形態の表現でも良い。
最も単純には、意見変化手がかり表現は、一つの単語でも良い。例えば、副詞である「やっぱり」という単語がテキスト中に出現している場合、「やっぱり」という単語はそのテキストに記述された意見が過去の意見からの変化が少ない意見であることを示す。そのため、意見変化手がかり表現は、副詞である「やっぱり」という一つの単語でも良い。
意見変化手がかり表現は、複数の語の組み合わせでも良い。例えば、意見変化手がかり表現は、「もうやめる」というような複数の語からなる表現でも良い。
意見変化手がかり表現は、テキスト中に出現する表現そのままではなく、品詞の指定や正規表現等を用いてパターンで表された表現でも良い。例えば、意見変化手がかり表現は、「もう+動詞+ない」のようなパターンで表された表現でも良い。「もう+動詞+ない」のようなパターンで表された表現は、具体的には「もう食べない」「もう買わない」「もう行かない」のような様々な表現を含む表現である。
次に、意見変化手がかり表現のスコアについて説明する。意見変化手がかり表現のスコアは、意見変化判定部30でその値を集計することで意見の変化の有無の判定に用いることができれば、どのように設定した値でも良い。ただし、スコアをどのような値に設定するかは、意見変化判定部30でスコアから意見の変化の有無を判定する際の計算式に依存する。
図4に示す例では、正のスコアは、対応する意見変化手がかり表現がテキスト中に出現しているとき、そのテキストに含まれる意見が、そのテキストの記述者の過去の意見から変化した意見であることを示す。つまり、正のスコアは、意見の変化が大きいことを示す意見変化手がかり表現と関連付けされる。
また逆に、負のスコアは、対応する意見変化手がかり表現がテキスト中に出現しているとき、そのテキストに含まれる意見が、そのテキストの記述者の過去の意見から変化していない意見であることを示す。つまり、負のスコアは、意見の変化が少ないことを示す意見変化手がかり表現と関連付けされる。
また、スコアの絶対値は、その表現がテキスト中に出現しているとき、意見の変化を判定する際の手がかりとしての強さを表わしている。
例えば、「もうやめよう」とはっきりと自分の行動の変化を宣言している意見変化手がかり表現は、意見の変化がほぼ確実に起こっていることを示す。一方、「知らなかった」という未知の情報に触れたことを表す意見変化手がかり表現は、意見の変化が起こっている可能性が高いことを示すが、意見の変化が確実に起こっていることまでは示さない。このような差を表現するため、前者のスコアは高く設定され、後者のスコアは低く設定されても良い。
意見変化手がかり表現のスコアは、人手で設定したものでも、意見変化判定部30のCPU1で実行される学習プログラムによって決定したものでも構わない。例えば、意見変化しているテキストを正例とし、意見変化していないテキストを負例として、テキスト中の表現を素性として、Support Vector Machine 等の機械学習器を用いて分類を学習することで、テキスト中の表現に重みをつけることができる。上記のスコアは、このように重みを付けたものでも良い。
次に、意見分析装置100の動作の一例を説明する。
図5は、意見分析装置100の動作を示すフローチャートである。図5に示すように、まず、意見変化手がかり表現抽出部10は、ユーザからテキストの入力を受け付ける(S1)。次に、意見変化手がかり表現抽出部10は、意見変化手がかり表現をテキストの集合から抽出する(S2)。次に、意見変化判定部30は、意見変化の有無の判定を行なう(S3)。
S1の動作を具体的に説明する。本実施の形態では、ユーザは、意見変化手がかり表現抽出部10へのテキストの入力を、キーボードなどの入力装置5によって行う。又は、ユーザは、意見変化手がかり表現抽出部10へのテキストの入力を、通信IF2を介してネットワークなどで接続された外部のコンピュータなどによって行っても良い。また、ユーザは、テキストを記憶したデータファイルを指定することでテキストの入力を行っても良い。この場合、意見変化手がかり表現抽出部10は、ユーザが指定したデータファイルからテキストを読み込む。
意見変化手がかり表現抽出部10は、上述したようにして、例えばユーザのキーボード操作によって図1のテキストAを入力として受け付ける。
次に、S2の動作を具体的に説明する。本実施の形態では、意見変化手がかり表現抽出部10は、意見変化手がかり表現辞書20に記憶している辞書データを比較し、意見変化手がかり表現辞書20が記憶する表現と一致する意見変化手がかり表現を入力されたテキストから抽出し、表現データとして出力する。
意見変化手がかり表現辞書20が記憶する意見変化手がかり表現が単純な文字列のデータだけであれば、意見変化手がかり表現抽出部10は、文字列の比較を行うことで一致する表現を抽出しても良い。意見変化手がかり表現が品詞等を用いた複雑なパターンで記述されている場合は、意見変化手がかり表現抽出部10は、入力されたテキストに形態素解析や構文解析を行ってから比較することで、一致する表現を抽出しても良い。
意見変化手がかり表現抽出部10は、抽出した意見変化手がかり表現とそのスコアで構成されるデータを意見変化判定部30に出力する。
図6は、意見変化手がかり表現抽出部10の出力するデータの例を示す図である。図6に示すように、例えば、意見変化手がかり表現抽出部10は、図1のテキストAから「知らなかった」、「今まで無理して毎日食品Xを食べていたのに」及び「今度から気をつけよう」という表現を抽出する。意見変化手がかり表現抽出部10は、抽出した上記3つの表現と、抽出した表現のペアである「+1.0」、「+3.0」及び「+3.0」というスコアで構成されるデータを意見変化判定部30に出力する。
次に、S3の動作を具体的に説明する。意見変化判定部30は、意見変化手がかり表現抽出部10が出力する意見変化手がかり表現とそのスコアで構成されるデータを受け取り、このデータを元に、テキスト中での意見変化の有無を判定し、判定情報として出力する。また、意見変化判定部30は、判定情報の1つとして、意見変化の有無の判定結果を表す値を出力しても良い。
意見変化の有無は、意見変化手がかり表現のスコアを元に計算される。計算方法は、意見変化手がかり表現辞書20が記憶する意見変化手がかり表現のスコアの定め方に依存する。
例えば、意見変化手がかり表現辞書20は、意見の変化が大きいことを示す意見変化手がかり表現に正の値のスコアを、意見の変化が少ないことを示す意見変化手がかり表現に負の値のスコアを割り振っているとする。
このとき、意見変化判定部30は、意見変化手がかり表現抽出部10が抽出した、テキストに出現する意見変化手がかり表現のスコアを合計する。意見変化判定部30は、スコアの合計値が一定の閾値より大きければ、意見変化があったと判定し、一定の閾値より小さければ、意見変化がなかったと判定する。
例えば、意見変化判定部30は、意見変化手がかり表現抽出部から図6で示すデータが入力される。意見変化判定部30は、図6に示すスコアである「+1.0」、「+3.0」及び「+3.0」を合計する。このとき例えば、意見変化があったと判定する閾値が「+4.0」であるとすると、上記スコアの合計は「+7.0」であるため、意見変化判定部30は、テキストAの意見は、記述者の過去の意見から変化した意見である判定する。
意見変化判定部30は、意見変化の有無の判定結果を表す値を判定情報として出力しても良い。この値は、有無を表すバイナリ値でも良い。例えば、手がかり表現のスコアの合計値が一定の閾値より大きければ1を、一定の閾値より小さければ0を出力する、と規定しても良い。
また意見変化判定部30は、2値よりも多い離散値や連続値で表した、意見変化の有無の判定の確からしさを出力しても良い。例えば、手がかり表現のスコアの合計値が閾値を大きく超えているとする。この場合、判定の根拠となる手がかりがそれだけ多く得られたことを表すため、手がかり表現のスコアの合計値の大きさは、判定情報として判定の確からしさを表していると言える。そこで、意見変化判定部30は、判定の結果とともにスコアの合計値を、確からしさを表す値として出力しても良い。または、意見変化判定部30は、手がかり表現のスコアの合計値の閾値との差を、変化の判定の確からしさを表す値として出力しても良い。
また、意見変化判定部30は、有無の判定結果を表すラベルを出力しても良い。例えば、意見変化判定部30は、閾値が複数設定され、手がかり表現のスコアの合計値がN1以下なら変化していないことを表すラベルを出力しても良い。意見変化判定部30は、スコアの合計値がN1以上N2以下なら変化しているか変化していないか判断できないことを表すラベルを出力しても良い。意見変化判定部30は、スコアの合計値がN2以上なら変化していることを表すラベルを出力しても良い。
図7は、意見変化判定部30の出力するデータの例を示す図である。出力例1は、変化の有無を表すバイナリ値を出力する場合の例を示す。この場合、1の値は、意見が過去の意見から変化していることを表す。0の値は、意見が過去の意見から変化していないことを表す。出力例2は、変化の有無の判定の確からしさを実数値で出力する場合の例を示す。この場合、0以上の値は、意見が過去の意見から変化していることを表す。0以下の値は、意見が過去の意見から変化していないことを表す。値の絶対値は確からしさを表す。値の絶対値が大きいほど、より信頼できる確かな判定結果であることを表す。
出力例3は、変化の有無をラベルで表し、その判定の確からしさを正の実数値で表す場合の例を示す。「有」のラベルは、意見が過去の意見から変化していることを表す。「無」のラベルは、意見が過去の意見から変化していないことを表す。ラベルに付随する正の実数値は判定の確からしさを表す。
また、意見変化判定部30は、判定の結果とともに判定の手がかりとして用いた意見変化手がかり表現を出力しても良い。テキストに含まれるどの表現が意見の変化を判定する手がかりとなったのかを出力することで、ユーザは何が判定の根拠となったのかを知ることができる。
本実施の形態における意見分析用プログラムは、コンピュータに、図5に示したステップS1〜S3を実行させるプログラムであれば良い。ユーザは、このプログラムをコンピュータにインストールし、実行することで、意見分析装置100及び意見分析方法を実現する。この場合、図2に示したコンピュータのCPU1は、意見変化手がかり表現抽出部10、意見変化判定部30として機能し、処理を行う。
以上説明したように、第1の実施の形態に係る意見分析装置100によれば、単一のテキスト中に含まれる意見が、そのテキストの記述者の過去の意見から変化した意見なのかどうかを判定することができる。
第1の実施の形態に係る意見分析装置100を用いることで、例えば企業が広告キャンペーンや事件報道などのイベントが人々の意見に与えた影響を調べたいときに、その影響を効率的に調べることができる。なぜならば、第1の実施の形態に係る意見分析装置100によって、テキスト中の意見が過去の意見から変化した意見であるか否かを判定することで、過去から変化していないイベントとは無関係な意見記述を除外等することができるからである。
<第2の実施の形態>
図8は本発明の第2の実施の形態に係る意見分析装置200の機能構成を示すブロック図である。本発明の第2の実施の形態に係る意見分析装置200は、意見の記述箇所が単数乃至複数指定されているテキストを入力として受け付ける点で、第1の実施の形態に係る意見分析装置100と異なる。また、意見分析装置200は、意見変化手がかり表現とそれぞれの意見の記述箇所との対応付けを行う対応関係推定部40を有する点で、意見分析装置100と異なる。さらに、意見分析装置200は、意見変化判定部30が対応付けられた手がかり表現を用いて、意見変化手がかり表現と対応付けられた意見について変化の有無を判定して出力する点で、意見分析装置100と異なる。
なお、対応関係推定部40は、図2に示すCPU1及びメモリ3を含むコンピュータ回路によって構成される。
本実施の形態に係る意見分析装置200は、入力として、意見記述箇所が単数乃至複数指定されているテキストを受け付ける。意見分析装置200は、入力されたテキストで記述箇所を指定された各意見について、その意見が、テキストの記述者の過去の意見から変化しているかどうかを判定する。
意見記述箇所の指定方法は、対応関係推定部40で意見変化手がかり表現との対応付けを行うことができる指定方法であればどのようなものでも良い。例えば、ユーザはテキスト先頭からの文字数を用いて指定しても良い。また例えば、ユーザはN3文字目からN4文字目までが第一の意見で、N5文字目からN6文字目までが第二の意見である、というように指定しても良い。
また、ユーザは文区切りや単語分割を行い、N7番目の文の、N8語目からN9語目が第一の意見である、というように指定しても良い。
ユーザはXMLデータのようにタグで指定しても良い。
図9は、本実施の形態に係る意見分析装置200が入力として受け付けるデータの例を示す図である。この例では意見記述箇所は<Opinion>というタグで囲むことで指定している。また、タグのID番号によって、複数の意見記述を区別している。
意見記述箇所は、図示しない入力部により、ユーザがテキストに対して直接指定しても、CPUがプログラムに基づいて自動的に指定しても構わない。例えば、入力部は、文の意見性の有無の判定技術を用いて発見した、意見性を有する文を意見記述箇所として指定しても良い。このように、プログラムに基づいて意見記述箇所を指定したテキストは、意見分析装置200へ入力されても良い。
また、入力部は、周知の評価表現抽出技術を用いて、評価表現の出現する箇所を特定しても良い。この評価表現の出現した箇所を意見記述箇所として指定したテキストは、意見分析装置200へ入力されても良い。
意見変化手がかり表現抽出部10は、本発明の第1の実施の形態の場合と同様の方法で、入力テキストから意見変化手がかり表現を抽出し、対応関係推定部40に表現データとして出力する。第2の実施の形態に係る意見変化手がかり表現抽出部10は、意見記述箇所を示すデータを表現データと合わせて出力する点で、第1の実施の形態に係る意見変化手がかり表現抽出部10と異なる。
対応関係推定部40は、意見記述箇所を示すデータと表現データとに基づいて、意見変化手がかり表現とそれぞれの意見記述箇所の対応付けを行う。意見変化手がかり表現とそれぞれの意見記述箇所の対応付けは、例えば、テキスト上での距離の近さを用いても良い。対応関係推定部40は、互いの距離の近い意見変化手がかり表現と意見記述箇所とに対し、対応付けを行なっても良い。
対応関係推定部40は、テキスト上での距離の近さを、意見変化手がかり表現と意見記述箇所の間の、文字数や語数などを用いて測定しても良い。対応関係推定部40は、測定した文字数や語数がある所定の閾値以下の時に、意見変化手がかり表現と意見記述箇所との互いの距離が近いと判定し、対応付けを行なっても良い。また、対応関係推定部40は、テキストに構文解析を行って、構文木上で距離の近い意見変化手がかり表現と意見記述箇所とに対し、対応付けを行なっても良い。
また、対応関係推定部40は、文の区切りや接続詞など、文脈を考慮して対応付けを行っても良い。例えば、対応関係推定部40は、文の区切り、あるいは逆接の接続詞をまたぐ対応付けは行わないことにしても良い。
抽出された意見変化手がかり表現は、意見記述箇所の外部にあっても良いし、意見記述箇所の内部に含まれていても良い。対応関係推定部40は、ある意見記述箇所の内部に意見変化手がかり表現が含まれていた場合は、必ずその意見記述箇所と対応付けを行なうことにしても良い。
対応付けは一対一対応でなくても良い。対応関係推定部40は、複数の意見変化手がかり表現を同じ意見記述箇所に対応付けても、同じ意見変化手がかり表現を複数の意見記述箇所に対応付けても良い。また、どの意見変化手がかり表現とも対応づけられない意見記述箇所や、どの意見記述箇所とも対応づけられない意見変化手がかり表現があっても良い。
対応関係推定部40は、意見変化手がかり表現と意見記述箇所との対応付けを行なう際に、対応の強さを表す重みを付与しても良い。例えば、対応関係推定部40は、意見変化手がかり表現と意見記述箇所の間の距離の逆数を重みとすることで、より近くに出現している対応関係は重みが大きく、より遠くに出現している対応関係は重みが小さい、として対応付けを行っても良い。
本実施の形態における意見変化判定部30は、対応関係推定部40の出力するデータを入力として、各意見記述箇所に対応づけられた意見変化手がかり表現を用いることで、意見記述箇所で指定された意見が過去の意見から変化した意見であるか否かを判定する。
意見の変化の有無の判定方法は、第1の実施の形態における意見変化判定部30と同様に行う。第2の実施の形態に係る意見変化判定部30は、テキスト中に存在する全ての意見変化手がかり表現を用いるのではなく、各意見記述箇所に対応づけられた意見変化手がかり表現のみを用いる点で、第1の実施の形態に係る意見変化判定部30と異なる。
また、意見変化判定部30は、判定時に対応付けの重みを考慮しても良い。例えば、意見変化判定部30は、各意見変化手がかり表現のスコアの合計値を計算する際に、各スコアに対応付けの重みを積算しても良い。対応付けの重みを考慮することで、意見変化判定部30は、意見変化の判定に関して、対応付けの重みが大きい意見変化手がかり表現の影響をより強く、対応付けの重みが小さい意見変化手がかり表現の影響をより小さく判定する。
第2の実施の形態に係る意見分析装置200の動作を説明する。
第2の実施の形態に係る意見分析装置200の動作は、図10によって示される。
S1の動作を具体的に説明する。本実施の形態に係る意見分析装置200は、入力として、意見記述箇所が単数乃至複数指定されているテキストを受け付ける。意見変化手がかり表現抽出部10は、例えば図9のテキストCがユーザのキーボード操作によって入力される。
S2の動作を具体的に説明する。意見変化手がかり表現抽出部10は、意見変化手がかり表現辞書20を用いて、意見変化手がかり表現辞書20が記憶する表現と一致する意見変化手がかり表現を入力されたテキストから抽出する。意見変化手がかり表現抽出部10は、抽出した意見変化手がかり表現の表現データとそのスコアで構成されるデータ及び入力されたテキストを対応関係推定部40に出力する。また、意見変化手がかり表現抽出部10は、意見記述箇所を示すデータを表現データと合わせて出力する。
図11は、第2の実施の形態に係る意見変化手がかり表現抽出部10の出力するデータの例を示す図である。図11に示すように、例えば、意見変化手がかり表現抽出部10は、入力された図9のテキストCから「予想外に」及び「相変わらず」という表現を抽出する。意見変化手がかり表現抽出部10は、抽出した上記2つの表現と、抽出した表現に関連付けた「+2.0」及び「−2.0」というスコアとで構成されるデータを、対応関係推定部40に出力する。また、意見変化手がかり表現抽出部10は入力されたテキストCを対応関係推定部40に出力する。
S3の動作を具体的に説明する。対応関係推定部40は、意見変化手がかり表現抽出部10から入力された意見変化手がかり表現と、入力されたテキスト中の各意見記述箇所との対応付けを行い、対応付けを行なったデータを意見変化推定部30に出力する。
対応関係推定部40は、意見手がかり表現と意見記述箇所との間の文字数が、ある所定の閾値より小さい場合に、該意見手がかり表現と意見記述箇所との対応付けを行なう場合を考える。仮に閾値は3文字だとする。また、意見記述箇所の内部に含まれる意見変化手がかり表現は、当然に該意見記述箇所と対応付けが行なわれるものとする。
対応関係推定部40に、図11に示すデータが入力された場合、指定された意見記述箇所である「バスは予想外に混んでいて不快だった」の内部にある意見変化手がかり表現である「予想外に」は、「バスは予想外に込んでいて不快だった」に対応付けが行なわれる。
また、意見記述箇所である「遊園地は楽しかった」と意見変化手がかり表現である「相変わらず」の間の文字数は0であり閾値3より小さいため、両者は対応付けが行なわれる。
図12は、対応関係推定部40が出力するデータの例を示す図である。図12に示すように、対応関係推定部40は、例えば、意見記述箇所として指定されたテキストと該意見記述箇所と対応付けされた意見変化手がかり表現及びそのスコアから構成されるデータを出力しても良い。
S4の動作を具体的に説明する。意見変化推定部30は、例えば図12に示すような対応関係推定部40の出力するデータを入力として、各意見記述箇所に対応づけられた意見変化手がかり表現のスコアを用いることで、各意見記述箇所で指定された意見について、過去の意見から変化した意見であるか否かを判定する。
意見の変化があったとする閾値を「+1.0」とした場合を考える。「バスは予想外に混んでいて不快だった」のスコアは「+2.0」であるため、意見変化判定部30は、意見記述箇所で指定された意見である「バスは予想外に混んでいて不快だった」は過去の意見から変化した意見であると判定する。また、「遊園地は楽しかった」のスコアは「−2.0」であるため、意見変化判定部30は、「遊園地は楽しかった」は過去の意見から変化のない意見であると判定する。
本実施の形態における意見分析用プログラムは、コンピュータに、図10に示したステップS1〜S4を実行させるプログラムであって、上述した動作を実行させるプログラムであれば良い。
以上説明したように、本発明の第2の実施の形態によれば、テキスト全体ではなく、テキスト中の個々の意見記述箇所について、より適切に意見の変化を判定できる。なぜならば、各意見記述箇所に対応する意見変化手がかり表現だけを用いることで、無関係な意見変化手がかり表現が判定結果に影響を与えることを防ぐことができるためである。
<第3の実施の形態>
本発明の第3の実施の形態に係る意見分析装置100は、意見変化手がかり表現抽出部10が、意見変化手がかり表現が示す意見の評価極性(肯定的か否定的か等の評価の属性)に関する変化の向きをさらに出力する点で、第1の実施の形態に係る意見分析装置100と異なる。また第3の実施の形態に係る意見分析装置100は、意見変化手がかり表現辞書20が、意見変化手がかり表現が示す意見の評価極性に関する変化の向きをデータとして記憶している点で第1の実施の形態に係る意見分析装置100と異なる。また第3の実施の形態に係る意見分析装置100は、意見変化判定部30が、意見の評価極性に関する変化の向きをさらに出力する点で、第1の実施の形態に係る意見分析装置100と異なる。
意見の評価極性に関する変化の向きについて説明する。意見の変化には、大きさ(意見変化の度合い)だけでなく、評価極性に関する変化の向きがある。例えば、「良い人だと思っていたのに。」という意見を含むテキストについて考える。このテキストの記述者の意見は、過去の意見から変化している。「良い人だと思っていたのに。」という意見は、良い人だと思っていたのに実は悪い人だった、という、肯定的な評価から否定的な評価への変化を示す。また逆に、「悪い人だと思っていたのに。」という意見は、否定的な評価から肯定的な評価への変化を示す。
意見変化手がかり表現抽出部10は、本発明の第1の実施の形態の場合と同様の方法で意見変化手がかり表現を抽出し、スコアと共に意見変化判定部30に出力する。第3の実施の形態に係る意見変化手がかり表現抽出部10は、各意見変化手がかり表現が示す意見の評価極性に関する変化の向きをさらに合わせて出力する点で、第1の実施の形態に係る意見変化手がかり表現抽出部10と異なる。
第3の実施の形態に係る意見変化手がかり表現辞書20は、各意見変化手がかり表現が示す意見の評価極性に関する変化の向きを辞書データとしてさらに記憶する。図13は、第3の実施の形態に係る意見変化手がかり表現辞書20が記憶している内容の例を示す図である。
図13に示すように、各意見変化手がかり表現が示す意見の評価極性に関する変化の向きには、「肯定→否定」「否定→肯定」「不明」「変化なし」の4つのカテゴリがある。「肯定→否定」は、肯定的な評価から否定的な評価への変化を表す。「否定→肯定」は、否定的な評価から肯定的な評価への変化を表す。「不明」は、その意見変化手がかり表現からは、意見の変化がどちらの向きに起こっているかは分からないことを表す。「変化なし」は、その意見変化手がかり表現が、意見の変化が起こっていないことを表す表現であり、変化の方向が存在しないことを表す。
例えば、「今まで食べるようにしていたのに」という意見変化手がかり表現は、肯定的な評価から否定的な評価への変化を表す。「今まで食べないようにしていたのに」という意見変化手がかり表現は、否定的な評価から肯定的な評価への変化を表す。
また、意見変化手がかり表現は、従来から知られている評価表現を利用することで、一般化して表しても良い。例えば、図13にある「(肯定の評価表現)と思っていたのに」という表現は、カッコで示された箇所に、従来から知られている肯定を表す評価表現の何れであっても当てはまることを表す。例えば「良いと思っていたのに」という記述は、「良い」というのは肯定を表す評価表現であるから、この意見変化手がかり表現に含まれ、肯定的な評価から否定的な評価への変化を表す。
「肯定→否定」の変化の向きを持つ意見変化手がかり表現は、自分の以前の肯定的な思考・予想・行動を、否定したり停止したりする表現、あるいは、自分の以後の否定的な思考・予想・行動を、肯定したり開始したりする表現である。例えば、「良いと思っていたのに」という表現は、自分の以前の肯定的な評価を、記述時点の視点から振り返って否定する表現である。
一方、「否定→肯定」の変化の向きを持つ意見変化手がかり表現は、自分の以前の否定的な思考・予想・行動を、否定したり停止したりする表現、あるいは、自分の以後の肯定的な思考・予想・行動を、肯定したり開始したりする表現である。例えば、「不味いと思っていたのに」という表現は、自分の以前の否定的な思考を、記述時点の視点から振り返って否定する表現である。否定的な評価をさらに否定しているので、「不味いと思っていたのに」という表現は否定的な評価から肯定的な評価に変化したことを表している。
本実施の形態に係る意見変化手がかり表現辞書20は、以上で説明したように、意見の評価極性に関する変化の向きをさらに記憶する。意見変化手がかり表現抽出部10は、意見変化手がかり表現辞書20を参照して、抽出した意見変化手がかり表現とペアである意見の評価極性に関する変化の向きを、意見変化手がかり表現及びそのスコアと共に意見変化判定部30へ出力しても良い。
本実施の形態に係る意見変化判定部30は、第1の実施の形態における意見変化判定部30と同様に、意見変化手がかり表現抽出部10から意見変化手がかり表現とそのスコアで構成されるデータが入力される。意見変化判定部30は、入力されたデータを元に、テキスト中での意見変化の有無を判定し、意見変化の有無の判定結果を出力する。
本実施の形態に係る意見変化判定部30は、意見変化手がかり表現抽出部10から各意見変化手がかり表現が示す意見の評価極性に関する変化の向きに関するデータも合わせて入力される点で、第1の実施の形態に係る意見変化判定部30と異なる。
また、意見変化判定部30は、テキスト中に含まれる意見変化手がかり表現が示す意見の評価極性に関する変化の向きに基づいて、最も代表的な意見の評価極性に関する変化の向きを推定して意見の変化を判定しても良い。例えば、意見変化判定部30は、複数の意見変化手がかり表現が、それぞれ異なった意見の評価極性に関する変化の向きを示しているとき、その中で最も多数を占めている変化の向きをひとつ選んで意見の変化を判定しても良い。例えば、3つの意見変化手がかり表現が「肯定→否定」「肯定→否定」「否定→肯定」という3つの向きを示している場合を考える。この場合、意見変化判定部30は、多数派である「肯定→否定」を代表として選んで意見の変化を判定しても良い。
また、意見変化判定部30は、「肯定→否定」「否定→肯定」「不明」「変化なし」の4つのカテゴリのそれぞれについてスコアを合計して意見の変化を判定しても良い。この場合、意見変化判定部30は、カテゴリ毎に意見の変化を判定しても良いし、各カテゴリの合計スコアを比較して、最も高いスコアを有するカテゴリを代表として選んで意見の変化を判定しても良い。
意見変化判定部30は、入力されたテキストについて意見の変化の判定結果と、意見の評価極性に関する変化の向きとから構成されるデータを出力する。出力されるデータは、複数のカテゴリについて意見の変化を判定したものでも、代表として選んだカテゴリについてのみ意見の変化を判定したものでも良い。
このように、本実施の形態に係る意見分析装置100は、意見変化手がかり表現が表す意見の評価極性に関する変化の向きを併せて出力することで、テキストの記述者の意見にどのような変化が起こったのかを分類して分かりやすく示すことができる。
第3の実施の形態に係る意見分析装置100の動作を説明する。
第3の実施の形態に係る意見分析装置100の動作は、第1の実施の形態に係る意見分析装置100と同様に、図5によって示される。
ただし、第3の実施の形態に係る意見分析装置100の動作は、意見変化手がかり表現を抽出するS2のステップにおいて、意見変化手がかり表現が示す意見の評価極性に関する変化の向きをさらに記憶する意見変化手がかり表現辞書20を用いる点で、第1の実施の形態に係る意見分析装置100の動作と異なる。また、第3の実施の形態に係る意見分析装置100の動作は、意見変化を判定するS3のステップにおいて、意見変化手がかり表現が示す意見の評価極性に関する変化の向きをさらに出力する点で、第1の実施の形態に係る意見分析装置100の動作と異なる。
S1の動作を具体的に説明する。意見分析装置100は、第1の実施の形態に係る意見分析装置100のS1と同様に、例えばユーザのキーボード操作によって図1のテキストAを入力として受け付ける。
S2の動作を具体的に説明する。本実施の形態に係る意見変化手がかり表現抽出部10は、意見変化手がかり表現辞書20が記憶している意見変化手がかり表現と同一の表現を、入力されたテキストから抽出する。意見変化手がかり表現抽出部10は、抽出した表現と、そのスコアと、該表現が示す意見の評価極性に関する変化の向きとから構成されるデータを意見変化判定部30に出力する。
図14は、意見変化手がかり表現抽出部10が出力するデータの例を示す図である。図14に示すように、意見変化手がかり表現抽出部10は、例えば「今まで無理して毎日食品Xを食べていたのに」という意見変化手がかり表現と、「+3.0」というスコアと、「肯定→否定」という意見の変化の向きとから構成されるデータを出力する。
S3の動作を具体的に説明する。意見変化判定部30は、意見変化手がかり表現抽出部10が出力する意見変化手がかり表現とそのスコアとその意見手がかり表現が示す意見の評価極性に関する変化の向きとから構成されるデータを入力として受け取る。
意見変化判定部30は、入力されたデータを元に、テキスト中の意見が過去の意見から変化した意見であるか否かを判定し、判定結果、及び意見の評価極性に関する変化の向きを出力する。
図15は、意見変化判定部30が出力するデータの例を示す図である。図15は、意見変化判定部30が、意見の変化の向きが不明である意見変化手がかり表現については除外し、意見の変化の向きが明確である意見変化手がかり表現のスコアを合計して、スコアの閾値3を超える最も大きなスコアのカテゴリについて出力した例である。この場合、意見変化判定部30は、図14のデータが入力されると、意見の変化が「不明」のカテゴリを除外する。「今まで無理して毎日食品Xを食べていたのに」のスコアは「+3.0」であり、閾値を超えるため、意見変化判定部30は、テキストAについて判定結果として「意見の変化、有」、変化の向きとして「肯定→否定」を出力する。
本実施の形態における意見分析用プログラムは、コンピュータに、図5に示したステップS1〜S3を実行させるプログラムであって、上述した動作を実行させるプログラムであれば良い。
以上説明したように、本発明の第3の実施の形態によれば、意見の変化の大きさだけでなく、意見の評価極性に関する変化の向きを合わせて出力することで、テキストの記述者の意見に関してどのような変化が起こったのかを分類して分かりやすく示すことができる。