Der Levenshtein-Abstand zwischen zwei Zeichenfolgen ist die Mindestanzahl von Einzelzeichenänderungen, die erforderlich sind, um ein Wort in das andere umzuwandeln.

Das Wort "Änderungen" umfasst Ersetzungen, Einfügungen und Löschungen.

Angenommen, wir haben die folgenden zwei Wörter:

  • PARTY
  • 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) beträgt 2:

Levenshtein Distanz Beispiel

In der Praxis wird der Levenshtein-Abstand in vielen verschiedenen Anwendungen verwendet, einschließlich der ungefähren Zeichenfolgenübereinstimmung, Rechtschreibprüfung und Verarbeitung natürlicher Sprache.

In diesem Tutorial wird erklärt, wie der Levenshtein-Abstand zwischen Zeichenfolgen in R mithilfe der Funktion stringdist() aus dem Paket stringdist in R berechnet wird.

Diese Funktion verwendet die folgende grundlegende Syntax:

#Laden des stringdist Packages
library(stringdist)

#Berechnen Sie den Levenshtein-Abstand zwischen zwei Strings
stringdist("string1", "string2", method = "lv")

Beachten Sie, dass diese Funktion viele verschiedene Entfernungsmetriken berechnen kann. Durch Angabe von method = "lv" weisen wir die Funktion an, den Levenshtein-Abstand zu berechnen.

Beispiel 1: Levenshtein-Abstand zwischen zwei Saiten

Der folgende Code zeigt, wie der Levenshtein-Abstand zwischen den beiden Zeichenfolgen "party" und "park" mit der Funktion stringdist() berechnet wird:

#Laden des stringdist Packages
library(stringdist)

#Berechnen Sie den Levenshtein-Abstand zwischen zwei 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:

#Laden des stringdist Packages
library(stringdist)

# Vektoren definieren
a <- c('Mavs', 'Spurs', 'Lakers', 'Cavs')
b <- c('Rockets', 'Pacers', 'Warriors', 'Celtics')

# Berechnen Sie den Levenshtein-Abstand zwischen zwei Vektoren
stringdist(a, b, method='lv')

[1] 6 4 5 5

Die Interpretation der Ausgabe ist wie folgt:

  • Der Levenshtein-Abstand zwischen 'Mavs' und 'Rockets' beträgt 6.
  • Der Levenshtein-Abstand zwischen 'Spurs' und 'Pacers' beträgt 4.
  • Der Levenshtein-Abstand zwischen 'Lakers' und 'Warriors' beträgt 5.
  • Der Levenshtein-Abstand zwischen 'Cavs' und 'Celtics' beträgt 5.

Beispiel 3: Levenshtein-Abstand zwischen Dataframespalten

Der folgende Code zeigt, wie der Levenshtein-Abstand zwischen jeder paarweisen Kombination von Zeichenfolgen in zwei verschiedenen Spalten eines Dataframes berechnet wird:

#Laden des stringdist Packages
library(stringdist)

# Daten definieren
data <- data.frame(a = c('Mavs', 'Spurs', 'Lakers', 'Cavs'),
                   b = c('Rockets', 'Pacers', 'Warriors', 'Celtics'))

# Levenshtein Abstand berechnen
stringdist(data$a, data$b, method='lv')

[1] 6 4 5 5

Wir könnten dann den Levenshtein-Abstand als neue Spalte im Dataframe anhängen, wenn wir möchten:

# Levenshtein Abstand als Vektor speichern
lev <- stringdist(data$a, data$b, method='lv')

# Levenshtein Abstand als neue Spalte anhängen
data$lev <- lev

# Dataframe anzeigen
data

       a        b 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
Wie berechnet man den euklidischen Abstand in R
So berechnen Sie die Manhattan-Entfernung in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: