¿Podría alguien darme un ejemplo sobre cómo hacer la concordancia difusa de dos cadenas usando Lucene.NET (o usando la versión Java de Lucene, o en cualquier otro idioma que tenga puerto de Lucene).Lucene.NET (Strings fuzzy matching)
6
A
Respuesta
5
¿Podría ser un poco más específico sobre lo que quiere decir con la coincidencia difusa?
Lucene ofrece consultas difusas utilizando el operador tilde (~) y los comodines (* &?) See here
Si desea comparar la distancia de cadena de 2 cadenas, utilizando métodos como Levenshtein, Jaro-Winkler etc. es mejor utilizar una biblioteca separada como SimMetrics. Uso Simmetrics en mi sitio de producción y funciona fabuloso.
SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein(); //compare string 1, string 2
double sim = ls.GetSimilarity(string_1, string_2);
if(sim > [some value])
{
//do something
}
Cuestiones relacionadas
- 1. Fuzzy Matching Numbers
- 2. elasticsearch fuzzy matching max_expansions & min_similarity
- 3. Ruby regex matching strings from a array?
- 4. Ejecutando bash strings usando scala.sys.process
- 5. IndexedDB Fuzzy Search
- 6. JavaScript fuzzy search
- 7. fuzzy DISTINCT Valores
- 8. F # y Fuzzy Logic
- 9. Bash Pattern Matching
- 10. Regular Expression Matching Prolog
- 11. perl regex matching failed
- 12. Python regex string matching?
- 13. .NET regex matching
- 14. Lucene.NET "O"
- 15. Solr Fuzzy Buscar palabras similares
- 16. vim fuzzy finder subdirectory search?
- 17. Javascript string matching pattern help
- 18. vba regex: dot matching newline
- 19. Python regex matching propiedades Unicode
- 20. Perl strings internals
- 21. Javap Asciz Strings
- 22. Python Raw Strings
- 23. C# Splitting Strings?
- 24. Tokenizing strings en C
- 25. Paginación usando Lucene.net
- 26. Mejores prácticas de Lucene.Net
- 27. Lucene.NET - ordenando por int
- 28. Lucene/Lucene.NET - Document.SetBoost() valores?
- 29. Lucene.NET problema de origen
- 30. Solo lectura DB Connection Strings
Gracias por su respuesta señor. Tienes razón, quiero comparar dos cadenas usando el algoritmo de Levenshtein. ¿Podrías darme un ejemplo de cómo haces borrosa dos cadenas usando SimMetrics? – user306080
es realmente muy recta hacia adelante: 1. Añadir una referencia a la DLL Simmetrics en su proyecto 2. En el método en el que desea ejecutar la similitud, ls SimMetricsMetricUtilities.Levenstein = new SimMetricsMetricUtilities.Levenstein(); // comparar cadena 1, cadena 2 double sim = js.GetSimilarity (string_1, string_2); si (SIM> [algún valor]) { // hacer algo} – Mikos
el único problema que veo con esto, es que se hace el juego después de recibir los resultados de Lucene. – Dementic