Erstellt eine Bibliothek für Python, die die morphologische Teilung problemlos handhaben kann

Inhalt dieses Artikels

Was Sie mit dieser Bibliothek machen können

Installation

Mecab und Mecab-neologd

Sie müssen MeCab zuerst installieren.

Aber ich denke, die vorverarbeitenden Handwerker sind bereits bereit, also werde ich es weglassen.

Es unterstützt auch das Aufrufen des Mecab-neologd-Wörterbuchs, daher ist es eine gute Idee, es installieren zu lassen.

Einbau des Hauptkörpers

Machen Sie git clone [email protected]: Kensuke-Mitsuzawa / JapaneseTokenizers.git und Sie können es mit python setup.py install verwenden.

Oder Sie können dies mit pip install git + https: // github.com / Kensuke-Mitsuzawa / JapaneseTokenizers tun.

Wie benutzt man

Der gleiche Inhalt ist in Beispiel geschrieben, daher werde ich ihn kurz schreiben.

Morphologische Unterteilung

Bereiten Sie die Eingabeanweisung vor

`satz = u'Teheran (persisch: تهران; Teheran Teheran.ogg Aussprache [help / file] / teɦˈrɔːn /, Englisch: Teheran) ist die Hauptstadt von Westasien, Iran und die Hauptstadt von Teheran. Bevölkerung 12.223.598. Die Stadtbevölkerung erreicht 13.413.348. '``

python2x gibt nur "Unicode" ein.

Es spielt keine Rolle, welche Sie für python3x verwenden.

Gibt den Betriebssystemtyp an. Anders als "centOS" ist "osType =" generic "" in Ordnung. Nur centOS sollte osType =" Centos " haben. (Da die Systembefehle von Mecab nur für centOS unterschiedlich sind. Möglicherweise gibt es andere solche Betriebssysteme ... Ich habe bestätigt, dass es unter Ubuntu und Mac funktioniert.)

Gibt den Typ des Wörterbuchs an.

Initialisieren Sie die Instanz mecab_wrapper = MecabWrapper(dictType=dictType, osType=osType)

Geteilte Wörter. tokenized_obj = mecab_wrapper.tokenize(sentence=sentence)

Standardmäßig werden Wörter und Teile in einem Tapple-Paar zurückgegeben.

tokenized_obj = mecab_wrapper.tokenize(sentence=sentence, return_list=False)

Anschließend wird dieses Klassenobjekt zurückgegeben. Wenn Sie es also für eine andere Verarbeitung verwenden möchten, wird dies verwendet Es ist besser, das Flag anzugeben.

Filtern

Filtern

Das Stoppwort ist

stopwords = [u'Teheran ']

Fügen Sie eine solche Zeichenfolge in die Liste ein. (Sowohl str als auch unicode sind akzeptabel)

Um nach Teilen anzugeben, geben Sie als "[(Teil des Teiletupels)]" an.

Teilwörter können bis zu 3 Ebenen angegeben werden. Zum Beispiel in IPADIC Part-Lyrics, wenn Sie "Nomen-proprietäre Nomenklatur-persönlicher Name" möchten, "(u'noun", Schreiben Sie eine proprietäre Nomenklatur, einen persönlichen Namen.

Wenn Sie bis zu "Substantiv-proprietäres Substantiv" angeben möchten, verwenden Sie "(u'noun ', u'proprietary noun)".

Auch hier können Sie sowohl "str" als auch "unicode" eingeben.

Platzieren Sie den Teil, den Sie erwerben möchten, in der Liste.

pos_condition = [(u'noun ', u'proprietary noun'), (u'verb ', u'independence')]

Führen Sie die Filterung durch.

filtered_obj = mecab_wrapper.filter(
    parsed_sentence=tokenized_obj,
    pos_condition=pos_condition
)

Der Rückgabewert ist dieses Klassenobjekt

Warum hast du so etwas gemacht?

Kurz zusammengefasst

Es ist eine Motivation.

Ich bin seit langer Zeit ein Sachbearbeiter für die Verarbeitung natürlicher Sprache ... Ich bin ein Heiliger, der Tag für Tag Vorverarbeitungen durchführt, manchmal sogar die Nachforschungen anderer vorverarbeitet. .. .. ..

Irgendwann bemerkte ich jedoch plötzlich __ "Schreibt der morphologische Teilungsteil nicht jedes Mal den gleichen Prozess?" __

Während ich also immer wieder dasselbe mache, habe ich nur die Prozesse gepackt, die ich am häufigsten verwendet habe (und wahrscheinlich verwenden werde).

Ein Paket, das in Python ähnlich sein kann, ist natto.

Ich fühlte mich jedoch unpraktisch, weil ich den Filterprozess in Natto schreiben musste und das Wörterbuch nicht hinzufügen konnte, also habe ich ein neues erstellt.

Egal, ob Sie ein Vorverarbeitungshandwerker oder ein aktiver Vorverarbeitungshandwerker sind! Ich hoffe, dass Sie Ihre Arbeit so weit wie möglich reduzieren und NLP genießen können.

Recommended Posts

Erstellt eine Bibliothek für Python, die die morphologische Teilung problemlos handhaben kann
Erstellt eine Python-Bibliothek DateTimeRange, die Zeitbereiche verarbeitet
Über psd-tools, eine Bibliothek, die psd-Dateien in Python verarbeiten kann
Ein Tool zur einfachen Eingabe von Python-Code
Versuchen Sie es mit APSW, einer Python-Bibliothek, die SQLite ernst nehmen kann
Erstellt Simple SQLite, eine Python-Bibliothek, die das Erstellen / Einfügen von SQLite-Tabellen vereinfacht
Erstellt einen Python-Wrapper für die Qiita-API
Erstellt ein Bibliotheksverwaltungstool nur für Header für C / C ++
Sie können auch mit Python problemlos eine GUI erstellen
Klasse für PYTHON, die ohne Kenntnis von LDAP betrieben werden kann
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Ich habe PyQCheck, eine Bibliothek, die QuickCheck mit Python ausführen kann, in PyPI registriert.
So installieren Sie die Python-Bibliothek, die von Pharmaunternehmen verwendet werden kann
Ich habe eine VM erstellt, auf der OpenCV für Python ausgeführt wird
Aus einem Buch, das Programmierer lernen können ... (Python): Zeiger
[Python] Eine praktische Bibliothek, die Kanji in Hiragana konvertiert
Veröffentlichen / Hochladen einer in Python erstellten Bibliothek in PyPI
Eine Bibliothek "Apywrapper", die auf einfache Weise einen Wrapper für die RESTful-API entwickelt
[Python] Erstellt eine Transformations-App für Weltmeister "Mr. Satan"
Aus einem Buch, das Programmierer lernen können ... (Python): Über das Sortieren
Aus einem Buch, das Programmierer lernen können (Python): Nachrichten dekodieren
Ein Beispiel zum Zeichnen von Punkten mit PIL (Python Imaging Library).
Bibliothek zur Angabe eines Nameservers in Python und Dig
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Ich habe eine Bibliothek erstellt, die Konfigurationsdateien mit Python einfach lesen kann
[Python] Ich habe meine eigene Bibliothek erstellt, die dynamisch importiert werden kann
Ich habe ein Paket erstellt, das morphologische Analysegeräte mit Python vergleichen kann
Made gomi, ein Papierkorb-Tool für rm in Go-Sprache
Verwenden Sie networkx, eine Bibliothek, die Diagramme in Python verarbeitet (Teil 2: Lernprogramm).
Ich habe eine Python-Bibliothek erstellt, um die API von LINE WORKS aufzurufen
Versuchen Sie es mit virtualenv, mit dem eine virtuelle Umgebung von Python erstellt werden kann
Aus einem Buch, das der Programmierer lernen kann ... (Python): Finden Sie den häufigsten Wert
Aus einem Buch, das Programmierer lernen können ... (Python): Überprüfung von Arrays
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
[Python] Ich habe ein Follow-Korrelationsdiagramm für Twitter erstellt (Gremlin-Ausgabe)
Ein Python-Skript, das auf dem Mac erstellte ._DS_Store- und ._ * -Dateien löscht
[Python] Ich habe eine Klasse erstellt, die schnell einen Dateibaum schreiben kann
Ich habe eine Python-Wrapper-Bibliothek für die Docomo-Bilderkennungs-API erstellt.
Aus einem Buch, das Programmierer lernen können (Python): Statistischer Verarbeitungsabweichungswert
Ich habe einen Tri-Tree geschrieben, der für die Implementierung von Hochgeschwindigkeitswörterbüchern in D-Sprache und Python verwendet werden kann
Einführung von "Scikit-Mobility", einer Bibliothek, mit der Sie menschliche Flussdaten mit Python einfach analysieren können (Teil 1)
Einfache Handhabung von Listen mit Python + SQLite3
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Erstelltes AtCoder-Testtool für Python
Erweitern Sie einfach kurze URLs für Python
Generieren Sie das Display-Abzeichen für die Download-Anzahl der Python-Bibliotheken
Ein Hinweis zu Mock (Python-Mock-Bibliothek)
[Python] Ein Programm, das ein Paar findet, das durch einen bestimmten Wert geteilt werden kann
Einführung einer Bibliothek, die unter Python / Windows nicht in pip enthalten war
Erstellt Go-Bibliothek nzargv, die Befehlszeilenargumente gut anordnet
[Python] Ich habe einen Twitter-Bot erstellt, der freundschaftliche Tweets mit Markov-Kettenregeln generiert.
Wie man einen Janken-Bot macht, der leicht bewegt werden kann (Kommentar)
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann