唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

論文感想: "Automatically Constructing a Normalisation Dictionary for Microblogs"(EMNLP-CoNLL 2012)

概要

Twitterとかでの単語の正規化用の辞書を作る話。
例、2morw→tomorrow

手法

  1. 文脈類似度の似た、辞書にない単語(OOV)と辞書にある単語(IVのペア)を集める
  2. 集めたペアを文字列的な類似度でリランキング

一定の長さと頻度以上の単語のみを対象とする。

文脈類似度

ある単語が出てきた時に周りに出てくる単語。
これが似ている単語は意味が似ていると考えられる。

文脈類似度を測る時の設定
  • 窓幅(単語の周りの何個までを文脈として考えるか)
  • n-gramのnをいくつにするか
  • インデックス: 文脈に相対的な位置情報をつけるか
  • IV or All: IV だけを文脈に登場した単語としてみなすかどうか

品詞や構文的な情報は使っていない。

類似度の測り方
評価

Amazon Mechanical Turkで作った正解データと一致したら、その頻度分スコアが増加。(Cumulative Gain)
窓幅3, bigram、ポジションインデックスあり、All、KLダイバージェンスのとき最も良い結果。

リランキング

頻度とか編集距離とかstring subsequenceカーネルとか。
string subsequenceカーネルと、音声的な編集距離がよかった。

リランキングした結果をDiscounted Cumulative Gainで評価。
最終的に実際に文章の正規化に用いて評価。
既存の手作業によって作られた辞書と組み合わせると大きなF値の向上が見られた。

感想

birthdayがbdayになったり、yがyouだったりwhyだったりするのは人間でも難しいと思いました(小学生並みの感想