So berechnen sie den levenshtein-abstand in r (mit beispielen)
Der Levenshtein-Abstand zwischen zwei Zeichenfolgen ist die Mindestanzahl von Einzelzeichenänderungen, die erforderlich sind, um ein Wort in ein anderes umzuwandeln.
Das Wort „Änderungen“ umfasst Ersetzungen, Einfügungen und Streichungen.
Angenommen, wir haben die folgenden zwei Wörter:
- FEIERN
- PARK
Der Levenshtein-Abstand zwischen den beiden Wörtern (d. h. die Anzahl der Änderungen, die wir vornehmen müssen, um ein Wort in das andere umzuwandeln) wäre 2 :
In der Praxis wird die Levenshtein-Distanz in vielen verschiedenen Anwendungen verwendet, einschließlich Fuzzy-String-Matching, Rechtschreibprüfung und Verarbeitung natürlicher Sprache.
In diesem Tutorial wird erklärt, wie man den Levenshtein-Abstand zwischen Strings in R mithilfe der Funktion stringdist() des Pakets stringdist in R berechnet.
Diese Funktion verwendet die folgende grundlegende Syntax:
#load stringdist package library(stringdist) #calculate Levenshtein distance between two strings stringdist(" string1 ", " string2 ", method = " lv ")
Beachten Sie, dass diese Funktion viele verschiedene Entfernungsmessungen berechnen kann. Durch die Angabe von method = „lv“ weisen wir die Funktion an, die Levenshtein-Distanz zu berechnen.
Beispiel 1: Levenshtein-Abstand zwischen zwei Saiten
Der folgende Code zeigt, wie der Levenshtein-Abstand zwischen den beiden Zeichenfolgen „party“ und „park“ mithilfe der Funktion stringdist() berechnet wird:
#load stringdist package library(stringdist) #calculate Levenshtein distance between two strings stringdist(' party ', ' park ', method = ' lv ') [1] 2
Der Levenshtein-Abstand beträgt 2 .
Beispiel 2: Levenshtein-Abstand zwischen zwei Vektoren
Der folgende Code zeigt, wie der Levenshtein-Abstand zwischen jeder paarweisen Kombination von Zeichenfolgen in zwei verschiedenen Vektoren berechnet wird:
#load stringdist package library(stringdist) #definevectors a <- c('Mavs', 'Spurs', 'Lakers', 'Cavs') b <- c('Rockets', 'Pacers', 'Warriors', 'Celtics') #calculate Levenshtein distance between two vectors stringdist(a, b, method=' lv ') [1] 6 4 5 5
Das Ergebnis lässt sich wie folgt interpretieren:
- Der Levenshtein-Abstand zwischen „Mavs“ und „Rockets“ beträgt 6 .
- Der Levenshtein-Abstand zwischen den „Spurs“ und den „Pacers“ beträgt 4 .
- Der Levenshtein-Abstand zwischen den „Lakers“ und den „Warriors“ beträgt 5 .
- Der Levenshtein-Abstand zwischen „Cavs“ und „Celtics“ beträgt 5 .
Beispiel 3: Levenshtein-Abstand zwischen Spalten des Datenrahmens
Der folgende Code zeigt, wie der Levenshtein-Abstand zwischen jeder paarweisen Kombination von Zeichenfolgen in zwei verschiedenen Spalten eines Datenrahmens berechnet wird:
#load stringdist package library(stringdist) #define data data <- data.frame(a = c('Mavs', 'Spurs', 'Lakers', 'Cavs'), b = c('Rockets', 'Pacers', 'Warriors', 'Celtics')) #calculate Levenshtein distance stringdist(data$a, data$b, method=' lv ') [1] 6 4 5 5
Wir könnten dann die Levenshtein-Distanz als neue Spalte im Datenrahmen hinzufügen, wenn wir wollten:
#save Levenshtein distance as vector lev <- stringdist(data$a, data$b, method=' lv ') #append Levenshtein distance as new column data$lev <- lev #view data frame data ab lev 1 Mavs Rockets 6 2 Spurs Pacers 4 3 Lakers Warriors 5 4 Cavs Celtics 5
Zusätzliche Ressourcen
So berechnen Sie die Hamming-Distanz in R
So berechnen Sie den euklidischen Abstand in R
So berechnen Sie die Entfernung von Manhattan in R