¿Alguien puede sugerir un módulo Perl que pueda comparar dos cadenas y devolver un grado con el que coincidan? Busqué CPAN extensamente, y aunque hay módulos similares como String :: Approx y Data :: Compare, no son lo que estoy buscando. Supongamos que tengo dos cadenas: Te amo, y Yo te lo. Quiero funcionalidad que compare estas dos cadenas, teniendo en cuenta numerosos parámetros, la coincidencia de palabras en el orden correcto (amor como la primera palabra en una cadena no debe "coincidir" amor como la cuarta palabra en la segunda cadena , aunque ambas cadenas tienen esa palabra), las palabras no coinciden pero se deletrean casi de manera similar (como love y loge), número de palabras, etc. y devuelven un índice, digamos un número del 0 al 1 en una escala de 1, que representa el grado de similitud entre las dos cadenas. ¿Hay algún módulo Perl de este tipo?Módulo Perl para comparación de texto
Respuesta
Existen muchos de estos módulos. A menudo, sin embargo, tendrá que hacer uso de ellos de alguna manera especial para dar cuenta de sus propias suposiciones. La mayoría de las herramientas de comparación de cadenas como esta solo implementan algún algoritmo para comparar una cadena con otra. La mayoría asume que si tiene que tomar decisiones políticas específicas, las codificará usted mismo.
Personalmente, no estoy seguro de que recomendaría Text::Levenshtein debido a errores y falta de soporte ut8. Aunque no tengo una mejor recomendación tampoco.
Sin embargo, estas búsquedas revelan una gran cantidad de módulos potenciales que usted podría mirar en y determinar lo que funciona mejor para su propósito (basado en los nombres de los algoritmos comunes para hacer este tipo de cosas):
- https://metacpan.org/search?q=levenshtein
- https://metacpan.org/search?q=wagner+fischer
- https://metacpan.org/search?q=edit+distance
Si usted está interesado en similitudes habladas, también se puede ver i ONT comparaciones fonéticas:
Wow. Muchos recursos los buscarán a todos. ¡Gracias! – SexyBeast
- 1. Módulo de comparación de imágenes para PHP
- 2. ¿Hay un módulo Equivlant Perl para el módulo pydbg?
- 3. Perl - Paquete Temas/Módulo
- 4. Ruby joya para comparación de texto
- 5. Módulo Perl uso
- 6. Operador de módulo Perl pregunta
- 7. Algoritmo de comparación de texto
- 8. Descarga de todas las dependencias para un módulo de Perl
- 9. ¿Hay algún módulo Perl puro para crear imágenes y colocar texto en la imagen?
- 10. ¿Sabe un módulo Perl dónde está instalado?
- 11. Instalación de módulo perl: cpan shell frente a rpm/deb
- 12. ¿Hay algún módulo como LWP de Perl para Ruby?
- 13. Cómo construir un archivo de manifiesto para un módulo Perl
- 14. Javascript regex en comparación con Perl regex
- 15. ¿Cuál es el mejor módulo para procesamiento paralelo en Perl?
- 16. Orden de comparación de texto Eclipse
- 17. ¿Cómo se crea un módulo Perl?
- 18. Perl DBD :: Instalación del Módulo Oracle
- 19. ¿Cómo instalo un módulo? Strawberry Perl emite
- 20. ¿Cómo hago una comparación de equivalencia de hash Perl simple?
- 21. Llamar a un módulo Perl desde Python
- 22. Perl - Codificación de archivos y comparación de palabras
- 23. operando el módulo de rubí en comparación con php
- 24. Módulo (s) de Perl para crear una interfaz gráfica de usuario simple de Microsoft Windows?
- 25. código de perl para fusionar varios archivos de texto
- 26. ¿Hay un equivalente de Python para el módulo de Perl Término :: VT102?
- 27. operadores de comparación Perl y "números" en cadena
- 28. ¿Qué módulo de registro usar bajo AnyEvent de Perl?
- 29. Módulo de Python para extraer fechas probables de cadenas?
- 30. ¿Qué es un módulo administrado (en comparación con una Asamblea)?
¿Sería http://search.cpan.org/dist/Text-Levenshtein/Levenshtein.pm hacer lo que estás buscando ¿para? –
Bueno, no estoy seguro, los ejemplos y el artículo de Wikipedia sobre el acuerdo de distancia de Levenshtein solo en comparaciones de palabras, ninguna comparación de cadenas. Así que no sé cómo va a comparar cadenas con algunas de las palabras que coinciden, pero en diferentes posiciones, que no deberían equivaler a una coincidencia. – SexyBeast
Hacer ese tipo de comparación de cuerdas es algo que los humanos hacen trivialmente, pero que es realmente difícil de hacer con una computadora. –