2017-08-31 110 views
0

我有以下兩個文本:如何通過MinHash計算兩個文本與兩個包的Jaccard相似度的相似度?

text0 =「AAAAAAAAAAAA」;

text1 =「AAAAABAAAAAA」;

我使用4-ingle。因此,text0 = {AAAA},text1 = {AAAA,AAAB,AABA,ABAA,BAAA}。

然後,Jaccard相似度是sim = 1/5 = 0.2。


我不想要這個結果。因爲這兩個文本似乎有很高的相似性。

我想用袋子相似如下:

text0 = {AAAA,AAAA,AAAA,AAAA,AAAA,AAAA,AAAA,AAAA,AAAA},

的text1 = {AAAA,AAAA, AAAB,AABA,ABAA,BAAA,AAAA,AAAA,AAAA}。

如果使用這兩個包,它的類似是sim = 5/9。這遠高於0.2。

MinHash能做到這一點嗎?

回答

1

對於袋子,你可以使用加權minwise散列,看到

S. Ioffe, Improved consistent sampling, weighted minhash and l1 sketching, 2010

A. Shrivastava, Simple and Efficient Weighted Minwise Hashing, 2016

如果多重性總是小的整數,那麼也可以使用未加權的min-wise哈希,使條目具有唯一性,例如,通過編號:

text0 = {AAAA1,AAAA2,AAAA3,AAAA4,AAAA5,AAAA6,AAAA7,AAAA8,AAAA9},

的text1 = {AAAA1,AAAA2,AAAB1,AABA1,ABAA1,BAAA1,AAAA3, AAAA4,AAAA5}。

+0

非常感謝。我會看看這兩篇論文。 –

+0

通過編號使項目獨一無二是一個好主意。這意味着在「ABCDEFGHIJKLMNOPQRSTUVWXYZ」和「B」之間沒有檢測到相似性。 –

+0

對於您的示例,我們可能有 text0 = {ABCD1,BCDE1,CDEF1,...} text1 = {BCDE1,CDEF1,DEFG1,...} 顯然具有共同元素。 – otmar

相關問題