本ツールは、独立行政法人情報通信研究機構 旧知識処理グループ 情報信頼性プロジェクトに よって開発されたもので、1行につき1文が書かれたテキストファイルを入力として、機械学習を使って何らかの事象に対する意見や評判および評価(以下、こ れらをまとめて「評価情報」と呼びます)がテキスト中のそれぞれの文に存在するかどうかの判定を行い、その文に評価情報が存在すると認められた場合、以下 の情報を出力するツールです。
評価表現とは、「〜は良い」「〜はつまらない」といった、肯定的もしくは否定的意見や評判、提言を表す表現を言います。評価表現を含む文が評価情報となります。例えば、以下の文は評価情報とみなすことができます。
上の例の場合「良い」が評価表現となります。評価タイプは、評価表現を意味的な違いによって分類したタイプを表します。例えば、感情的な評価表現を 表す「感情」や感情的ではないが主観的な評価表現を表す「批評」、客観的に利点欠点について述べている「メリットデメリット」といったタイプとして評価タ イプは定義されています(詳しい分類は付録1を参照)。この場合は、感情的ではないが主観的な評価表 現なので評価タイプは「批評」となります。評価極性は、その評価情報が「良い」や「好き」に代表されるポジティブな意味を持つのか、「悪い」や「嫌い」に 代表されるネガティブな意味を持つのかを表します。ポジティブな意味を表す場合は"+"で表記し、ネガティブな意味を表す場合は、”-”で表記します(な お、評価極性が付与されない評価タイプもあります)。評価保持者はその評価を下している主体を指します。この場合は、この文の書き手、すなわち著者が評価 保持者となります。評価情報の詳しい仕様はパッケージに含まれている『評価情報タグ付与基準(spec.pdf)』をご参照ください。ただし、これは学習 コーパスを人手で構築する際の基準で、全く同じ基準で機械学習を利用したツールが情報を付与することは保証しませんのでご注意ください。
本ツールを用いることによって、Webテキストなどから様々な事柄に関する人々の評価情報を抽出することができます。評判検索や意見分析、テキストマイニングなどでご活用ください。
本ツールに付属しているモデルデータは非常に小さな学習コーパスから構築したサンプルになります。また、評価表現の辞書データも数語しか登録されていません。高度言語情報融合フォーラム(ALAGIN)ではWebデータ2万文のタグ付きコーパスから構築した意見(評価情報)抽出ツール用のモデルデータと、独立行政法人情報通信研究機構情報分析研究室が参考文献とは異なる手法で独自に収集した約35,000語からなる辞書データ(ポジティブ:約10,000語、ネガティブ語: 約 25,000語)を「意見(評価表現)抽出ツール用モデル(Version 1.1)」という名称で公開しております。詳しくは、高度言語情報融合フォーラム(ALAGIN)言語資源サイト(言語資源・サービス一覧)の「C-3 意見(評価表現)抽出ツール用モデル(Version 1.1)」をご参照ください。なお、ユーザ自身でモデルデータを構築することも可能です。詳しくは「モデルデータの生成」をご参照下さい。
本ツールは統計的機械学習を用いて評価情報の抽出および分類を行っています。本ツールの性格上、処理結果について以下の可能性にご留意下さい。
上記の点に関しまして、ツールの出力は統計的機械学習を用いて行われており、その内容の正確性、真実性、相当性が保証されるものではありません。ま た、ツールの出力は独立行政法人 情報通信研究機構の主体的な意思決定・判断を示すものではありません。独立行政法人情報通信研究機構では、本ツールにより抽出される情報の信頼性について 責任を持ちません。本ツールの使用に関連して生ずる損失、損害等について、いかなる場合においても一切責任を負いません。以上の点について十分注意した上 で自己責任の下でご利用ください。
% tar zxvf extractopinion-1.1.tar.gz % cd extractopinion-1.1/
% cd svmtools/ % make clean ; make
% cd ../pol/ % make clean ; make
インストール終了後、本ツールに付属しているサンプルのモデルデータと辞書を元に、以下の方法で本ツールの動作の確認および通常の利用ができます。
まず入力ファイルを用意します。入力ファイルはテキストファイルで、1文が1行ずつ書き込まれたフォーマットを想定しています。文字コードはUTF8です(注)。以下では例として入力ファイル名を"sample.txt"と表記して説明します。
入力ファイル(sample.txt)の内容例("↵"は改行を表します):
ほうれん草はビタミンが豊富だ。↵ 京都は日本にある。↵
商品Aは良くない。↵
太郎は学校に行くべきだ。↵ 道州制は国の一律の規制が解かれ地域経済の活性化が図られるので、商機が拡大すると考えられる。↵
注)内部の処理はEUC-JPで行われます。EUC-JPで表現できないUTF-8の文字は、処理の過程で無視されるため出力には含まれません。また、半角文字は全角に変換した上で処理されるため、出力では全角文字となります。
入力ファイル名を第一引数として、以下のコマンドを実行します。
% cd extractopinion-1.1/ % ./extract.sh sample.txt
extract.shの処理の流れについては付録2を参照してください。
コマンドを入力するとsample.txtに書かれた各文が処理され、標準出力に下記の表の値が出力されます。
<文書ID> | 入力ファイル名 |
<文ID> | 文の番号(先頭は1で、入力ファイルに書かれている文ごとに1増える。(整数) |
<評価保持者> | 文字列(UTF-8) |
<評価タイプと評価極性> | 文字列(UTF-8)。評価極性がないタイプ(当為・要望)の場合は極性は表示されず、評価タイプのみ表示される。出力される評価タイプの種類は付録1参照 |
<評価表現> | 文字列(UTF-8) |
出力結果(例)のように、各値はタブ文字で区切られ、改行で終了するような形式で処理結果が出力されます。文字コードはUTF-8です。なお、モデ ルデータが異なると、出力結果も変わります。評価表現が含まれない文が入力として与えられた場合は、文書IDと文ID以外何も表示されません。 複数の評価表現が一文中に存在する場合は、複数行にわたってそれぞれの評価表現に関する出力がされます。
出力結果(例):
sample.txt 1 [著者] メリット+ ビタミンが豊富だ。 sample.txt 2
sample.txt 3 [著者] 批評− 良くない。
sample.txt 4 [著者] 当為 学校に行くべきだ。 sample.txt 5 [著者] メリット+ 地域経済の活性化が図られるので、
sample.txt 5 [著者] メリット+ 商機が拡大すると考えられる。
入力ファイルの異常など、入力にエラーが検出された場合は、標準出力へは何も出力されません(評価情報が抽出されなかった場合と同じです)。標準エラー出力へ警告メッセージを出力します。
学習用コーパス(付録2)を用意することで、機械学習のモデルデータを再構築するこ とができます。モデルデータの再構築には、まず学習用コーパス(csv)と辞書を作成します。次に変換スクリプトを用いて形態素解析、係り受け解析等を施 し、内部処理用tsvファイルに変換します。さらにモデル学習用のスクリプトを実行することで、新たなモデルデータを構築することができます。具体的に は、以下の手順で行ってください。
% cpan cpan> install Text::CSV_XS
% cd extractopinion-1.1/makemodel/csv/ % ./csv2tsv.sh
% cd extractopinion-1.1/ % ./makemdl.sh
readme.{html/utf.txt} | 説明書 | |
---|---|---|
spec.pdf | 評価情報タグ付与コーパス構築基準書(注1) | |
pol/ | 評価極性分類用モジュール(注2) | |
src/ | 評価保持者抽出用モジュール | |
typ/ | 評価タイプ分類モジュール | |
xpr/ | 評価表現抽出用モジュール | |
svmtools/ | SVMの学習・分類用モジュール | |
lib/ | 共通使用関数など | |
dic/ | 共通仕様辞書 | |
dictionary.dic | 評価表現辞書(付録4) | |
reverse.dic | 反転語辞書(付録4) | |
modeldata/sample/ | 構築済みサンプルモデルデータ | |
model.pol_mdl | モデルデータ(評価極性分類用) | |
model.src_crfmdl | モデルデータ(評価保持者抽出用) | |
model.src_ft | モデルデータ(評価保持者抽出用) | |
model.src_svmmdl | モデルデータ(評価保持者抽出用) | |
model.typ_ft | モデルデータ(評価タイプ分類用) | |
model.typ_mdl | モデルデータ(評価タイプ分類用) | |
model.xpr_mdl | モデルデータ(評価表現抽出用) | |
sample.txt | サンプルの入力ファイル | |
extract.sh | 評価情報の抽出を行うスクリプト | |
_extract.sh | 評価情報の抽出の内部スクリプト | |
conf.sh | 設定ファイル | |
makemdl.sh | モデルデータの生成スクリプト | |
_train.sh | モデルデータ生成用の内部スクリプト | |
makemodel/ | モデルデータ生成用のディレクトリ | |
model/ | モデルデータ | |
csv/ | 機械学習用のコーパス (付録5) | |
tsv/ | makemdl.shの入力となるtsvファイル |
上述したように本ツールに付属しているモデルデータは非常に小さな学習コーパスから構築したサンプルになります。また、評価表現の辞書データも数語しか登録されていません。高度言語情報融合フォーラム(ALAGIN)ではWebデータ2万文のタグ付きコーパスから構築した意見(評価情報)抽出ツール用のモデルデータと、独立行政法人情報通信研究機構情報分析研究室が参考文献とは異なる手法で独自に収集した約35,000語からなる辞 書データ(ポジティブ:約10,000語、ネガティブ語: 約 25,000語)を「意見(評価表現)抽出ツール用モデル(Version 1.1)」という名称で公開しております。詳しくは、高度言語情報融合フォーラム(ALAGIN)言語資源サイト(言語資源・サービス一覧)の「C-3 意見(評価表現)抽出ツール用モデル(Version 1.1)」をご参照ください。
本ツールに付属しているサンプルモデルと、高度言語情報融合フォーラム(ALAGIN)か ら公開している意見(評価表現)抽出ツール用モデル(Version 1.1)を用いた場合の本ツールの解析精度は以下の通りです。以下の評価は、Webデータ2万文をもとにした学習用評価情報コーパスをテスト用データとし て用い、10分割交差検定で評価を行っています。
本ツール付属のサンプルモデルデータ | 意見(評価表現)抽出ツール用モデル(Version 1.1) | |
---|---|---|
Precision(肯定) | 0.6901 | 0.8732 |
Recall(肯定) | 0.7937 | 0.8932 |
F値(肯定) | 0.7383 | 0.8831 |
Precision(否定) | 0.6915 | 0.8658 |
Recall(否定) | 0.5646 | 0.8415 |
F値(否定) | 0.6216 | 0.8535 |
精度 | 0.6910 | 0.8701 |
注)評価表現が正しく抽出され、評価極性のある評価タイプが抽出されたと仮定して評価。 Precision, Recallは肯定の場合と否定の場合に分けて評価を行っています。Precisionは本ツールが出力した肯定(否定)の極性のうち、正しい極性を出力 した割合を表します。精度はテストデータ中で正しい出力が得られた事例の割合を表します。 Recallはテストデータ中の肯定(否定)の極性のうち、本ツールが正しい極性を出力した割合です。
本ツール付属のサンプルモデルデータ | 意見(評価表現)抽出ツール用モデル(Version 1.1) | |
---|---|---|
Precision | 0.6051 | 0.6350 |
Recall | 0.2293 | 0.3893 |
F値 | 0.3322 |
0.4826 |
注) Precisionは本ツールが抽出した評価表現のうち正しく抽出された評価表現の割合を表します。Recallはテストデータ中の正解評価表現のうち本 ツールが正しく抽出した評価表現の割合を表します。人手で構築された学習用評価情報コーパスは2名の作業者によって行われ、適宜基準について合議を行い進 められました。2名の評価者の一方のアノテーションを正解とみなし、もう一方をシステムの出力とみなした場合における、精度は以下の表のようになります。 従って一見上記のシステムの精度は極端に低いように見える可能性がありますが、Precisionに関しては人間の判断に近いものであると考えられます。
抽出範囲の主辞の一致 | |
---|---|
Precision | 0.71 |
Recall | 0.67 |
本ツール付属のサンプルモデルデータ | 意見(評価表現)抽出ツール用モデル(Version 1.1) | |
---|---|---|
精度 | 0.5211 |
0.6519 |
注) 評価表現が正しく抽出されたと仮定して評価。精度はテストデータの中で正しい出力が得られた事例の割合を示します。
本ツール付属のサンプルモデルデータ | 意見(評価表現)抽出ツール用モデル(Version 1.1) | |
---|---|---|
精度 | 0.6434 |
0.6930 |
注) 評価表現が正しく抽出されたと仮定して評価。精度はテストデータの中で正しい出力が得られた事例の割合を示します。
入力文全体の極性を出力するタスク、すなわち、1文中において抽出されるポジティブな評価表現1つにつき、+1を与え、ネガティブな評価表 現1つにつき、-1を与え、入力文中の全ての評価表現の値の和が正、負、ゼロのどれであるかを出力するタスクを考えます。この場合は、評価表現抽出が必ず しも正解と完全に一致しなくても文全体の極性の判定は正しく行える場合があります。その場合の精度は以下のようになります。
本ツール付属のサンプルモデルデータ、および評価表現辞書 | 意見(評価表現)抽出ツール用モデル(Version 1.1) | |
---|---|---|
精度 | 0.66 |
0.72 |
注) 精度はテストデータの中で、正、負、ゼロのいずれかが正しく出力できた事例の割合を示します。
(+はポジティブ、-はネガティブを表します)
(内部処理では基本的にtsvファイルをベースに情報の入出力を行っています)
見出し語 | 評価極性 | 形態素 | |||
---|---|---|---|---|---|
良い | + | 良い | |||
正統派 | + | 正統だ | 派 | ||
やさしさ | + | やさしい | さ | ||
内分泌攪乱化学物質 | - | 内分泌 | 攪乱 | 化学 | 物質 |
reverse.dicは分全体の極性を反転させるような表現を集めた辞書です。例えば、「絶やす」の様な動詞が相当します。
「絶やす」通常はネガティブな意味を持ちますが、上記例のように、ネガティブな項を取ることで文全体がポジティブなニュアンスを持つようになります。reverse.dicはこのような表現を集めたものです。
dictionary.dic, reverse.dic ともに、デフォルトではconf.sh の環境変数"dic" によって、"extractopinion-1.1/dic"に置くよう指定されています。
機械学習用コーパスのフォーマットは以下の通りです。カンマ区切りで、文字コードはShift-JISとしてください。
文 ID | 文 | 評価保持者 | 評価表現 | 評価タイプ | 評価対象 |
---|---|---|---|---|---|
example-1 | 京都は美しい | [著者] | 美しい | 批評+ | 京都 |
情報分析研究室(2011年度より言語基盤グループから改称)
独立行政法人 情報通信研究機構
Copyright 2007-2011 NICT All Rights Reserved.