第2回 さくさくテキストマイニング勉強会に行ってきた

前回に引き続き、「第2回 さくさくテキストマイニング勉強会」に参加してきました。
会場は前回と同じOracle青山センターです。200人ぐらい入る大きな会議室。さすがです。

目的&概要

目的

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

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

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

第2回「にこにこ」改め さくさくテキストマイニング勉強会
言語処理学会へ遊びに行ったよ〜不自然言語処理へのお誘い〜 [twitter:@AntiBayesian]

資料は ここ(PDF) から。

  • 自然言語処理
    • 実際の言語は、誤字、脱字、略字、顔文字、絵文字などが溢れている
    • 従来のテキストマイニングでは、顔文字などはゴミとして除去していた
    • 顔文字こそ書き手の思いが宿っているのでは?
  • 顔文字情報と文の評価表現の関連性についての一考察
    • 顔文字は周辺言語的要素を持つ
    • 顔文字単体での極性だけではなく、文脈把握が大切
    • 顔文字は回答者によって、快・不快バラバラ
    • 極性が異なるのに同じ顔文字が使われることも
    • クラス分類ではなく、複数の感情軸を併せ持つ
    • 自身は意味を持たず、強調、緩衝材としての顔文字利用
  • どんな時に不自然言語を使うか?
    • 仲の良い人同士だと砕けた表現や隠語使いやすい
    • 他の人より頻繁に不自然言語を用いて会話する相手=仲が良いのでは?ソーシャルネットワーク抽出出来る
    • 自然言語の利用度合いが親密さを表すかも
    • 顔文字は非言語的な情報まで伝達出来るかも
    • 誤字・脱字から精神状態などを読み取れるかも
    • 誤った語の使い方から年齢等が推定できるかも

必ずチェックすべき10のブログ (下に行く程、難しい内容らしい。上から5つぐらいは読むべし)

  1. コーパスいぢり( [twitter:@langstat] )
  2. あらびき日記( [twitter:@a_bicky] )
  3. 睡眠不足?( [twitter:@sleepy_yoshi] )
  4. EchizenBlog-Zwei( [twitter:@echizen_tm] )
  5. Overlasting::Life( [twitter:@overlast] )
  6. おとうさんの解析日記( [twitter:@isseing333] )
  7. はやしのブログRev.2( [twitter:@phosphor_m] )
  8. nokunoの日記( [twitter:@nokuno] )
  9. ぬいぐるみライフ(仮)( [twitter:@mickey24] )
  10. Mi manca qualche giovedi`( [twitter:@shuyo] )
今日から使える! みんなのクラスタリング超入門 [twitter:@toilet_lunch]

非階層型、ハードクラスタリングの手法 k-meansについてのお話。

  • 問題点
    • 最適になるとは限らない
      • 最初の重心に決め方によっては、誤った
    • 偏ったクラスタリングに不向き
      • 分けるべきクラスタのサイズが異なると精度が下がる
  • bayon
  • x-means
条件付き頻度分布 with NLTK [twitter:@gepuro]

インターンシップ先募集中の大学3年生!!

  • twitterのパブリックタイムラインは複数の言語を含む
    • SJIS変換を行い変換できれば日本語
      • ひらがなで正規表現チェックすれば、そこそこの精度で判定可能らしい
    • 形態素解析を行い日本語の名詞のみ抽出
『可視化するだけ』でも面白い テキストマイニング最初の一歩 [twitter:@ts_3156]

えごったー の中の人の発表。

  • えごったー
    • ツイッターのフォロー情報を可視化
    • アカウント名を入力するだけで使える
    • 認証情報は不要です→誰の情報でも見れます
    • 5000回 / 日くらい使われている
    • フォローしている / されているだけの人一覧
    • 口癖分析
    • よくツイートする時間帯
    • リプライを見られている人一覧
    • 入っているクラスタ分析
    • リムーブした / された人一覧
  • クラスタ分析の実装解析
    • 同じリストに入っているユーザを見つける
    • そのユーザのプロフィールを連結し、形態素解析する
    • 出現頻度が高い単語が、そのユーザの関連語
  • 高度な知識は必ずしも必要ない
    • 今回利用したのは、形態素解析だけ
    • 簡単な解法で解ける問題もたくさんある
  • 可視化するだけでもよい、面白さは人が勝手に見つける
    • えごったー側で行うのは簡単な情報の提示のみ
    • 意味を汲み取るのは人間の役目
  • 面白い可視化の例

見切り発車でも大丈夫。とりあえず作ってみよう

概観テキストマイニング [twitter:@todesking]

  • 大量のデータ
    • 人間ではハンドリングできない程に多いデータを相手にする
    • 統計的手法はデータが多いほうが有効
    • 計算機の出番

データマイニング

  • フリーテキスト
    • 自然言語による記述
    • 構造化されていないデータ
    • さまざまなノイズ
      • 表記ゆれ
      • 未知の表現
    • 計算機で処理するには工夫が必要
    • 前処理必須
    • 解析ミスがつきもの
  • なぜフリーテキストなのか?
    • データ量はパワーである
    • ノイズ混じりだが大量のデータを入手可能
    • 事前に構造を規定しなくていい
  • フリーテキストの構造を分析する
    • ノイズとの戦い
      • 未知の用語
      • 誤記
  • テキストマイニングでいかに価値を生むか
    • その分析結果が何を意味するのか?
    • 次にすべき行動は?
    • その行動は誰に、どのような価値をもたらすか?
WordNetで作ろう! 言語横断検索サービス [twitter:@stakemura]

社内google code を作りたいが、増え続けるプログラムをすぐに見つからない状態をなんとかしたい。

  • 検索機能を強化
    • 日英表記揺れを解決
    • 語義曖昧性を解決
  • 言語横断検索のアプローチ
    • 「対訳辞書」ベース
      • 日本語WordNetのような辞書を活用するアプローチ
    • 「対訳コーパス」ベース
      • 辞書がない、あるいは併用するアプローチ
    • 機械翻訳」ベース
  • WordNetから類義語の抽出手順(日→英)
    • MeCabで標準形と品詞を取得
    • 名詞・副詞・形容詞・動詞のみ抽出
    • SQLにてword→sense→関連sense→関連word

検索結果がよろしくない。

  • BM25Fでやっと納得のいく結果が得られた
R言語によるはじめてのテキストマイニング [twitter:@yokkuns]

Rパッケージガイドブックの著者の一人のyokkunsさんの発表。

  • YjdnJlpパッケージを使用すると、MeCabやCaBoChaをなど外部ライブラリを使用せず、テキスト解析が可能
  • コレスポンデス分析まで一気にやれる
  • 形態素解析
    • MAService関数
  • 係り受け解析
    • DAService関数
  • 特徴語抽出
    • Keyphrase関数
「コレカモネット」の作り方

発表の中で出てきた「コレカモネット」について、飛び入りLTが。
精度が足りない分を、アイデアでカバーしたお話。

togetter [twitter:@kimukou_26]


所感&まとめ
  • 初心者向け勉強会のはずが、業界を代表する面々が参加されている。
  • テキストマイニングは前処理が必須で、最重要工程。十分な精度が出せるとは限らないが、適用箇所やそれを補うアイデアも必要。