Buon pomeriggio,Levenshtein DFA in .NET
Qualcuno sa di un'implementazione "out-of-the-box" di Levenshtein DFA (automa a stati finiti deterministico) in .NET (o facilmente traducibili ad esso) ? Ho un dizionario molto grande con più di 160000 parole diverse, e voglio, data una parola ufficiale w, trovare tutte le parole conosciute a distanza di Levenshtein al massimo 2 di w in modo efficiente.
Ovviamente, avere una funzione che calcola tutte le possibili modifiche a distanza di modifica di una determinata parola e applicarla di nuovo a ciascuna di queste modifiche risolve il problema (e in un modo abbastanza diretto). Il problema è effiency --- dato un 7 parola lettera, questo può già prendere più di 1 secondo per completare, e ho bisogno di qualcosa di molto più efficiente --- se possibile, in quanto è con Levenshtein DFA, una soluzione che prende O (| w |) passaggi.
Edit: so che posso costruire il mio approccio al problema con un po 'di studio, ma al momento non posso permettermi di leggere gli articoli di 60 pagine di Schulz e Mihov.
Grazie mille.
Il codice relativo a Automazione Levenshtein in Lucene è disponibile tramite un repository di snapshot di Maven da qualche parte? Non sono stato in grado di trovarlo. –
Ho fatto il duro lavoro in modo da non dovete, è possibile trovare il codice portato su C# qui https://github.com/mjvh80/LevenshteinDFA/ (nota: WIP). – Marcus
I collegamenti sono morti ..:/ – ostati