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

Sha*_*air 6 .net c# algorithm text similarity

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

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

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

我将构建一个程序来读取他们的所有帖子,并将第一个帐户中的每个帖子与第二个帐户的帖子进行比较,以确定他们是真正的两个不同的人还是仅仅是两个单个用户的注册.

Osc*_*ros 1

我首先想到的是Levenshtein Distance,但它更关注单词相似度。

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

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

(w_0, w_1, ..., w_k)
Run Code Online (Sandbox Code Playgroud)

在哪里

  • k是文档中的术语(单词)总数
  • w_i是这个i-th词。

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

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