意見(評価表現)抽出ツール

目次

  1. 意見(評価表現)抽出ツールとは
  2. 新着事項
  3. ご利用にあたっての注意事項
  4. ダウンロード
  5. ツールの実行環境
  6. 意見(評価表現)抽出ツールの動作確認方法
  7. このパッケージに含まれているディレクトリ・ファイル
  8. 解析精度
  9. 参考文献
  10. 著作権&ライセンス

意見(評価表現)抽出ツールとは

本ツールは、独立行政法人情報通信研究機構 旧知識処理グループ 情報信頼性プロジェクトによって開発されたもので、1行につき1文が書かれたテキストファイルを入力として、機械学習を使って何らかの事象に対する意見や評判および評価(以下、これらをまとめて「評価情報」と呼びます)がテキスト中のそれぞれの文に存在するかどうかの判定を行い、その文に評価情報が存在すると認められた場合、以下の情報を出力するツールです。

  1. その評価情報を表す表現の抽出(評価表現抽出)
  2. その評価情報の意味的な分類(評価タイプ分類)
  3. その評価情報が肯定的なニュアンス(ポジティブ)を表すのか、否定的なニュアンス(ネガティブ)を表すのかの判定(評価極性判定)
  4. その評価情報を発信する主体の抽出(評価保持者抽出)

評価表現とは、「〜は良い」「〜はつまらない」といった、肯定的もしくは否定的意見や評判、提言を表す表現を言います。評価表現を含む文が評価情報となります。例えば、以下の文は評価情報とみなすことができます。

上の例の場合「良い」が評価表現となります。評価タイプは、評価表現を意味的な違いによって分類したタイプを表します。例えば、感情的な評価表現を表す「感情」や感情的ではないが主観的な評価表現を表す「批評」、客観的に利点欠点について述べている「メリットデメリット」といったタイプとして評価タイプは定義されています(詳しい分類は付録1を参照)。この場合は、感情的ではないが主観的な評価表現なので評価タイプは「批評」となります。評価極性は、その評価情報が「良い」や「好き」に代表されるポジティブな意味を持つのか、「悪い」や「嫌い」に代表されるネガティブな意味を持つのかを表します。ポジティブな意味を表す場合は"+"で表記し、ネガティブな意味を表す場合は、”-”で表記します(なお、評価極性が付与されない評価タイプもあります)。評価保持者はその評価を下している主体を指します。この場合は、この文の書き手、すなわち著者が評価保持者となります。評価情報の詳しい仕様はパッケージに含まれている『評価情報タグ付与基準(spec.pdf)』をご参照ください。ただし、これは学習コーパスを人手で構築する際の基準で、全く同じ基準で機械学習を利用したツールが情報を付与することは保証しませんのでご注意ください。

本ツールを用いることによって、Webテキストなどから様々な事柄に関する人々の評価情報を抽出することができます。評判検索や意見分析、テキストマイニングなどでご活用ください。

高度言語情報融合フォーラム(ALAGIN)で公開されているモデルデータと辞書データについて

本ツールに付属しているモデルデータは非常に小さな学習コーパスから構築したサンプルになります。また、評価表現の辞書データも数語しか登録されていません。高度言語情報融合フォーラム(ALAGIN)ではWebデータ2万文のタグ付きコーパスから構築した意見(評価情報)抽出ツール用のモデルデータと、独立行政法人情報通信研究機構情報分析研究室参考文献とは異なる手法で独自に収集した約35,000語からなる辞書データ(ポジティブ:約10,000語、ネガティブ語: 約 25,000語)を「意見(評価表現)抽出ツール用モデル(Version 1.0)」という名称で公開しております。詳しくは、高度言語情報融合フォーラム(ALAGIN)言語資源サイト(言語資源・サービス一覧)の「C-3 意見(評価表現)抽出ツール用モデル(Version 1.0)」をご参照ください。

新着事項

ご利用にあたっての注意事項

本ツールは統計的機械学習を用いて評価情報の抽出および分類を行っています。本ツールの性格上、処理結果について以下の可能性にご留意下さい。

上記の点に関しまして、ツールの出力は統計的機械学習を用いて行われており、その内容の正確性、真実性、相当性が保証されるものではありません。また、ツールの出力は独立行政法人 情報通信研究機構の主体的な意思決定・判断を示すものではありません。独立行政法人情報通信研究機構では、本ツールにより抽出される情報の信頼性について責任を持ちません。本ツールの使用に関連して生ずる損失、損害等について、いかなる場合においても一切責任を負いません。以上の点について十分注意した上で自己責任の下でご利用ください。

ダウンロード

ツールの実行環境

実行環境

あらかじめインストールしておくべきプログラム

ツールのインストール

  • ダウンロードリンクからextractopinion-1.0.tar.gzをダウンロードします。
  • ダウンロードしたファイルを適当な場所で展開します。展開するとextractopinion-1.0というディレクトリができるので、そこに移動します。
    % tar zxvf extractopinion-1.0.tar.gz
    % cd extractopinion-1.0/
  • 以下のコマンドを実行し、svmtools/ 内のプログラムをコンパイルします。
    % cd svmtools/
    % make clean ; make
  • 以下のコマンドを実行し、pol/ 内のプログラムをコンパイルします。
    % cd ../pol/
    % make clean ; make  

    意見(評価表現)抽出ツールの動作確認方法

    インストール終了後、本ツールに付属しているサンプルのモデルデータと辞書を元に、以下の方法で本ツールの動作の確認および通常の利用ができます。

    入力ファイル

    まず入力ファイルを用意します。入力ファイルはテキストファイルで、1文が1行ずつ書き込まれたフォーマットを想定しています。文字コードはUTF8です(注)。以下では例として入力ファイル名を"sample.txt"と表記して説明します。

    入力ファイル(sample.txt)の内容例("↓"は改行を表します):

    ほうれん草はビタミンが豊富だ。↓
    京都は日本にある。↓
    商品Aは良くない。↓
    太郎は学校に行くべきだ。↓ 道州制は国の一律の規制が解かれ地域経済の活性化が図られるので、商機が拡大すると考えられる。↓

    注)内部の処理はEUC-JPで行われます。EUC-JPで表現できないUTF-8の文字は、処理の過程で無視されるため出力には含まれません。また、半角文字は全角に変換した上で処理されるため、出力では全角文字となります。

    コマンド

    入力ファイル名を第一引数として、以下のコマンドを実行します。

    % cd extractopinion-1.0/
    % ./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 [著者] メリット+ 商機が拡大すると考えられる。

    エラー時の動作

    入力ファイルの異常など、入力にエラーが検出された場合は、標準出力へは何も出力されません(評価情報が抽出されなかった場合と同じです)。標準エラー出力へ警告メッセージを出力します。

    ツールの注意事項

    このパッケージに含まれているディレクトリ・ファイル

    readme.{html/utf.txt} 説明書
    spec.pdf 評価情報タグ付与コーパス構築基準書(注)
    pol/ 評価極性分類用モジュール
    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 設定ファイル

    解析精度

    上述したように本ツールに付属しているモデルデータは非常に小さな学習コーパスから構築したサンプルになります。また、評価表現の辞書データも数語しか登録されていません。高度言語情報融合フォーラム(ALAGIN)ではWebデータ2万文のタグ付きコーパスから構築した意見(評価情報)抽出ツール用のモデルデータと、独立行政法人情報通信研究機構情報分析研究室参考文献とは異なる手法で独自に収集した約35,000語からなる辞 書データ(ポジティブ:約10,000語、ネガティブ語: 約 25,000語)を「意見(評価表現)抽出ツール用モデル(Version 1.0)」という名称で公開しております。詳しくは、高度言語情報融合フォーラム(ALAGIN)言語資源サイト(言語資源・サービス一覧)の「C-3 意見(評価表現)抽出ツール用モデル(Version 1.0)」をご参照ください。

    本ツールに付属しているサンプルモデルと、高度言語情報融合フォーラム(ALAGIN)から公開している意見(評価表現)抽出ツール用モデル(Version 1.0)を用いた場合の本ツールの解析精度は以下の通りです。以下の評価は、Webデータ2万文をもとにした学習用評価情報コーパスをテスト用データとして用い、10分割交差検定で評価を行っています。

    評価極性判定

      本ツール付属のサンプルモデルデータ 意見(評価表現)抽出ツール用モデル(Version 1.0)
    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.0)
    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.0)
    精度
    0.5211
    0.6519

    注) 評価表現が正しく抽出されたと仮定して評価。精度はテストデータの中で正しい出力が得られた事例の割合を示します。

    評価保持者抽出

      本ツール付属のサンプルモデルデータ 意見(評価表現)抽出ツール用モデル(Version 1.0)
    精度
    0.6441
    0.6748

    注) 評価表現が正しく抽出されたと仮定して評価。精度はテストデータの中で正しい出力が得られた事例の割合を示します。

    文全体の極性判定

    入力文全体の極性を出力するタスク、すなわち、1文中において抽出されるポジティブな評価表現1つにつき、+1を与え、ネガティブな評価表現1つにつき、-1を与え、入力文中の全ての評価表現の値の和が正、負、ゼロのどれであるかを出力するタスクを考えます。この場合は、評価表現抽出が必ずしも正解と完全に一致しなくても文全体の極性の判定は正しく行える場合があります。その場合の精度は以下のようになります。

      本ツール付属のサンプルモデルデータ、および評価表現辞書 意見(評価表現)抽出ツール用モデル(Version 1.0)
    精度
    0.66
    0.72

    注) 精度はテストデータの中で、正、負、ゼロのいずれかが正しく出力できた事例の割合を示します。

    参考文献

    著作権&ライセンス

    本ソフトウェアはフリーソフトウェアですが、著作権は、独立行政法人 情報通信研究機構に帰属します。本ソフトウェアは、BSDライセンス (Modified BSD License)、LGPL (GNU Lesser General Public License)、または、GPL (GNU General Public License) に従って使用、改変、再配布することができます。


    付録

    付録1)評価タイプの種類と各タイプが持ちうる極性

    (+はポジティブ、-はネガティブを表します)

    付録2)内部処理の流れ(extract.shの動作)

    1. 入力ファイルから評価情報処理用tsvファイルを作成(lib/in2tsv.pl)
    2. 評価表現の抽出(xpr/extract.sh)
    3. 評価保持者の抽出(src/extract.sh)
    4. 評価タイプの分類(typ/extract.sh)
    5. 評価極性の判定(pol/extract.sh)
    6. 評価情報処理用tsvファイルを出力用フォーマットに変換(lib/tsv2out.pl)

    (内部処理では基本的にtsvファイルをベースに情報の入出力を行っています)

    付録3)conf.sh内の環境変数

    付録4)辞書データのフォーマット


    情報分析研究室(2011年度より言語基盤グループから改称)

    独立行政法人 情報通信研究機構

    Copyright 2007-2011 NICT All Rights Reserved.