web-dev-qa-db-ja.com

テキストに関する個別の相互情報

私は、テキスト分類のための個別の相互情報をどのように計算するのかと思っていました。もっと正確に言うと、ツイートをカテゴリーに分類したいです。私はつぶやき(注釈付き)のデータセットを持っており、そのカテゴリに属する​​単語のカテゴリごとに辞書があります。この情報を基に、ツイートごとに各カテゴリのPMIを計算して、ツイートをこれらのカテゴリの1つに分類する方法はありますか。

22
Olivier_s_j

PMIは、ドキュメント(Tweet)とカテゴリの間ではなく、機能(あなたの場合はWord)とクラス(カテゴリ)の間の関連性の尺度です。式は Wikipedia で入手できます。

_                  P(x, y)
pmi(x ,y) = log ------------ 
                  P(x)P(y)
_

この式では、XはWordの出現をモデル化する確率変数であり、Yはクラスの出現をモデル化しています。特定のWord xと特定のクラスyについて、PMIを使用して機能が有益かどうかを判断し、それに基づいて機能を選択できます。多くの場合、機能が少ないと分類アルゴリズムのパフォーマンスが向上し、かなり高速になります。ただし、分類ステップは別個です。PMIは、学習アルゴリズムにフィードするためのより優れた機能を選択するためにのみ役立ちます。


編集:私が元の投稿で言及しなかった1つのことは、PMIがWordの頻度に敏感であることです。式を次のように書き換えましょう

_                  P(x, y)             P(x|y)
pmi(x ,y) = log ------------ = log ------------ 
                  P(x)P(y)             P(x)
_

xyが完全に相関している場合、P(x|y) = P(y|x) = 1なので、pmi(x,y) = 1/P(x)になります。頻度が低いx- es(単語)は、頻度が高いx- esよりも、両方がyと完全に相関している場合でも、PMIスコアが高くなります。

35
mbatchkarov