Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python

In Bezug auf die Bearbeitungsentfernung ist es ein wenig alt, aber der Artikel von Naoya Ito ist hilfreich. Einfach ausgedrückt ist dies eine Methode, um die Nähe zweier Zeichenfolgen als numerischen Wert auszudrücken.

Referenz: Entfernung bearbeiten (Levenshtein-Entfernung) --naoyas Hatena-Tagebuch

Vorbereitung

Es gab ein Paket namens Python-Levenshtein, also lasst es uns einfügen.

$ sudo pip install python-Levenshtein

Versuchen

Schreiben wir einen Code wie diesen.

#!/usr/bin/env python
# coding: utf8

import Levenshtein

string1 = "Taiji Inoue"
string2 = "Yasuji Inoue"

string1 = string1.decode('utf-8')
string2 = string2.decode('utf-8')

print Levenshtein.distance(string1, string2)
$ python levenshtein.py
1

Japanisch ist auch in Ordnung. Wenn Sie ein Zeichen ersetzen, ist es das richtige Zeichen, sodass der Bearbeitungsabstand 1 beträgt.

Ich kann das Wort Python nicht gut tippen, und wenn ich es bemerke, wird es zu Pyhton. Der Bearbeitungsabstand zwischen Pyhton und Python beträgt 2. (Weil es dasselbe ist, wenn Sie die beiden Buchstaben tauschen)

Bonus

Wenn Sie sich die [Dokumentation] ansehen (https://rawgit.com/ztane/python-Levenshtein/master/docs/Levenshtein.html), können Sie anscheinend auch die Jaro-Winkler-Entfernung usw. berechnen.

Bonus 2

Wenn Sie es als MySQL registrieren, das wie das folgende gespeichert ist, sieht es wie ORDER BY LEVENSHTEIN (Titel "Hogehoge") aus. Dies ist praktisch, da es in der Reihenfolge der Buchstaben angezeigt wird. Der Index funktioniert jedoch nicht. Wenn Sie also alle Datensätze durchsuchen und die Anzahl der Datensätze groß ist, ist die Abfrage ziemlich umfangreich.

https://github.com/fza/mysql-doctrine-levenshtein-function

Beziehung

PHP- [Multi-Byte-Unterstützung] Ermitteln der Levenstein-Distanz-Qiita

Recommended Posts

Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python
Schreiben Sie ein Python-Programm, um die Bearbeitungsentfernung [Python] [Levenshtein-Entfernung] zu ermitteln.
Finden Sie das maximale Python
Finden Sie den Stimmungswert mit Python (Rike Koi)
Finden Sie den kürzesten Weg mit dem Python Dijkstra-Algorithmus
Finde Fehler in Python
Rufen Sie die API mit python3 auf.
Finden Sie den Maximalwert Python (verbessert)
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Python] Finden Sie den zweitkleinsten Wert.
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Klicken Sie mit Python auf die Etherpad-Lite-API
Installieren Sie das Python-Plug-In mit Netbeans 8.0.2
Ich mochte den Tweet mit Python. ..
Ich habe versucht, die "Lebenstein-Distanz" mit Python zu berechnen
Beherrsche den Typ mit Python [Python 3.9 kompatibel]
Finden Sie Bildähnlichkeit mit Python + OpenCV
Finden Sie die mysteriöse Veränderung der Pokemon-Bilderbuchbeschreibung nach Levenstein-Entfernung heraus
Machen Sie die Python-Konsole mit UNKO bedeckt
Lassen Sie uns den Maximalwert Python finden (Korrektur ver)
Hinter dem Flyer: Docker mit Python verwenden
Überprüfen Sie die Existenz der Datei mit Python
Finden Sie den SHA256-Wert mit R (mit Bonus)
[Python] Ruft den Variablennamen mit str ab
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Lesen wir die RINEX-Datei mit Python ①
Arbeiten mit OpenStack mit dem Python SDK
Laden Sie mit Python Dateien im Web herunter
Lernen Sie das Entwurfsmuster "Singleton" mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
Lernen Sie das Designmuster "Facade" mit Python
Der Weg zum Kompilieren zu Python 3 mit Thrift
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Finden Sie die allgemeinen Begriffe der Tribonacci-Sequenz in linearer Algebra und Python
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
Finden Sie das Differential zweiter Ordnung mit der automatischen Differenzierung von JAX
2016 Todai Mathematik mit Python gelöst
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Finden Sie mit NumPy die Position über dem Schwellenwert
Der einfachste Weg, um Stimme mit Python zu synthetisieren
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen