因为我需要测试一些文本来检查重复的内容以用于 SEO 目的。
为此,我有 2 个文本(在 2 个字符串 S1 和 S2 中),我需要确定 2 个字符串之间的相似度百分比。我的第一个代码没问题,它用
(nbr of common words in S1 & S2)/100x(nbr of words in the shorter string in S1 & S2).
但我不确定这是一个好的算法。
你有一些经验可以分享一个代码示例吗?
您要做的是找到两个字符串的相似度百分比。
一些算法已经解决了这个完全相同的问题。我主要使用的是:
我在 delphi 中快速搜索了代码源。我在 delphi 中找到了 Lenvenshtein的源代码
Lenvenshtein 算法试图在“多少变化”中找到它可以回滚到原始字符串。
NGramDistance 通过拆分单词来比较单词。
因此,对于 Lenvenshtein,字符串 "abc def | klm mno" 将被视为与 "klm mn | abc def"非常不同
,
但 NGramDistance 会将它们视为 100% 相似。
因此,这取决于您是否要考虑字符串的顺序。
我找不到 NGramDistance 的任何源代码。但是你可以把它从 Java 翻译成 Delpi。