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

C# 文本消息间相似性的识别算法,c#,.net,algorithm,text,similarity,C#,.net,Algorithm,Text,Similarity,我正在寻找一种算法,可以比较两条短信(比如论坛帖子),并确定相似度的百分比 为此目的,最有效的解决方案是什么 这个想法是使用这个算法来识别论坛上有两个以上昵称的用户,假装是不同的人 我将建立一个程序,阅读他们所有的帖子,并将第一个账户的帖子与第二个账户的帖子进行比较,以确定他们是否真的是两个不同的人,或者只是一个用户的两个注册。我想到的第一件事是相似性,但更多的是关注词语的相似性 您可以使用,但如果您的语料库包含两个以上的文档,可能会更好 另一种方法是使用向量空间模型表示文档(帖子),如: (w

我正在寻找一种算法,可以比较两条短信(比如论坛帖子),并确定相似度的百分比

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

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


我将建立一个程序,阅读他们所有的帖子,并将第一个账户的帖子与第二个账户的帖子进行比较,以确定他们是否真的是两个不同的人,或者只是一个用户的两个注册。

我想到的第一件事是相似性,但更多的是关注词语的相似性

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

另一种方法是使用向量空间模型表示文档(帖子),如:

(w_0, w_1, ..., w_k)
在哪里

  • k
    是文档中的术语(单词)总数
  • w_i
    i-th
    术语
然后计算,基本上比较两个向量(数组)并计算它们不同的位置。你可以先放弃停止词(如介词等)


考虑到用户可能会更改一些单词、使用同义词等。有很多模型用于表示文档,计算它们之间的相似性。它们中的一些采用了count words依赖,这为流程提供了更多的语义,而另一些则没有。

将是一个不错的选择。您可以查看演示以进行测试。

我认为有一些很好的字符串比较算法。我个人使用过它,它有一个非常简单的API,并且相当快地完成了一项出色的工作。这在很大程度上取决于你所说的“相似”和“最佳”的含义。有一些快速的方法可以很好地完成工作,也有一些缓慢的方法可以很好地完成工作,而且中间有很多空间。您可能会感兴趣,或者您可能会感兴趣,这是确定某个特定的文本位是否可能是由特定的人编写的。如前所述,你们的问题是一个很广泛的方法,可以得出一个好的答案。这里不能使用汉明距离,因为它可以逐个单元比较向量。如果其中一个文档只移动了一个单词,那么汉明距离就会很高。@Warlord,你说得对。也许,在这种情况下,当只比较两个文档时,
diff
算法(如
vimdiff
使用的、Beyond Compare等)更适合。