2017-08-31 168 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

相关问题