2012-06-27 21 views
7

İki dizgeyi (bu durumda metin paragraflarını) karşılaştırabilecek ve içerikte benzer olma olasılığını ölçebilecek bir mücevher arıyorum (belki de sadece birkaç kelime yeniden düzenlenmiş, değişmiş)). Kullanıcıların soru sorduğunda SO'nun benzer bir şey kullandığını düşünüyorum.Metin karşılaştırması için Ruby gem

+0

Sadece kelime sayılarını karşılaştırabilirsiniz. Bundan daha fazlası, bilgisayar kavrayışı ve yapmaya çalıştığınız şeyin üstünde olmanızdır. – Linuxios

cevap

7

Herhalde Diff :: LCS gibi bir şey kullanmak:

>> 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 

O longest common subsequence algoritmasını (the wiki page üzerine anlatılan bir diff almak için LCS kullanma yöntemini) kullanır.

+0

Teşekkür ederim Yehuda, SO üzerinde asılı olduğunu bilmiyordum. Teorik CS'm daha çok Rails'e ve daha hızlı hareket eden teknolojilere kendimi kazandığımda daha da zorlaşıyor, aslında kendimi artık karmaşık algoritmaları artık zeminden bulmam çok zor. –

İlgili konular