Jaccard係数とSimpson係数

忘備録

自然言語処理等で用いられる単語の共起頻度を測る手法


キーワード「Ruby」の検索件数 |x| = 131,000,000件
キーワード「C++」の検索件数 |y| = 76,800,000件
キーワード「Ruby C++」の検索件数 |x∧y| = 7,940,000件
キーワード「Ruby or C++」の検索件数 |x∨y| = 276,000,000件

J = |x∧y|/|x∨y|

例の場合
7,940,000/276,000,000 = 0.0287681159

Jaccard係数では、

Simpson係数

S = |x∧y|/min(|x|,|y|)

例の場合
7,940,000/min(131,000,000 , 76,800,000)

ヒット数の小さい76,800,000を採用して…

7,940,000/76,800,000 = 0.103385417

Simpson係数では片方の単語のヒット数が極端に大きかったり小さかったりすると関係性が高くないものでも高く出てしまう。

また、

0 ≦ J ≦ 1
0 ≦ S ≦ 1

である。