Heim > Datenbank > MySQL-Tutorial > Wie kann ich den Prozentsatz der String-Ähnlichkeit in MySQL mithilfe der Levenshtein-Distanz berechnen?

Wie kann ich den Prozentsatz der String-Ähnlichkeit in MySQL mithilfe der Levenshtein-Distanz berechnen?

Patricia Arquette
Freigeben: 2024-12-13 05:48:12
Original
640 Leute haben es durchsucht

How can I Calculate String Similarity Percentage in MySQL using Levenshtein Distance?

Berechnen der String-Ähnlichkeit in MySQL

In Datenbankverwaltungssystemen wie MySQL ist der Vergleich der Ähnlichkeit von Textstrings eine häufige Anforderung. In diesem Artikel wird ein vielseitiger Ansatz zur Berechnung des Ähnlichkeitsprozentsatzes zwischen zwei Zeichenfolgen mithilfe von MySQL-Funktionen untersucht.

Berechnung der Zeichenfolgenähnlichkeit mithilfe der Levenshtein-Distanz

Die Levenshtein-Distanz ist eine Metrik, die die Anzahl der Bearbeitungen (Einfügungen) misst , Löschungen oder Ersetzungen), die erforderlich sind, um eine Zeichenfolge in eine andere umzuwandeln. Höhere Ähnlichkeitswerte weisen auf eine größere Ähnlichkeit zwischen den Zeichenfolgen hin.

In MySQL berechnet die Funktion LEVENSHTEIN() den Levenshtein-Abstand zwischen zwei Zeichenfolgen. Um den Ähnlichkeitsprozentsatz zu erhalten, können wir die folgende Formel verwenden:

Similarity Percentage = (1 - (Levenshtein Distance / Length of Longest String)) * 100
Nach dem Login kopieren

MySQL-Implementierung

Um diesen Ansatz in MySQL zu implementieren, erstellen Sie die folgenden zwei Funktionen:

LEVENSHTEIN() Funktion:

CREATE FUNCTION `LEVENSHTEIN`(s1 TEXT, s2 TEXT) RETURNS INT(11)
DETERMINISTIC
BEGIN
    # ... Function implementation ...
END;
Nach dem Login kopieren

LEVENSHTEIN_RATIO() Funktion:

CREATE FUNCTION `LEVENSHTEIN_RATIO`(s1 TEXT, s2 TEXT) RETURNS INT(11)
DETERMINISTIC
BEGIN
    # ... Function implementation ...
END;
Nach dem Login kopieren

Beispielverwendung

Betrachten Sie das in der Frage bereitgestellte Beispiel:

SET @a = "Welcome to Stack Overflow";
SET @b = "Hello to stack overflow";
Nach dem Login kopieren

Die Abfrage zur Berechnung des Ähnlichkeitsprozentsatzes zwischen @a und @b würde sein:

SELECT LEVENSHTEIN_RATIO(@a, @b) AS SimilarityPercentage;
Nach dem Login kopieren

Diese Abfrage würde einen Wert von 60 zurückgeben, was eine 60-prozentige Ähnlichkeit zwischen den beiden Zeichenfolgen angibt.

Das obige ist der detaillierte Inhalt vonWie kann ich den Prozentsatz der String-Ähnlichkeit in MySQL mithilfe der Levenshtein-Distanz berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage