我正在寻找可以比较两个字符串(在这种情况下是文本段落)的宝石,并且能够衡量它们在内容上相似的可能性(可能只重新排列,更改了几个单词)。我相信当用户提交问题时,SO会使用类似的内容。
答案 0 :(得分:7)
我可能会使用像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
它使用longest common subsequence算法(the wiki page上描述了使用LCS获取差异的方法)。