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 :

Beispiel für die Levenshtein-Distanz

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert