machine-learning
Elaborazione del linguaggio naturale
Ricerca…
introduzione
La PNL è un modo per i computer di analizzare, comprendere e derivare il significato dal linguaggio umano in modo intelligente e utile. Utilizzando la PNL, gli sviluppatori possono organizzare e strutturare le conoscenze per eseguire attività quali riepilogo automatico, traduzione, riconoscimento di entità con nome, estrazione delle relazioni, analisi dei sentimenti, riconoscimento vocale e segmentazione degli argomenti.
Corrispondenza del testo o somiglianza
Una delle aree importanti della PNL è la corrispondenza degli oggetti di testo per trovare somiglianze. Importanti applicazioni di corrispondenza testuale includono la correzione automatica dello spelling, la deduplicazione dei dati e l'analisi del genoma, ecc. A seconda del requisito sono disponibili diverse tecniche di abbinamento del testo. Quindi, abbiamo; Levenshtein Distance
La distanza di Levenshtein tra due stringhe è definita come il numero minimo di modifiche necessarie per trasformare una stringa nell'altra, con le operazioni di modifica consentite che sono l'inserimento, la cancellazione o la sostituzione di un singolo carattere.
Di seguito è riportata l'implementazione per calcoli di memoria efficienti.
def levenshtein(s1,s2):
if len(s1) > len(s2):
s1,s2 = s2,s1
distances = range(len(s1) + 1)
for index2,char2 in enumerate(s2):
newDistances = [index2+1]
for index1,char1 in enumerate(s1):
if char1 == char2:
newDistances.append(distances[index1])
else:
newDistances.append(1 + min((distances[index1], distances[index1+1], newDistances[-1])))
distances = newDistances
return distances[-1]
print(levenshtein("analyze","analyse"))