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.
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
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;
LEVENSHTEIN_RATIO() Funktion:
CREATE FUNCTION `LEVENSHTEIN_RATIO`(s1 TEXT, s2 TEXT) RETURNS INT(11) DETERMINISTIC BEGIN # ... Function implementation ... END;
Betrachten Sie das in der Frage bereitgestellte Beispiel:
SET @a = "Welcome to Stack Overflow"; SET @b = "Hello to stack overflow";
Die Abfrage zur Berechnung des Ähnlichkeitsprozentsatzes zwischen @a und @b würde sein:
SELECT LEVENSHTEIN_RATIO(@a, @b) AS SimilarityPercentage;
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!