Desidero trovare la somiglianza di stringhe tra due stringhe. La pagina This contiene esempi di alcuni di essi. Python ha un'implementazione di Levenshtein algorithm. C'è un algoritmo migliore, (e si spera una libreria python), sotto questi punti di contatto.Metriche di similitudine di stringhe in Python
- Voglio fare corrispondenze sfocate tra stringhe. ad esempio le corrispondenze ("Ciao, Tutto il popolo", "Ciao, tutto il tuo popolo") devono restituire True
- I falsi negativi sono accettabili, i falsi positivi, tranne in casi estremamente rari, non lo sono.
- Questo viene eseguito in un'impostazione non in tempo reale, quindi la velocità non è (molto) preoccupante.
- [Modifica] Sto confrontando stringhe di più parole.
Qualcosa di diverso dalla distanza di Levenshtein (o dal rapporto di Levenshtein) sarebbe un algoritmo migliore per il mio caso?
vedi: http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison –
per quanto riguarda il punto 2: leggere questo: http://en.wikipedia.org/wiki/Receiver_operating_characteristic. Secondo il tuo punto 2, la migliore metrica di similarità sarebbe quella di chiamare solo stringhe identiche simili. Tutto ciò che è sfocato al di là di questo avrà falsi positivi. –
Umm .. Beh, allora il non-errore dell'intelligenza umana è ciò che sto cercando. Per esempio. Un umano può concludere che Appel è proabbaly come Apple, ma Ape non lo è. Probabilmente non chiarirei il punto. – agiliq