Ich habe etwas über die MeCab-Kostenberechnung gelernt und sie zusammengefasst. Bitte weisen Sie darauf hin, wenn etwas nicht stimmt.
MeCab führt eine morphologische Analyse unter Verwendung des registrierten Wörterbuchs durch. Wenn ein Wort (unbekanntes Wort) angezeigt wird, das nicht im Wörterbuch registriert ist, wird es basierend auf den Kosten für jedes Wort aufgeteilt. Unter diesen wird ** derjenige mit den niedrigsten Gesamtkosten ** als Ergebnis ausgegeben.
Dieses Mal werden wir das ipadic-neologd Wörterbuch verwenden, um zu überprüfen, wie das fiktive Wort "American German Village" morphologisch analysiert wird.
Echo American German Village|mecab -d C:\neologd -N2
Amerikanisches Substantiv,Proprietäre Nomenklatur,Bereich,Land,*,*,Amerika,Amerika,Amerika
Deutsches Substantiv,Proprietäre Nomenklatur,Bereich,Land,*,*,Deutschland,Deutschland,Deutschland
Dorf Nomen,Suffix,Bereich,*,*,*,Dorf,Dorf,Dorf
EOS
Amerikanisches Substantiv,Proprietäre Nomenklatur,Bereich,Land,*,*,Amerika,Amerika,Amerika
Deutsches Dorf Nomen,Proprietäre Nomenklatur,Allgemeines,*,*,*,Deutsches Dorf,Deutsches Dorf,Deutsches Dorf
EOS
Geben Sie das Wörterbuch mit -d an und geben Sie die Anzahl der Kandidaten an, die mit der Option NUM angegeben wurden. Auf diese Weise wurden zwei Arten von Unterteilungen für unbekannte Wörter als Kandidaten aufgeführt. Ist diese Aufteilung für uns nicht ganz überzeugend?
Bevor wir mit der Kostenberechnung beginnen, wollen wir uns mit der Registrierung des MeCab-Wörterbuchs befassen. Das Wörterbuch ist
Oberflächentyp,Linke Kontext-ID,Richtige Kontext-ID,Kosten,Teil,Teil細分類1,Teil細分類2,Teil細分類3,Nutzungsart,Nutzungsart,Prototyp,lesen,Aussprache
Speichern Sie es als CSV-Datei und erstellen Sie das Wörterbuch. Betrachtet man das, ・ ** Linke Kontext-ID ** ・ ** Richtige Kontext-ID ** ・ ** Kosten ** Es enthält ein unbekanntes Wort. Dies sind die Informationen, die für die morphologische Analyse von MeCab verwendet werden.
Die ** Auftrittskosten ** sind die ** Schwierigkeit ** des Wortes selbst zu erscheinen. Je höher der Wert, desto unwahrscheinlicher ist es, dass das Wort erscheint. Die Auftrittskosten sind der Wert von ** Kosten ** des zuvor registrierten Wörterbuchs. Welche Kosten für das Auftreten hatte "American German Village" dann?
Echo American German Village|mecab -F "%m,%c,\n" -d C:\neologd -N2
Amerika, 4698,
Deutschland, 2543,
Dorf, 8707,
EOS
Amerika, 4698,
Deutsches Dorf, 611,
EOS
Verwenden Sie% m, um den Oberflächenschichttyp anzuzeigen, und% c, um die Auftrittskosten anzuzeigen. Eine Frage stellt sich hier. Die Gesamtkosten sollten natürlich für die zweite niedriger sein, aber der erste Kandidat für die Ausgabe ist das erste Ergebnis. Der Grund ist das Vorhandensein neuer Kosten, ** Artikulationskosten **.
** Verkettungskosten ** ist die Schwierigkeit, die Kontext-IDs von zwei Wörtern zu verketten. Je kleiner der Wert ist, desto wahrscheinlicher ist es, dass er kontinuierlich ist. Die Kontext-ID entspricht der ** linken Kontext-ID und der rechten Kontext-ID ** des Wörterbuchs. Grundsätzlich scheint diese ID zum Zeitpunkt der Registrierung der gleiche Wert zu sein. Betrachten Sie beispielsweise das Wort "vorher und nachher". Die "Vorher" -Kontext-ID ist 1314 und die "Nachher" -Kontext-ID ist 1313. Die Verbindungskosten werden durch die Kombination der linken Kontext-ID und der rechten Kontext-ID bestimmt. Eine Liste der Kombinationen finden Sie in matrix.def (oder matrix.bin) in MeCab \ dic \ ipadic. Betrachtet man das,
1314 1313 -316
1313 1314 716
Da die Verbindungskosten von vorne nach hinten niedrig sind (-316), ist es einfach, fortzufahren, und von hinten nach vorne sind die Verbindungskosten hoch (716) und es ist schwierig, fortzufahren. Ich finde das auch sehr überzeugend. Werfen wir einen Blick auf "American German Village".
Echo American German Village|mecab -F"%m,%phl,%phr,%c,%pc,%pn\n" -d C:\neologd -N2
Amerika,1294,1294,4698,3746,3746
Deutschland,1294,1294,2543,-141,-3887
Dorf,1303,1303,8707,881,1022
EOS
Amerika,1294,1294,4698,3746,3746
Deutsches Dorf,1288,1288,611,2614,-1132
EOS
Der MeCab-Befehl kann wie folgt zusammengefasst werden.
Befehl | Erläuterung |
---|---|
%m | Oberflächentyp |
%phl | Linke Kontext-ID |
%phr | Richtige Kontext-ID |
%c(Oder%pw) | Vorkommenskosten |
%pc | Verbindungskosten+Kosten für das Auftreten von Wörtern(Kumulativ ab Satzbeginn) |
%pn | Verbindungskosten+Kosten für das Auftreten von Wörtern(Allein seine Morphologie, %pw+%pC) |
Alle Befehle finden Sie unter hier. Da die Ausgabe schwer zu verstehen ist, werde ich dies auch tabellarisch darstellen.
Oberflächentyp | Linke Kontext-ID | Richtige Kontext-ID | Vorkommenskosten | Verkettung + Vorkommen(Akkumulation) | Verkettung+Auftreten(Allein) |
---|---|---|---|---|---|
Amerika | 1294 | 1294 | 4698 | 3746 | 3746 |
Deutschland | 1294 | 1294 | 2543 | -141 | -3887 |
Dorf | 1303 | 1303 | 8707 | 881 | 1022 |
Amerika | 1294 | 1294 | 4698 | 3746 | 3746 |
Deutsches Dorf | 1288 | 1288 | 611 | 2614 | -1132 |
Bitte beachten Sie, dass ** BOS und EOS auch Kontext-IDs erhalten **. Die Verbindungskosten für das erste "Amerika" stammen also von matrix.def
0 1294 -952
Es wird sein. Daher betragen die kumulierten Kosten 4698-952 = 3746. Schauen wir uns als nächstes "Deutschland" an. Die linken und rechten Kontext-IDs sind 1294 und die Verbindungskosten betragen -6430, was ziemlich gering ist. (Es kommt selten vor, dass Ländernamen hintereinander fortgeführt werden ...) Die kumulierten Kosten betrugen (3746 + 2543) -6430 = -141 und 2543-6430 = -3887 für sich, was mit der Berechnung übereinstimmt. Obwohl es nicht ausgegeben wird, wird die Endprüfung durchgeführt, da EOS auch eine Kontext-ID hat. Die Verbindungskosten der Kontext-ID 1303 → 0 betragen 5, und die kumulierten Kosten der Kontext-ID 1288 → 0 betragen -919. Im Vergleich der kumulierten Kosten sind 886 und 1695 die niedrigsten Kosten, sodass das zuvor erwähnte Rätsel gelöst wurde.
MeCab-Kosten verstehen. MeCab-Kostenberechnung bei Nippon Television Tokyo gelernt Blick hinter die Kulissen der japanischen morphologischen Analyse! Wie MeCab morphologisch analysiert
Recommended Posts