我有以下两条案文:
text0 = "AAAAAAAAAAAA";
text1 = "AAAAABAAAAAA";
我用的是4瓦。因此,text0 = {AAAA},text1 = {AAAA,AAAB,AABA,ABAA,ABAA}。
然后,Jaccard相似度为sim = 1/5 = 0.2。
我不想要这个结果。因为这两篇文章似乎有很高的相似性。
我想使用包的相似性如下:
text0 = {AAAA,AAAA},
text1 = {AAAA,AAAA,AAAB,AABA,ABAA,BAAA,AAAA,AAAA,AAAA}。
如果使用这两个袋子,其相似值为sim = 5/9,这比0.2要高得多。
MinHash能做这个吗?
发布于 2017-09-01 06:57:34
有关包,您可以使用加权最小散列,请参见
或
A. Shri伐A.,简单有效的加权最小散列,2016年。
如果多重性总是很小的整数,你也可以使用非加权的最小散列,使条目是唯一的,例如通过编号:
text0 = {AAAA1,AAAA2,AAAA3,AAAA4,AAAA5,AAAA6,AAAA7,AAAA8,AAAA9},
text1 = {AAAA1,AAAA2,AAAB1,AABA1,ABAA1,BAAA1,AAAA3,AAAA4,AAAA5}.
发布于 2019-07-11 02:21:07
另一个简单的解决方案是用非常短的文本来提高你的相似度,也就是在文档的开头和结尾生成较短的带状,使用一个特殊的字符来表示开始/结束。
在这种情况下,从text0生成的瓦是:{@A,@AA,@AAA,AAA,AAA@,AA@,A@}
来自text1的有:{@A,@AA,@AAA,AAAA,AAAB,AABA,ABAA,BAAA,AAA‘,AA@,A@}。
Jaccard相似度现在为7/11 = 0.64
这实际上是一个关于“相似”对你意味着什么的哲学问题:你是否认为包含哪些特性重要?
https://stackoverflow.com/questions/45973629
复制相似问题