[PYTHON] Führen Sie Polyglot auf Raspberry Pi aus, um eine morphologische Analyse auf Englisch durchzuführen

Es war notwendig, eine morphologische Analyse auf Englisch durchzuführen, wenn das Material für den Adventskalender erstellt wurde, aber ich blieb ein wenig stecken, also werde ich es verlassen.

Was ist Polygot?

In der japanischen Domäne wird MeCab häufig als morphologisches Analysewerkzeug verwendet, aber es gibt nicht so viele Fälle, wenn es um morphologische Analyse auf Englisch geht. Polygot ist eine Bibliothek mit vielen Funktionen der Analyse natürlicher Sprachen wie Sprachidentifikation und Spracherkennung, einschließlich der morphologischen Analyse englischer Sätze.

Sprachunterstützungsbereich

Es ist wie in Offizielles Dokument beschrieben, aber die unterstützten Sprachen unterscheiden sich je nach Funktion.

Funktionsname Anzahl der unterstützten Sprachen Erläuterung
Tokenisierung 165 Sprachen Teilen Sie die Zeichenfolge in die kleinsten Sätzeinheiten ein, die bei der Verarbeitung natürlicher Sprache behandelt werden sollen
Spracherkennung 196 Sprachen Identifizieren Sie die Sprache der zu analysierenden Zeichenfolge
Einzigartige Ausdrucksextraktion 40 Sprachen Extrahiert den eindeutigen Ausdruck aus der zu analysierenden Zeichenfolge PolygotOrtOrganisationMannSie können 3 Arten von extrahieren
Teilwort-Tagging 16 Sprachen Fügen Sie jedem Token der zu analysierenden Zeichenfolge ein Teilwort-Tag hinzu
Emotionsanalyse 136 Sprachen NegativneutralpositivSie können 3 Arten von bekommen
Verteilte Darstellung 137 Sprachen Ordnen Sie Wörter dem d-dimensionalen Vektorraum zu
Morphologische Analyse 135 Sprachen Teilen Sie die zu analysierende Zeichenfolge in die kleinsten sinnvollen Einheiten
Transliteration 69 Sprachen Konvertiert die eingegebene Zeichenfolge in die Zeichenfolge der angegebenen Sprache

Wie Sie der obigen Tabelle entnehmen können, werden viele Sprachen unterstützt.

Install Lassen Sie uns Polygot so einrichten, dass es tatsächlich funktioniert.

Installieren Sie Polygot

$ sudo pip3 install -U polyglot

polyglot selbst kann einfach durch Ausführen des obigen Befehls installiert werden. Um jedoch tatsächlich eine Sprachanalyse mit Polyglot durchzuführen, ist es erforderlich, ein Wörterbuch der zu analysierenden Sprache zu erhalten. Wenn beim Abrufen des Wörterbuchs keine Intensivstation installiert ist, wird ein Fehler ausgegeben. Führen Sie daher vor dem Herunterladen den folgenden Befehl aus, um die erforderliche Bibliothek abzurufen.

$ sudo apt-get -y install libicu-dev
$ sudo pip3 install -U pyicu
$ sudo pip3 install -U morfessor

Außerdem ist ** pycld2 ** erforderlich, um das Modell herunterzuladen. In einer normalen Linux-Umgebung können Sie installieren, indem Sie einfach auf "$ sudo pip install pycld2" klicken. Wenn ich jedoch den obigen Befehl auf Raspberry Pi ausführe, wird der folgende Fehler angezeigt.

arm-linux-gnueabihf-gcc: error: unrecognized command line option ‘-m64’
  error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pycld2

Der obige Fehler tritt auf, weil der Compiler für die ARM-Architektur die Option -m64 nicht bereitstellt und die Kompilierung fehlschlägt. Pycld2 kann derzeit nicht installiert werden, sodass Polyglot nicht auf Raspberry Pi ausgeführt werden kann. Ich bin in Schwierigkeiten ...

Installieren Sie pycld2 auf Raspberry Pi

Da es nicht so installiert werden kann, wie es ist, muss setup.py ausgeführt werden, nachdem die in setup.py von pycld2 angegebene Kompilierungsoption -m64 entfernt wurde. Spielen Sie nach git clone aus dem folgenden Repository mit setup.py. aboSamoor/pycld2 - Github

$ git clone https://github.com/aboSamoor/pycld2.git
$ cd pycld2/

Wechseln Sie in das Verzeichnis git clone pycld2, entfernen Sie ** - m64 ** aus dem Array der Kompilierungsoptionen, das in Zeile 78 von setup.py direkt darunter beschrieben ist, und speichern Sie es.

Vorher ändern


    language="c++",
    # TODO: -m64 may break 32 bit builds
    extra_compile_args=["-w", "-O2", "-m64", "-fPIC"],

Nach der veränderung


    language="c++",
    # TODO: -m64 may break 32 bit builds
    extra_compile_args=["-w", "-O2", "-fPIC"],

Führen Sie nach den Änderungen den folgenden Befehl aus.

$ sudo pip3 install hogehoge/pycld2/
Successfully built pycld2
Installing collected packages: pycld2
Successfully installed pycld2-0.42

Wenn nach der Ausführung Erfolgreich angezeigt wird, ist die Installation erfolgreich.

Laden Sie das Modell herunter

Sie können das Modell herunterladen, das den folgenden Befehl ausführt. Dieses Mal werden wir die Morphologie englischer Sätze analysieren. Laden Sie also das englische Modell herunter.

$ polyglot download morph2.en
[polyglot_data] Downloading package morph2.en to
[polyglot_data]     /home/pi/polyglot_data...

Aktuelle morphologische Analyse

Sie müssen lediglich den folgenden Beispielcode ausführen.

morph.py


from polyglot.text import Text

sample_text = "One Hamburger and a Medium Coffee please."
tokens = Text(sample_text)
print(tokens.morphemes)

Wenn Sie das obige Skript tatsächlich ausführen, können Sie das Ergebnis in der folgenden Form erhalten.

$ python3 morph.py 
['One', ' ', 'Ham', 'burg', 'er and a Medium Coffee p', 'lease', '.']

abschließend

Dieses Mal habe ich Polyglot zum ersten Mal verwendet, um ein bestimmtes Programm zu erstellen. Da es möglich ist, die Sprache zu beurteilen, denke ich, dass Japanisch in Verbindung mit der Twitter-API auf der MeCab-Seite verarbeitet werden kann und der Rest Polyglot überlassen werden kann. Ich denke nicht, dass die Verarbeitung von englischen Sätzen in natürlicher Sprache im Geschäftsleben verwendet wird, aber ich werde es als Memorandum als eine Schublade belassen.

Recommended Posts

Führen Sie Polyglot auf Raspberry Pi aus, um eine morphologische Analyse auf Englisch durchzuführen
So installieren Sie NumPy auf Raspeye
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Das Hindernis, OpenCV 3.1.0 in Himbeer-Pi 3 zu setzen und das Beispiel in Python3 auszuführen: ImportError: Kein Modul mit dem Namen cv2-Lösung
Führen Sie die LED-Matrix interaktiv mit Raspberry Pi 3B + auf Slackbot aus
Pigpio auf Himbeer-Pi
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Cython auf Raspberry Pi
Führen Sie das AWS IoT Device SDK für Python auf Raspberry Pi aus
Ich möchte Interrupts auf dem Raspberry Pi deaktivieren (≒ DI / EI)
Ändern Sie die Meldung, die beim Anmelden bei Raspberry Pi angezeigt wird
Ich habe mit Raspberry Pi gesprochen
Einführung von PyMySQL in Himbeer-Pi3
Pyenv auf Raspberry Pi eingeführt
Verwenden Sie NeoPixel mit Himbeerkuchen
Installieren Sie OpenCV4 auf Raspberry Pi 3
Installieren Sie TensorFlow 1.15.0 auf Raspberry Pi
Melden Sie sich mit ssh ohne Passwort bei Raspberry PI an (Schlüsselauthentifizierung)
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Ein Fehler beim Einfügen von Pygame in Python3 auf Himbeer-Pi wurde behoben
Führen Sie eine morphologische Analyse in der von GCE gestarteten maschinellen Lernumgebung durch
Ich möchte Python GUI ausführen, wenn Raspberry Pi startet
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten (Hello World)
So spielen Sie Musikdateien (WAV / MP3) auf Raspberry Pi Python ab
Port FreeRTOS auf Raspberry Pi 4B
Testen der Kommunikation mit Raspberry Pi
MQTT auf Raspberry Pi und Mac
Vorbereiten des Betriebs von Flask auf EC2
Installieren Sie ghoto2 auf Raspberry Pi (Hinweis)
Ausgabe von Raspberry Pi an Line
Wie man Matplotlib auf Heroku ausführt
Versuchen Sie es mit ArUco mit Raspberry Pi
OpenCV-Installationsverfahren auf Raspberry Pi
Ein- / Ausschalten von Raspberry Pi mit Arduino
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Erkennen Sie den Schalterstatus mit Raspberry Pi 3
Installieren Sie OpenMedia Vault 5 auf Raspberry Pi 4
L Chika mit Himbeer-Pi C #
[Raspberry Pi] Python wurde standardmäßig in Python3 geändert
Erstellen Sie wxPython unter Ubuntu 20.04 auf Himbeer-Pi 4
Erstellen Sie Verknüpfungen, um Python-Dateien auf dem Terminal mit VScode auszuführen
Von der Vorbereitung der morphologischen Analyse mit Python unter Verwendung von Polyglot bis zur Teilwortmarkierung