识别文本消息之间相似性的算法

时间:2014-02-28 23:31:22

标签: c# .net algorithm text similarity

我正在寻找一种算法,而不是比较两条短信(比方说论坛帖子),并确定百分比的相似性。

为此目的最有效的解决方案是什么?

这个想法是使用这个算法来识别论坛上有两个以上昵称的用户,假装是不同的人。

我打算建立一个程序来阅读他们的所有帖子,并将第一个帐户中的每个帖子与第二个帐户的帖子进行比较,以确定他们是真正的两个不同的人还是只有两个单个用户的注册。< / p>

2 个答案:

答案 0 :(得分:1)

我想到的第一件事是Levenshtein Distance,但它更侧重于的相似之处。

您可以使用tf-idf,但如果您的语料库只包含两个以上的文档,它可能会更好。

替代方案可以使用向量空间模型来表示文档(帖子),例如:

(w_0, w_1, ..., w_k)

其中

  • k是文档中术语(字词)的总和
  • w_ii-th字词。

然后计算Hamming Distance,它基本上比较两个向量(数组)并计算它们不同的位置。您可以先丢弃停用词(即介词等词语)

记住用户可能会更改某些单词,使用同义词等。有很多模型可用于表示文档,计算它们之间的相似性。他们中的一些人接受计数词依赖,这为过程提供了更多的语义,而其他人没有。

答案 1 :(得分:0)

google-diff-match-patch对你来说是个不错的选择。你可以看一下测试的演示。