Es gibt viele morphologische Analysewerkzeuge, aber es ist wichtig, ihre Eigenschaften zu verstehen, bevor Sie sie verwenden.
Dieses Mal habe ich drei morphologische Analysewerkzeuge verglichen, die von Python aus verwendet werden können.
MeCab
- Parameterschätzung mit CRF (Conditional Random Fields)
- Sowohl die Unterscheidungsgenauigkeit als auch die Ausführungsgeschwindigkeit sind hoch. Wenn Sie es auf standardmäßige Weise verwenden möchten, sollten Sie auf jeden Fall MeCab verwenden. Die Bibliothek ist jedoch etwas schwer.
In[1]: import MeCab
In[2]: mecab = MeCab.Tagger()
In[3]: %time print mecab.parse("Äpfel haben nachweislich sehr positive Auswirkungen auf den menschlichen Körper")
Apple Nomen,Allgemeines,*,*,*,*,Apfel,Apfel,Apfel
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Menschliche Nomenklatur,Allgemeines,*,*,*,*,Mensch,Ningen,Ningen
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
Körpernomenklatur,Allgemeines,*,*,*,*,Körper,Shintai,Shintai
Hilfswörter für,Fallassistent,Gemeinsame Sprache,*,*,*,zum,Nitotte,Nitotte
Sehr Nomenklatur,Adjektiv Verbstamm,*,*,*,*,sehr,Taihen,Taihen
Gutes Adjektiv,Unabhängigkeit,*,*,Apokalypse,Grundform,gut,Yoi,Yoi
Effekt Nomen,Allgemeines,*,*,*,*,bewirken,Kouka,Koka
Ist ein Assistent,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
Ein Verb,Unabhängigkeit,*,*,Fünf Schritte, La Linie,Grundform,Gibt es,Al,Al
Das Substantiv,Nicht unabhängig,Allgemeines,*,*,*,Ding,Dinge,Dinge
Ist ein Assistent,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
Beweis Nomen,Verbindung ändern,*,*,*,*,Beweis,Risho,Richaud
Sa Verb,Unabhängigkeit,*,*,Sahen / Suru,Rel Verbindung,Machen,Bedienung,Bedienung
Re Verb,Suffix,*,*,Ein Schritt,Kontinuierlicher Typ,Sein,Les,Les
Der Assistent,Verb verbinden,*,*,*,*,Hand,Te,Te
Ich verb,Nicht unabhängig,*,*,Ein Schritt,Kontinuierlicher Typ,Ist,ich,ich
Masu Hilfsverb,*,*,*,Spezial / Masse,Grundform,Masu,Forelle,Forelle
EOS
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
Wall time: 240 µs
Juman
- Huristische morphologische Unterscheidung
- Es wird eine hohe Unterscheidungsgenauigkeit und __repräsentative Notation __ jedes morphologischen Elements angezeigt, sodass es sich hervorragend zur Analyse von Dingen mit starken Notationsschwankungen wie Twitter eignet.
In[1]: import cJuman
In[2]: cJuman.init(['-B', '-e2'])
In[3]: %time print cJuman.parse_opt(["Äpfel haben nachweislich sehr positive Auswirkungen auf den menschlichen Körper"], cJuman.SKIP_NO_RESULT)
Apfel Apfel Apfel Substantiv 6 gebräuchliches Substantiv 1* 0 * 0 "Repräsentative Notation:Apfel/Apple Kategorie:Pflanze;Künstliches Objekt-Lebensmittelbereich:Kochen / Essen"
Hahaha Auxiliary 9 Sub-Auxiliary 2* 0 * 0 NIL
Menschliche menschliche Nomenklatur 6 Gemeinsame Nomenklatur 1* 0 * 0 "Repräsentative Notation:Mensch/Ningen Kategorie:Mann"
Nono kein Assistent 9 Verbindungsassistent 3* 0 * 0 NIL
Body Shintai Body Nose 6 Gewöhnliche Nase 1* 0 * 0 "Repräsentative Notation:Körper/Shintai Kategorie:Tier"
Ni ni ni Silbe 9 Fall Silbe 1* 0 * 0 NIL
Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:nehmen/Angehängter Verbkandidat zum Mitnehmen (grundlegend)"
@Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:nehmen/Domain zu nehmen:Politisches Selbst-Anderes-Verb:Selbst:Kann genommen werden/Kann genommen werden"
@Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:nehmen/Nimm das andere Verb:Selbst:Sei erwischt/Kann genommen werden"
@Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:nehmen/Nimm das andere Verb:Selbst:Kann geerntet werden/Kann genommen werden"
@Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:Nehmen/Domain zu nehmen:Kochen / Essen selbst anderes Verb:Selbst:Kann genommen werden/Kann genommen werden"
@Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:nehmen/Domain zu nehmen:Kultur / Kunst selbst anderes Verb:Selbst:Kann genommen werden/Kann genommen werden"
@Verb 2 nehmen*0 Konsonantenverb La Zeile 10 Ta-System Dauergebrauch Te Form 14"Repräsentative Notation:Stehlen/Nehmen"
Sehr sehr sehr sehr Anwalt 8* 0 * 0 * 0 "Repräsentative Notation:sehr/Sehr viel"
@Sehr hart sehr hart Adjektiv 3*0 na Adjektiv 21 Wortstamm 1"Repräsentative Notation:Es ist schwer/Es ist schwer"
Gut gut gut gut Adjektiv 3*0 ein Adjektiv auo dan 18 Grundform 2"Repräsentative Notation:gut/Gute Rebellion:Adjektiv:Schlecht/Schlecht"
Effekt Koka Effekt Nase 6 Gewöhnliche Nase 1* 0 * 0 "Repräsentative Notation:bewirken/Koka Kategorie:Abstrakt"
Ga ga ga ga Assistent 9 Fallassistent 1* 0 * 0 NIL
Ein bestimmtes ein bestimmtes Verb 2*0 Konsonantenverb la Zeile 10 Grundform 2"Repräsentative Notation:Ja/Ein ergänzender Satz:Adjektiv:Nein/Abwesend"
Koto Koto Koto Nase 6 Formale Nase 8* 0 * 0 NIL
Ga ga ga ga Assistent 9 Fallassistent 1* 0 * 0 NIL
Beweisen Sie es Beweisen Sie Nomen 6 Sahen Noon 2* 0 * 0 "Repräsentative Notation:Beweis/Risho Kategorie:Abstrakte Domain:Politik"
Sasashi Verb 2*0 Sa-Variable 16 Vorform 3"Repräsentative Notation:Machen/Machen 付属動詞候補(基本) Selbst他動詞:Selbst:Werden/Werden"
Das Suffix 14 Das Verb sexsuffix 7 Das Vokalverb 1 Die te Form für den Dauergebrauch 14"Repräsentative Notation:Sein/Sein"
Ii Iru Suffix 14 Verb Sex Suffix 7 Vokal Verb 1 Grundform 8"Repräsentative Notation:Ist/Ist"
Immer mehr Suffix 14 Verb Sex Suffix 7 Verb Sex Suffix Typ 31 Grundform 2"Repräsentative Notation:Masu/Masu"
EOS
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
Wall time: 976 µs
Cabocha
- Abhängigkeitsanalyse mit SVM (Support Vector Machine) durchführen
- Wenn Sie es zum Lernen von Daten verwenden, wenn Sie automatisch Sätze mit der Markov-Kette generieren, können Sie anscheinend interessanter sein als mit orthodoxen morphologischen Analysewerkzeugen wie MeCab (entsprechend).
In[1]: import CaboCha
In[2]: cabocha = CaboCha.Parser()
In[3]: %time print cabocha.parseToString("Äpfel haben nachweislich sehr positive Auswirkungen auf den menschlichen Körper")
Äpfel---------------D
Mensch-D |
Für den Körper-------D |
sehr-D | |
gut-D | |
Der Effekt ist-D |
Gibt es-D |
Das-D
Bewährt
EOS
CPU times: user 882 µs, sys: 84 µs, total: 966 µs
Wall time: 917 µs
Da auch die folgende Ausgabe möglich ist, ist die Verarbeitung mithilfe der Abhängigkeitsanalyse im Python-Code einfach. Es ist jedoch langsam.
In[4]: print cabocha.parse("Äpfel haben nachweislich sehr positive Auswirkungen auf den menschlichen Körper").toString(CaboCha.FORMAT_LATTICE)
* 0 8D 0/1 -2.111879
Apple Nomen,Allgemeines,*,*,*,*,Apfel,Apfel,Apfel
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
* 1 2D 0/1 1.635242
Menschliche Nomenklatur,Allgemeines,*,*,*,*,Mensch,Ningen,Ningen
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
* 2 6D 0/1 1.318492
Körpernomenklatur,Allgemeines,*,*,*,*,Körper,Shintai,Shintai
Hilfswörter für,Fallassistent,Gemeinsame Sprache,*,*,*,zum,Nitotte,Nitotte
* 3 4D 0/0 0.781377
Sehr Nomenklatur,Adjektiv Verbstamm,*,*,*,*,sehr,Taihen,Taihen
* 4 5D 0/0 1.810798
Gutes Adjektiv,Unabhängigkeit,*,*,Apokalypse,Grundform,gut,Yoi,Yoi
* 5 6D 0/1 2.448702
Effekt Nomen,Allgemeines,*,*,*,*,bewirken,Kouka,Koka
Ist ein Assistent,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
* 6 7D 0/0 2.151727
Ein Verb,Unabhängigkeit,*,*,Fünf Schritte, La Linie,Grundform,Gibt es,Al,Al
* 7 8D 0/1 -2.111879
Das Substantiv,Nicht unabhängig,Allgemeines,*,*,*,Ding,Dinge,Dinge
Ist ein Assistent,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
* 8 -1D 1/5 0.000000
Beweis Nomen,Verbindung ändern,*,*,*,*,Beweis,Risho,Richaud
Sa Verb,Unabhängigkeit,*,*,Sahen / Suru,Rel Verbindung,Machen,Bedienung,Bedienung
Re Verb,Suffix,*,*,Ein Schritt,Kontinuierlicher Typ,Sein,Les,Les
Der Assistent,Verb verbinden,*,*,*,*,Hand,Te,Te
Ich verb,Nicht unabhängig,*,*,Ein Schritt,Kontinuierlicher Typ,Ist,ich,ich
Masu Hilfsverb,*,*,*,Spezial / Masse,Grundform,Masu,Forelle,Forelle
EOS
CPU times: user 1.29 ms, sys: 101 µs, total: 1.39 ms
Wall time: 1.91 ms
Darüber hinaus gibt es in Python viele morphologische Analysewerkzeuge wie Kytea, Igo-Python, ChaSen und Kakasi. Ich hoffe, dass Sie mit den jeweiligen Merkmalen vertraut sind und diese von Fall zu Fall richtig verwenden können.
Recommended Posts