2012-06-27 7 views
7

Estoy buscando una joya que pueda comparar dos cadenas (en este caso, párrafos de texto) y poder medir la probabilidad de que tengan un contenido similar (tal vez con solo unas pocas palabras reorganizadas, cambiadas) Creo que SO usa algo similar cuando los usuarios envían preguntas.Ruby joya para comparación de texto

+0

Siempre se puede comparar el conteo de palabras. Algo más que eso sería la comprensión de la computadora, y llegar muy por encima de lo que está tratando de hacer. – Linuxios

Respuesta

7

probablemente me usar algo como 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 

Se utiliza el algoritmo longest common subsequence (el método para el uso de LCS para obtener un diff se describe en the wiki page).

+0

Gracias Yehuda, no sabía que te quedabas en SO. Mi CS teórica se está volviendo más ruda cuanto más me dedico a Rails y las tecnologías de movimiento más rápido, de hecho, casi nunca me encuentro construyendo algoritmos complejos desde cero ... –