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

标签 c# .net algorithm text similarity

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

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

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

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

最佳答案

我首先想到的是 Levenshtein Distance ,但它更侧重于单词的相似性。

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

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

(w_0, w_1, ..., w_k)

在哪里

  • k 是您文档中的术语(单词)总数
  • w_ii-th 项。

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

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

关于c# - 识别文本消息之间相似性的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107793/

相关文章:

android - Android 中的质因数分解

android - 如何从文本字段中获取标签?

c# - 字符串中某个字符出现的次数

c# - 异步模块或处理程序已完成,而异步操作仍未决

c# - 使用反射,在已经存在的对象上调用 Field 的方法

.net - GemBox - 滚动到 View 功能缺失?

c# - 多线程与顺序处理的效果如何?

c++ - 回答对二进制数组的查询

c# - Entity Framework - 保存引用新记录的外键

c# - foreach 循环与 Dictionary 一起使用