[PYTHON] Unterschied in den morphologischen Analyseergebnissen nach Mecab-Wörterbuch

Über diesen Artikel

Was ist morphologische Analyse?

Die morphologische Analyse ist eine der Methoden zur Verarbeitung natürlicher Sprache, die auch in Suchmaschinen verwendet wird. Sie zerlegt einen Satz / eine Phrase in "minimale sinnvolle Einheiten (= Wörter)". Es wird verwendet, um den Inhalt von Sätzen und Phrasen zu beurteilen.
Referenzseite

Über Mecab

Überblick

MeCab ist eine Open-Source-Engine für morphologische Analysen, die im Rahmen des Joint Research Unit Project der Graduiertenschule für Informatik der Kyoto University-Nippon Telegraph and Telephone Corporation, Forschungsinstitut für Kommunikationswissenschaft, entwickelt wurde. Die grundlegende Richtlinie ist ein Allzweckentwurf, der nicht von Sprache, Wörterbuch oder Korpus abhängt. Bedingte Zufallsfelder (CRF) werden zum Schätzen der Parameter verwendet. Es läuft im Durchschnitt auch schneller als ChaSen, Juman und KAKASI. Mekabu ist übrigens ein Favorit des Autors.

Charakteristisch

-Universelles Design unabhängig von Wörterbuch und Korpus -Hohe Analysegenauigkeit basierend auf dem bedingten Wahrscheinlichkeitsfeld (CRF) Schneller als ChaSen und KAKASI -Adopts Double-Array, eine Hochgeschwindigkeits-TRIE-Struktur, für den Wörterbuch-Suchalgorithmus / die Datenstruktur. -Reentrante Bibliothek -Verschiedene Bindungen für Skriptsprachen (Perl / Ruby / Python / Java / C #)

Vergleich

mecab chasen juman kakasi
Analysemodell bi-Gramm Markov Modell Markov-Modell mit variabler Länge bi-Gramm Markov Modell Längste Übereinstimmung
Lernmodell CRF (Diskriminierungsmodell) HMM (Generationsmodell)
Wörterbuch-Suchalgorithmus Double Array Double Array Patricia Baum Hash?
Lösungssuchalgorithmus Viterbi Viterbi Viterbi Definitiv?
Implementierung einer verketteten Tabelle 2D-Tabelle Automat 2D-Tabelle? Keine Verbindungstabelle?
Hierarchie der Teilwörter Unbegrenzte mehrschichtige Teile Unbegrenzte mehrschichtige Teile 2-stufig behoben Kein Konzept von Teiltexten?
Unbekannte Textverarbeitung Zeichentyp(Die Aktionsdefinition kann geändert werden) Zeichentyp(Unveränderlich) Zeichentyp(Unveränderlich)
Einschränkungsanalyse Möglich 2.4.0でMöglich 不Möglich 不Möglich
N-beste Lösung Möglich 不Möglich 不Möglich 不Möglich

Wörterbuchdaten

neologd


$ echo "Instagram glänzen" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Instagram-würdiges Substantiv,Eigenname,Allgemeines,*,*,*,Instagram glänzen,Insta fliegen,Insta fliegen
EOS

$ echo "Instagram glänzen" | mecab 
Insta Nomen,Allgemeines,*,*,*,*,*
Shine Nomen,Allgemeines,*,*,*,*,Scheinen,Fliegen,Fliegen
EOS

$ echo "Ernsthaft" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Ernsthaft Nomen,Eigenname,Allgemeines,*,*,*,Ernsthaft,Ernsthaft,Ernsthaft
EOS

$ echo "Ernsthaft" | mecab 
Ernstes Substantiv,Adjektiv Verbstamm,*,*,*,*,Ernsthaft,Ja wirklich,Ja wirklich
卍 nein,Allgemeines,*,*,*,*,卍,Manji,Manji
EOS

$ echo "Tapiru" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Tapi Substantiv,Eigenname,Allgemeines,*,*,*,Tapi,Tapi,Tapi
Hilfsverb,*,*,*,Literarische Sprache,Wortverbindung,Ri,Le,Le
EOS

$ echo "Tapiru" | mecab
Tapi Substantiv,Allgemeines,*,*,*,*,*
Hilfsverb,*,*,*,Literarische Sprache,Grundform,Ru,Le,Le
EOS

$ echo "Agemizawa" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Agemizawa Substantiv,Eigenname,Allgemeines,*,*,*,Agemizawa,Agemizawa,Agemizawa
EOS

$ echo "Agemizawa" | mecab 
Verb erheben,Unabhängigkeit,*,*,Ein Schritt,Kontinuierlicher Typ,Geben,Alter,Alter
Mi Verb,Nicht unabhängig,*,*,Ein Schritt,Kontinuierlicher Typ,Aussicht,Mi.,Mi.
Zawa Nomen,Eigenname,Organisation,*,*,*,*
EOS

$ echo "Azamaru Fischerei" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Azamaru Fisheries Nominal,Eigenname,Allgemeines,*,*,*,Azamaru Fischerei,Azamaru Suisan,Azamaru Suisan
EOS

$ echo "Azamaru Fischerei" | mecab 
Aza Nomen,Allgemeines,*,*,*,*,Aza,Aza,Aza
Maru Präfix,Mehrere Verbindungen,*,*,*,*,Maru,Maru,Maru
Fischernomenklatur,Allgemeines,*,*,*,*,Fischerei,Suisan,Suisan
EOS

$ echo "Instagram" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Instagram Nomenklatur,Eigenname,Allgemeines,*,*,*,Instagram,Instagram,Instagram
EOS

$ echo "Instagram" | mecab 
Instagram Nomenklatur,Eigenname,Organisation,*,*,*,*
EOS

$ echo "Kemio" | mecab 
Ke Assistent,Letzte Hilfe,*,*,*,*,Ke,Ke,Ke
Mi Verb,Unabhängigkeit,*,*,Ein Schritt,Kontinuierlicher Typ,Aussicht,Mi.,Mi.
O Verb,Nicht unabhängig,*,*,Fünf Schritte, La Linie,Wortverbindungsspezial 2,Oru,Oh,Oh
EOS

$ echo "Kemio" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/
Kemio Substantiv,Eigenname,Name der Person,Allgemeines,*,*,Kemio,Chemio,Chemio
EOS

Verwendung in Code (UNIX & Python3)

mecab.py


import MeCab

t = MeCab.Tagger ('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')#mecab-ipadic-NEologd
t = MeCab.Tagger ("-Ochasen")#Standard-Typ

text = 'Text, den Sie analysieren möchten'
t.parse('')#Verhindern Sie, dass Zeichenfolgen GC sind
m = t.parseToNode(text)
while m:
    if m.feature.split(',')[0] == 'Substantiv':
        print(m.surface)  

result


AWS-Nomenklatur,Eigenname,Allgemeines,*,*,*,AWS,Amazon Web Services,Amazon Web Services
Berühmte Nomenklatur,Adjektiv Verbstamm,*,*,*,*,Berühmt,Yumei,Yumei
Service-Nomenklatur,Verbindung ändern,*,*,*,*,Bedienung,Bedienung,Bedienung
Amazon Nomen,Eigenname,Allgemeines,*,*,*,Amazon,Amazonas,Amazonas
Elastisches Substantiv,Eigenname,Allgemeines,*,*,*,Elastic,Elastisch,Elastisch
Nomen berechnen,Allgemeines,*,*,*,*,*
Wolke Nomen,Allgemeines,*,*,*,*,*

der Begriff

Es ist eines der probabilistischen grafischen Modelle, die durch ungerichtete Graphen dargestellt werden, und es ist ein Diskriminanzmodell. Die Serienbeschriftung zielt darauf ab, eine Datenzeichenfolge (z. B. eine Wortzeichenfolge) als Eingabe zu empfangen und einzelne Daten als Ausgabe zu kennzeichnen. Beispielsweise besteht das Problem, einer Wortfolge Teiltextinformationen zu geben (Eingabe: "I / ha / run" ⇒ Ausgabe: "Nomen / Assistent / Verb"). Ist fertig. CRF
Das CRF zum Lösen der Sequenzmarkierung wird als lineares Ketten-CRF bezeichnet.
Referenzseite: [Technische Erklärung] CRF (Conditional Random Fields)

Recommended Posts

Unterschied in den morphologischen Analyseergebnissen nach Mecab-Wörterbuch
[Morphologische Analyse] So fügen Sie Mecab ein neues Wörterbuch hinzu
[Python] Morphologische Analyse mit MeCab
■ [Google Colaboratory] Verwenden Sie die morphologische Analyse (MeCab)
Ich habe mit Mecab gespielt (morphologische Analyse)!
Aktivieren Sie die morphologische Analyse-Engine MeCab in Python 3 (Version März 2016).
Führen Sie eine morphologische Analyse in der von GCE gestarteten maschinellen Lernumgebung durch
100 Sprachverarbeitung klopft Morphologische Analyse in Kapitel 4 gelernt
Installation des Werkzeugs für die morphologische Analyse (MeCab, Human ++, Janome, GiNZA)
Sammeln von Informationen von Twitter mit Python (morphologische Analyse mit MeCab)
100 Sprachverarbeitung Knock-30 (unter Verwendung von Pandas): Lesen der Ergebnisse der morphologischen Analyse
Unterschied in den Ergebnissen abhängig vom Argument von multiprocess.Process
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten