0

我有以下两个文本:

text0 = "AAAAAAAAAAAA";

text1 = "AAAAAAAAAAAAA";

我使用 4 瓦。因此,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,AAAA,AABA,ABAA,BAAA,AAAA,AAAA,AAAA}。

如果使用这两个袋子,它的相似之处是 sim = 5/9。这远高于 0.2。

MinHash可以做到这一点吗?

4

2 回答 2

1

对于可以使用加权 minwise 散列的包,请参阅

S. Ioffe,改进的一致性采样、加权 minhash 和 l1 草图,2010

或者

A. Shrivastava,简单高效的加权 Minwise 哈希,2016 年

如果多重性总是小的整数,您还可以通过使条目唯一来使用未加权的 min-wise 散列,例如通过编号:

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

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

于 2017-09-01T06:57:34.083 回答
0

另一个使用非常短的文本来提高相似度分数的简单解决方案是在文档的开头和结尾处生成较短的带状疱疹,使用特殊字符来指示开始/结束。

在这种情况下,您从 text0 生成的带状疱疹是:{@A, @AA, @AAA, AAAA, AAA@, AA@, A@}

来自text1的那些是:{@A,@AA,@AAA,AAAA,AAAB,AABA,ABAA,BAAA,AAA@,AA@,A@}。

Jaccard 相似度现在是 7/11 = 0.64

这实际上归结为一个关于“相似性”对您意味着什么的哲学问题:您认为包含哪些重要特征?

于 2019-07-11T02:21:07.143 回答