7

我正在寻找一种可以比较两个字符串(在这种情况下是文本段落)并能够衡量它们在内容上相似的可能性(可能只有几个单词重新排列、更改)的 gem。我相信 SO 在用户提交问题时会使用类似的东西。

4

1 回答 1

8

我可能会使用 Diff::LCS 之类的东西:

>> require "diff/lcs"
>> seq1 = "lorem ipsum dolor sit amet consequtor".split(" ")
>> seq2 = "lorem ipsum dolor amet sit consequtor".split(" ")
1.9.3-p194 :010 > Diff::LCS.diff(seq1, seq2).length
 => 2

它使用最长公共子序列算法(使用 LCS 获取 diff 的方法在wiki 页面上有描述)。

于 2012-06-27T00:54:25.837 回答