Dies ist ein Memo für mich, während ich Einführung in Anwendungen zur Verarbeitung natürlicher Sprache in 15 Schritten lese. Dieses Mal werde ich in Kapitel 2, Schritt 03 meine eigenen Punkte aufschreiben.
Verstehen Sie, wie MeCab funktioniert, und versuchen Sie es zu optimieren. Überprüfen Sie auch andere morphologische Analysegeräte als MeCab.
03.1 MeCab
Das Schreiben von MeCab basiert auf dem Wörterbuch. Die Informationen aus der morphologischen Analyse mit MeCab im Wörterbuch hängen davon ab, welche Art von Informationen im Wörterbuch registriert sind, und die im Wörterbuch registrierten Informationen unterscheiden sich je nach Wörterbuch.
Wörterbuchname | Inhalt |
---|---|
IPAdic | ・ MeCab offiziell empfohlenes Wörterbuch ・ Basierend auf Daten namens IPA Corpus |
UniDic | ・ Basierend auf Daten namens UniDic ・ Die zu teilende Einheit ist klein, was einer strengen "morphologischen Analyse" nahe kommt. |
jumandic | -MeCab-Port des Wörterbuchs, das im morphologischen Analysegerät JUMAN verwendet wird und sich von MeCab unterscheidet. ・ Basierend auf Daten namens Kyoto Corpus ・ Metainformationen wie die repräsentative Notation werden angegeben |
ipadic-NEologd | ・ Die Anzahl der Wörter basierend auf dem IPA-Wörterbuch wurde erheblich erweitert ・ Der Wortschatz wird häufig durch das Crawlen von Wörtern aus dem Internet erweitert, und die Fähigkeit, auf neue Wörter zu reagieren, ist sehr hoch. ・Es wird empfohlen, eine Normalisierung als Vorbehandlung durchzuführen |
unidic-NEologd | ・ Ipadic-Ähnlich wie NEologd, ein Wörterbuch mit Worterweiterungen basierend auf UniDic |
Der Unterschied zwischen IPAdic und ipadic-NEologd besteht beispielsweise in der Analyse des Wortes "Deep Learning" (ein relativ neues Wort).
--IPAdic: Geteilt durch "Deep" und "Learning" --ipadic-NEologd: Behandelt mit einem Wort "Deep Learning"
Das Wörterbuch enthält nicht nur Informationen zu morphologischen Elementen wie Ausführungsergebnissen, sondern auch die folgenden verschiedenen Informationen.
Für einen bestimmten Satz wird die Kombination, die die Kombination der Auftrittskosten und der Verbindungskosten minimiert, als Analyseergebnis verwendet. (Im folgenden Beispiel sind die Kosten für die Aufteilung in "Ich liebe Higashi Osaka" (minimal) am niedrigsten, daher ist dies das Analyseergebnis.)
Beispiel) "Ich liebe Ost-Osaka"
#Bei der Trennung mit "Ich liebe Higashi Osaka"
Verbindungskosten zwischen Satzanfang und "Higashi Osaka"
Auftrittskosten von "Higashi Osaka"
Verbindungskosten von "Higashi Osaka" und "Ich liebe dich"
Vorkommenskosten von "Liebe"
"Ich liebe dich" und die Verbindungskosten am Ende des Satzes
#Bei der Trennung mit "Ich mag die Todai Osaka Universität"
Verbindungskosten zwischen Satzanfang und "Higashi Osaka"
Vorkommenskosten von "Todai"
Verbindungskosten von "Todai" und "Osaka University"
Auftrittskosten der "Osaka University"
Verbindungskosten von "Osaka University" und "Gefällt mir"
Vorkommenskosten von "Gefällt mir"
"Ich liebe dich" und die Verbindungskosten am Ende des Satzes
Wenn Sie mit einem vorhandenen Wörterbuch nicht die erwarteten Ergebnisse erzielen, optimieren Sie das Wörterbuch selbst.
#UTF-Codierung der Quelldatei-In 8 konvertieren
$ nkf --overwrite -Ew ./mecab-ipadic-2.7.0-20070801/*
#Wörterbuch erstellen
$ mkdir build
$ $(mecab-config --libexecdir)/mecab-dict-index -d ./mecab-ipadic-2.7.0-20070801 -o build -f utf8 -t utf8
$ cp mecab-ipadic-2.7.0-20070801/dicrc ./build/. #Kopieren Sie dicrc
nkf ist eine Abkürzung für "Network Kanji Filter".
Erstellen Sie eine CSV-Datei im Quelldateiverzeichnis
#Oberflächenform, linke Kontext-ID, rechte Kontext-ID, Auftrittskosten, Teiltexte, Teiltexte Unterklassifizierung 1, Teilteilunterklassifizierung 2, Teilteilunterklassifizierung 3, Verwendungsart, Verwendungsform, Prototyp, Lesen, Aussprache
#Wenn Sie die Verarbeitung natürlicher Sprache hinzufügen möchten
Verarbeitung natürlicher Sprache,1288,1288,0,Substantiv,固有Substantiv,Allgemeines,*,*,*,Shizengengoshori,Shizengen Goshori,Shizengen Goshori
Beachten Sie jedoch beim Ändern der oben genannten Kosten **, dass dies andere Ergebnisse als das beabsichtigte Teil ** beeinflussen kann.
Es scheint eine Methode zu geben, um die Kosten automatisch anzupassen, aber ** es scheint, dass der Einflussbereich durch manuelles Anpassen der Kosten des Teils, das Sie korrigieren möchten, klein gehalten werden kann **.
Verschaffen Sie sich einen Überblick über andere morphologische Analysegeräte als MeCab.
Morphologischer Analysator | Inhalt |
---|---|
MeCab | ・ Basierend auf dem Wörterbuch ・ Das Wörterbuch enthält Informationen zu Wörtern, Vorkommenskosten und Verbindungskosten. ・ Die Ausführungsgeschwindigkeit ist hoch - Da das Wörterbuch in eine externe Datei umgewandelt wurde, kann es nach Bedarf angepasst werden. |
JUMAN++ | ・ Ein relativ neuer morphologischer Analysator, der ein neuronales Netzwerk verwendet ・ Berücksichtigen Sie nicht nur die grammatikalische Korrektheit, sondern auch die Wortbedeutung ・ Berücksichtigen Sie Informationen zu allen Wörtern vor einem Wort ・ Entspricht der Notationsschwankung ・ Es gibt viele Vorteile gegenüber MeCab, aber die Ausführungsgeschwindigkeit ist geringer. |
KyTea(Süße) | ・ SVM sagt anhand der Zeichen davor und danach voraus, ob ein Wort zwischen einem Zeichen und dem nächsten Zeichen getrennt ist. -Python-Wrapper wird von einem Dritten bereitgestellt |
Janome | ・ Nur in Python geschrieben ・ Das IPA-Wörterbuch ist integriert, und es wird eine API bereitgestellt, die von Python aus verarbeitet werden kann. ・ Die Ausführungsgeschwindigkeit ist langsam ・ Wörterbuchoptionen sind begrenzt |
SudachiPy | · Python-Bindungen für die morphologische Analyse Sudachi für Java ・ Ab Mai 2019 ist die offizielle Veröffentlichung(Wurde es schon offiziell veröffentlicht?) |
Esanpy(Kuromoji) | ・ Kuromoji ist ein in Java implementierter morphologischer Analysator ・ Wenn Sie Python verwenden, durchlaufen Sie Esanpy ・ Esanpy ist eine Textanalysebibliothek, die intern Elasticsearch (Volltextsuchmaschine) verwendet. |
Recommended Posts