第1回 にこにこテキストマイニング勉強会に参加してきました。

テキストマイニングの勉強会に参加してきました。
非常に勉強になったので、復習の意味も込めて超久しぶりにブログを書きます。
この分野には前から興味はありましたが、なかなか勉強するきっかけがなかったので放置気味でしたが、折角の機会なので参加することに。


会場は勉強会の会場には定評があるOracleさんにて。
何気に初Oracleだったりしましたが、非常にすばらしい会場でしかも広い。
入館に若干時間がかかることが難点ですが、そこは仕方ないことでしょう。

目的&概要

目的

テキストマイニングについての学習のスタートアップ
テキストマイニング技術に関して気軽に参加・議論することができる場の提供
概要

テキストマイニングとは、例えば製品の評判をweb上のテキストから抽出したり、
大量のアンケートテキストを分析するために用いられる技術であり、特にマーケティングの場で多くの利用例があります。

この勉強会ではそうしたテキストマイニングを題材とし、用いられている要素技術とそれに関わる課題の議論、
またテキストマイニングを実務に活かす方法について考えていきます。

第1回 にこにこテキストマイニング勉強会

テキストマイニングの歩き方 [twitter:@AntiBayesian]

発表資料はここ(PDF)で公開されています。

テキストマイニングの利点
  • ブログや掲示板など定型化されていないものを対象とするため、分析できるデータの範囲が大幅に拡大
  • アンケートとは異なり想定外の回答が寄せられる可能性があり、収集者のフィルタがかかっていない生の声が得られる
  • 性別・年代・地域などパーソナリティを8割ぐらい取得できる
    • アンケートで個人情報を質問項目に入れると、回収率が極端に下がってしまう
利用分野
言語処理の手法
  1. 形態素解析:精度95% 絶対使う
  2. 構文解析:精度80% よく使う
    • 文法規則によって文の構造を句や文節を単位として係り受けなどを見る
    • 形態素解析より難易度は高い
  3. 意味解析:精度60% たまに使う
    • 評判分析等で使われる
    • 単語情報単体では自然言語を評価できない
  4. 文脈解析

テキストマイニングで使用するのは、1、2がほとんど。

テキストの統計処理
  • 統計処理を行うため、テキストを数学に落とし込む
  • 単語:トークンとタイプ
    • トークン:単語の数(同一単語も数える)
    • タイプ:単語の種類(同一単語は数えない)
  • bag-of-words:文章の単語ベクトル表現
  • Nグラム
  • コーパス
    • 言語分析用例データ
  • 素性(そせい)
    • 文法的な情報を表す情報量(頻出単語)
テキストマイニングの注意点
  • テキストを数値化する際、必ず情報は欠損する
  • テキストデータはスパース(疎)なデータである。疎なデータは通常の統計解析は通用しないケースが多い
    1. スパースデータ用の解析手法を用いる
    2. データ量を増やす
    3. 分析範囲を蜜な箇所だけに制限する

どの手法もそれぞれに問題があるが、まずは2を検討するべき(さらにスパースなデータが増加する可能性があるが。。)

実践するために
  • 95%までは美しく実装できる@shuyo
    • 400字詰め原稿用紙に20文字の誤字→使い物にならない
  • 辞書を作り、クリーニングする
    • 同義語辞書:私=私、俺、自分、僕、わたし
    • ストップワード:(それ、あれ、私、君)
    • 20人月の勝利
      • 精度が単調に増加する。モデルを使用してやる場合は危険がある
今後の学習

ゆるふわテキストマイニングをしてみよう [twitter:@toilet_lunch]

発表資料はここ(PDF)で公開されています。

テキストマイニングとは

何をマイニングしたいかによって、扱うデータや手法が異なるため、一般的な定義が決められない。

評判分析のツール

 評判分析ツール(一晩で作成したらしい)

  • 評価表現
    • 物事に対する評価を表しているような言葉=評価表現
    • 大きくポジティブとネガティブを分けられ、数値化が可能
    • 単語感情極性対応表
    • 形容詞が活用され、マッチングできない。→形態素解析(文章を単語に分解し、品詞を推定する)を使う
精度をあげるには
  • ジャンルを限定する
    • テキストマイニングは通常、知りたい情報のジャンルをあらかじめ想定して行われる。
    • 同じ評価表現がジャンルによって、反転を起こす場合がある
  • 対象テキストのクリーニング
    • 整理された形式で記述されていない
    • つべこべいわず地道にクリーニングする
      • 統計的な信頼性が損なわれるため、対象データが小さくなりすぎないように注意。
  • 言語の困難さ
    1. 否定表現
    2. 未知語
    3. 助詞の省略
    4. 複合的表現
    5. 表記ゆれ
    6. 複数の評価の混在
    7. 複雑すぎる構造の文

考えだすときりがなく、人間でも解読できない文などがあるため、完全な対応は不可能。
要求される精度とリソースの兼ね合い

コピー&ペーストのみで始めるテキストマイニング超入門 [twitter:@langstat]

テキストマイニングの一般的な流れ
  • データ構築
    • テキスト収集、電子化
  • テキスト処理
    • 語彙表の作成、用例の抽出
  • 統計処理
    • 検定、多変量解析
  • 質的分析
    • 結果の解釈、実質科学的な考察
テキストを入手できるサイト
形態素解析ができるサイト
統計解析できるサイト

初めてのnltk [twitter:@gepuro]

なんと大学2年生。
この分野に置ける先達がいる中で、初回発表する勇気がすばらしい。

NLTK(Natural Language Toolkit)
  • 純化
    • 退屈で面倒な作業を少なくする
    • ユーザへNLPの実用知識を与える
    • 直感的なフレームワーク
  • 一貫性
    • 一貫したインターフェースとデータ構造
    • 推測しやすいメソッド名
  • 拡張性
    • 新しいモジュールが容易に対応可能である後続
  • モジュール性
    • ツールキットの他の部分の理解を必要なしに、独立して利用できるコンポーネント

アンケート自由回答のテキストマイニング事例 [twitter:@bob3bob3]

発表資料はここ(PDF)で公開されています。

「楽しい食事」ってどんな食事?
  • 単語出現頻度分析
    • これを出すまでが大変
    • 表記ゆれの一部はツールで対応可能だが、単語の読み替えは辞書で対応する必要がある
    • 名詞と形容詞と動詞を抽出対象
  • 話題分析
  • 特徴語分析
    • 全体での単語の出現数と属性毎の単語の出現数を元にした「補完類似度」を指標して、属性毎に特徴的に出現する単語を抽出
  • コレスポンデンス分析
    • 縦横軸は大きな意味を持たず、関連性をみるためのもの
    • 今回のケースのようにうまく関連性を読み取れるものばかりではない
  • 仮説の抽出
    • 特徴語分析、コレスポンデンス分析をもとに仮説を抽出

Togetter [twitter:@hamadakoichi]

所感

前提知識はほぼなし(全文検索の絡みで、形態素解析、Nグラム辺りは多少知っている程度)の状態で参加させて頂いたが、
分かりやすい内容だった。
テキストマイニングとはどういうものか、どのような流れで行われるものか、具体的な例みたいな流れで丁寧な内容でした。
(発表された方々、お疲れさまでした。)
まずは、やってみる。
MeCabやRと戯れながら、統計学の勉強をすることにしよう。