我正在寻找一种可以比较两条短信(比方说论坛帖子)并确定相似百分比的算法。
为此目的最有效的解决方案是什么?
想法是使用此算法来识别论坛上拥有两个以上昵称的用户,假装是不同的人。
我将构建一个程序来读取他们所有的帖子,并将第一个帐户的每个帖子与第二个帐户的帖子进行比较,以确定他们是否真的是两个不同的人,或者只是一个用户的两次注册。
最佳答案
我首先想到的是 Levenshtein Distance ,但它更侧重于单词的相似性。
你可以使用 tf-idf , 但如果您的语料库包含两个以上的文档,它可能会更好。
另一种方法是使用向量空间模型表示文档(帖子),例如:
(w_0, w_1, ..., w_k)
在哪里
k
是您文档中的术语(单词)总数w_i
是i-th
项。
然后计算Hamming Distance ,它基本上比较两个向量(数组)并计算它们不同的位置。您可以先丢弃停用词(即介词等词)
考虑到用户可能会更改一些词、使用同义词等。有很多模型用于表示文档、计算它们之间的相似度。其中一些采用计数词依赖性,这为流程提供了更多语义,而另一些则不采用。
关于c# - 识别文本消息之间相似性的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107793/