2012-06-27 17 views
7

Sto cercando una gemma in grado di confrontare due stringhe (in questo caso i paragrafi di testo) e di essere in grado di valutare la probabilità che siano simili nel contenuto (con forse solo poche parole riorganizzate, modificate). Credo che SO usi qualcosa di simile quando gli utenti inviano domande.Gemma rubino per il confronto di testo

+0

È sempre possibile confrontare i conteggi delle parole. Qualunque cosa in più sarebbe la comprensione del computer e il tuo superamento di ciò che stai cercando di fare. – Linuxios

risposta

7

probabilmente sarei usare qualcosa come 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 

Esso utilizza il longest common subsequence algoritmo (il metodo per l'utilizzo di LCS per ottenere un diff viene descritta a the wiki page).

+0

Grazie, Yehuda, non sapevo che ti fossi aggirato su SO. Il mio CS teorico sta diventando più ferroso, più mi diverto in Rails e le tecnologie più rapide in movimento, infatti difficilmente mi ritrovo a costruire complessi algoritmi da zero più ... –

Problemi correlati