ho bisogno di attuare un qualche tipo di questo:fuzzy matching con filtro soglia C#
string textToSearch = "Extreme Golf: The Showdown";
string textToSearchFor = "Golf Extreme Showdown";
int fuzzyMatchScoreThreshold = 80; // One a 0 to 100 scale
bool searchSuccessful = IsFuzzyMatch(textToSearch, textToSearchFor, fuzzyMatchScoreThreshold);
if (searchSuccessful == true)
{
-- we have a match.
}
Ecco la funzione stub scritto in C#:
public bool IsFuzzyMatch (string textToSearch, string textToSearchFor, int fuzzyMatchScoreThreshold)
{
bool isMatch = false;
// do fuzzy logic here and set isMatch to true if successful match.
return isMatch;
}
Ma non ho idea di come implementare la logica nel metodo IsFuzzyMatch. Qualche idea? Forse c'è una soluzione pronta per questo scopo?
È possibile calcolare la [distanza di Levenshtein] (http://en.wikipedia.org/wiki/Levenshtein_distance), utilizzando le parole come simboli anziché caratteri, dove le parole sono considerate uguali in base alla loro distanza di Levenshtein. Ci sono [molti argomenti SO] (http://stackoverflow.com/search?q= [c% 23] + Levenshtein + distanza) sulla distanza di Levenshtein. – dtb
Vedere http://stackoverflow.com/questions/451884/similar-string-algorithm/451910#451910 –