2012-06-27 75 views
7

我正在寻找一种可以比较两个字符串(在本例中为段落文本)的宝石,并且能够测量它们在内容上相似的可能性(可能只有几个字被重新排列,更改)。我相信当用户提交问题时,SO会使用类似的东西。用于文本比较的红宝石

+0

你可以随时比较字数。除此之外,任何事情都将是计算机理解,并让自己远远超出你想要做的事情。 – Linuxios

回答

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算法(使用LCS来获得the wiki page描述一个差异的方法)。

+0

谢谢耶胡达,不知道你挂在SO上。我的理论CS越来越生疏,我越来越深入Rails和更快速的移动技术,实际上我几乎找不到自己从头开始构建复杂的算法...... –