7

2 つの文字列 (この場合はテキストの段落) を比較し、内容が類似している可能性を判断できる宝石を探しています (おそらく、いくつかの単語が再配置、変更されているだけです)。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 を使用して差分を取得する方法については、wiki ページ で説明されています)。

于 2012-06-27T00:54:25.837 に答える