Qualcuno potrebbe darmi un esempio su come eseguire la corrispondenza fuzzy di due stringhe usando Lucene.NET (o usando la versione Java di Lucene, o in qualsiasi altro linguaggio che abbia la porta di Lucene).Lucene.NET (corrispondenza fuzzy con stringhe)
6
A
risposta
5
Potresti essere un po 'più specifico su cosa intendi per abbinamento sfocato?
Lucene offre query sfocate utilizzando l'operatore tilde (~) ed i caratteri jolly (* &?) See here
Se si desidera confrontare la distanza stringa di 2 stringhe utilizzando metodi come Levenshtein, Jaro-Winkler etc. stai meglio usando una libreria separata come SimMetrics. Io uso Simmetrics nel mio sito di produzione e funziona perfettamente.
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
}
Grazie per la risposta, signore. Hai ragione, voglio confrontare due stringhe usando l'algoritmo di Levenshtein, potresti darmi un esempio di come stai sfocando due stringhe usando SimMetrics? – user306080
è in realtà molto straight-forward: 1. Aggiungere un riferimento al dll Simmetrics nel progetto 2. Nel metodo in cui si desidera eseguire la somiglianza, SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein(); // confronta stringa 1, stringa 2 double sim = js.GetSimilarity (stringa_1, stringa_2); se (SIM> [qualche valore]) {// fare qualcosa } – Mikos
l'unico problema che vedo con questo, è che si fa l'abbinamento Dopo aver ottenuto i risultati di Lucene. – Dementic