我正在寻找一种算法,而不是比较两条短信(比方说论坛帖子),并确定百分比的相似性。
为此目的最有效的解决方案是什么?
这个想法是使用这个算法来识别论坛上有两个以上昵称的用户,假装是不同的人。
我打算建立一个程序来阅读他们的所有帖子,并将第一个帐户中的每个帖子与第二个帐户的帖子进行比较,以确定他们是真正的两个不同的人还是只有两个单个用户的注册。< / p>
答案 0 :(得分:1)
我想到的第一件事是Levenshtein Distance,但它更侧重于词的相似之处。
您可以使用tf-idf,但如果您的语料库只包含两个以上的文档,它可能会更好。
替代方案可以使用向量空间模型来表示文档(帖子),例如:
(w_0, w_1, ..., w_k)
其中
k
是文档中术语(字词)的总和w_i
是i-th
字词。然后计算Hamming Distance,它基本上比较两个向量(数组)并计算它们不同的位置。您可以先丢弃停用词(即介词等词语)
记住用户可能会更改某些单词,使用同义词等。有很多模型可用于表示文档,计算它们之间的相似性。他们中的一些人接受计数词依赖,这为过程提供了更多的语义,而其他人没有。
答案 1 :(得分:0)
google-diff-match-patch对你来说是个不错的选择。你可以看一下测试的演示。