概要
Twitterとかでの単語の正規化用の辞書を作る話。
例、2morw→tomorrow
手法
- 文脈類似度の似た、辞書にない単語(OOV)と辞書にある単語(IVのペア)を集める
- 集めたペアを文字列的な類似度でリランキング
一定の長さと頻度以上の単語のみを対象とする。
文脈類似度
ある単語が出てきた時に周りに出てくる単語。
これが似ている単語は意味が似ていると考えられる。
文脈類似度を測る時の設定
- 窓幅(単語の周りの何個までを文脈として考えるか)
- 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だったりするのは人間でも難しいと思いました(小学生並みの感想