-1

因为我需要测试一些文本来检查重复的内容以用于 SEO 目的。

为此,我有 2 个文本(在 2 个字符串 S1 和 S2 中),我需要确定 2 个字符串之间的相似度百分比。我的第一个代码没问题,它用

(nbr of common words in S1 & S2)/100x(nbr of words in the shorter string in S1 & S2).

但我不确定这是一个好的算法。

你有一些经验可以分享一个代码示例吗?

4

1 回答 1

2

您要做的是找到两个字符串的相似度百分比。

一些算法已经解决了这个完全相同的问题。我主要使用的是:

  • LevenshteinDistance
  • NgramDistance

我在 delphi 中快速搜索了代码源。我在 delphi 中找到了 Lenvenshtein的源代码

Lenvenshtein 算法试图在“多少变化”中找到它可以回滚到原始字符串。
NGramDistance 通过拆分单词来比较单词。


因此,对于 Lenvenshtein,字符串 "abc def | klm mno" 将被视为与 "klm mn | abc def"非常不同
, 但 NGramDistance 会将它们视为 100% 相似。

因此,这取决于您是否要考虑字符串的顺序。


我找不到 NGramDistance 的任何源代码。但是你可以把它从 Java 翻译成 Delpi。

java中的源代码来自开源搜索软件Lucene。他们在这个包中实现了更多的字符串度量算法结帐

于 2013-07-23T10:06:11.037 回答