Chao ... †
Persönlich habe ich in diesen Tagen immer mehr Möglichkeiten, MeCab mit Python unter Windows zu verwenden. Um den Python-Wrapper von MeCab unter Windows einzuschließen, müssen Sie jedoch die Quelle herunterladen, setup.py neu schreiben und den Compiler installieren, was sehr problematisch ist.
Wir haben also etwas veröffentlicht, das es einfach macht, den Python-Wrapper von MeCab mit pip unter Windows, Mac und Ubuntu zu verwenden! https://pypi.org/project/mecab/
Es handelt sich um einen MeCab-Wrapper, der verschiedene Betriebssysteme in einem Paket unterstützt, indem das Verhalten je nach Betriebssystem zum Zeitpunkt der Installation geändert wird. Im Fall von Windows wird beispielsweise der C ++ - Compiler von Microsoft Visual Studio verwendet, um Mecab-Python zu erstellen und in das Radformat zu bringen. Auf der anderen Seite wird bei Mac und Linux der C ++ - Code zum Binden kompiliert, sodass er nur installiert werden kann, wenn der Zielcomputer über einen C ++ - Compiler verfügt.
Derzeit werden Python 2.7, 3.6, 3.7, 3.8 unterstützt. Alle Versionen unterstützen sowohl 32-Bit als auch 64-Bit. Es wurde unter Windows 10, MacOS 10.14 und Ubuntu 18.04 getestet.
Es wird jedoch davon ausgegangen, dass in der 64-Bit-Version von Python für Windows die 64-Bit-Version von MeCab des folgenden Streu-Builds installiert ist. https://github.com/ikegami-yukino/mecab/releases
Da die Windows-Version von Cabocha nur in 32-Bit-Binärdateien verteilt ist, ** Wenn Sie sie in Kombination mit Cabocha unter Windows verwenden möchten, verwenden Sie bitte die 32-Bit-Version von Python. ** (Entschuldigung für die Kompliziertheit)
setup.py
neu zu schreiben (Für die offizielle Python-Bindung muss setup.py
neu geschrieben werden, um Python 3 zu unterstützen.)$ pip install mecab
Oder
$ python -m pip install mecab
Sie können es mit setzen.
Wenn Sie altes Python 2.7 haben und kein Pip haben, laden Sie get-pip.py herunter und führen Sie es in Python aus, um pip zu erhalten.
Wenn Sie eine Fehlermeldung wie "MeCab_wrap.cxx: 178: 11: Schwerwiegender Fehler: Datei" Python.h "nicht gefunden" erhalten
$ CPLUS_INCLUDE_PATH=`python-config --prefix`/Headers:$CPLUS_INCLUDE_PATH pip install mecab
Bitte versuche.
>>> import MeCab
>>> t = MeCab.Tagger()
>>> sentence = "Taro gab dieses Buch einer Frau."
>>> print(t.parse(sentence))
Taro Substantiv,Proprietäre Nomenklatur,Name der Person,Name,*,*,Taro,Taro,Taro
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Dieser Zusatz,*,*,*,*,*,Dies,Dies,Dies
Diese Nomenklatur,Allgemeines,*,*,*,*,Buch,Hong,Hong
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Weibliche Nomenklatur,Allgemeines,*,*,*,*,Weiblich,Josei,Josei
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Verb übergeben,Unabhängigkeit,*,*,Godan / Sa Linie,Kontinuierlicher Typ,aushändigen,ich,ich
Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta
.. Symbol,Phrase,*,*,*,*,。,。,。
EOS
>>> n = t.parseToNode(sentence)
>>> while n:
>>> print(n.surface, "\t", n.feature)
>>> n = n.next
BOS/EOS,*,*,*,*,*,*,*,*
Taro Substantiv,Proprietäre Nomenklatur,Name der Person,Name,*,*,Taro,Taro,Taro
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Dieser Zusatz,*,*,*,*,*,Dies,Dies,Dies
Diese Nomenklatur,Allgemeines,*,*,*,*,Buch,Hong,Hong
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,Wo,Wo
Weibliche Nomenklatur,Allgemeines,*,*,*,*,Weiblich,Josei,Josei
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Verb übergeben,Unabhängigkeit,*,*,Godan / Sa Linie,Kontinuierlicher Typ,aushändigen,ich,ich
Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta
.. Symbol,Phrase,*,*,*,*,。,。,。
BOS/EOS,*,*,*,*,*,*,*,*
Dies ist ein Beispiel für Code für das IPA-Wörterbuch und das mecab-ipadic-neologd-Wörterbuch.
#Bei Verwendung eines Wörterbuchs wie NEologd"-d"Geben Sie das Verzeichnis des Wörterbuchs mit an
t = MeCab.Tagger("-d /path/to/dic/mecab-ipadic-neologd")
t = MeCab.Tagger("-O wakati")
print(t.parse(sentence).rstrip())
#=>Taro gab dieses Buch einer Frau.
NEologd wird als Wörterbuch empfohlen, da es eine reichhaltige richtige Nomenklatur enthält.
t = MeCab.Tagger("-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd -F%m\\t -E\\n")
print(t.parse("Ich möchte mit DIR EN GREY live gehen").rstrip().split("\t"))
#=>['DIR EN GREY', 'von', 'Leben', 'Gehen', 'Wollen']
#Um die Lesung zu bekommen"-O yomi"
t = MeCab.Tagger("-O yomi")
print(t.parse(sentence).rstrip())
#=>Taro Hakonohonwo Josei Niwatashita.
t = MeCab.Tagger("-F%f[7]\\t -E\\n -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd")
print(t.parse(sentence).rstrip().split("\t"))
#=>['Taro', 'C.', 'Dies', 'Hong', 'Wo', 'Josei', 'D.', 'ich', 'Ta', '。']
CONTENT_WORD_POS = ("Substantiv", "Verb", "Adjektiv", "Adverb")
IGNORE = ("Suffix", "Nicht unabhängig", "Gleichbedeutend")
def is_content_word(feature):
return feature.startswith(CONTENT_WORD_POS) and all(f not in IGNORE for f in feature.split(",")[:6])
t = MeCab.Tagger()
n = t.parseToNode(sentence)
content_words = []
function_words = []
while n:
if is_content_word(n.feature):
content_words.append((n.surface, n.feature))
elif not n.feature.startswith("BOS/EOS,"):
function_words.append((n.surface, n.feature))
n = n.next
print(content_words) #Inhaltswort
#=> [('Taro', 'Substantiv,固有Substantiv,Name der Person,Name,*,*,Taro,Taro,Taro'), ('Buch', 'Substantiv,Allgemeines,*,*,*,*,Buch,Hong,Hong'), ('Weiblich', 'Substantiv,Allgemeines,*,*,*,*,Weiblich,Josei,Josei'), ('Bestehen', 'Verb,Unabhängigkeit,*,*,Godan / Sa Linie,Kontinuierlicher Typ,aushändigen,ich,ich')]
print(function_words) #Funktionswort
#=> [('Ist', 'Partikel,係Partikel,*,*,*,*,Ist,C.,Beeindruckend'), ('Dies', 'Coalm,*,*,*,*,*,Dies,Dies,Dies'), ('Zu', 'Partikel,格Partikel,Allgemeines,*,*,*,Zu,Wo,Wo'), ('Zu', 'Partikel,格Partikel,Allgemeines,*,*,*,Zu,D.,D.'), ('Ta', 'Hilfsverb,*,*,*,Besondere,Grundform,Ta,Ta,Ta'), ('。', 'Symbol,Phrase,*,*,*,*,。,。,。')]
t = MeCab.Tagger()
n = t.parseToNode("Ich habe ein sehr gutes Buch übergeben")
lemma = []
while n:
if not n.feature.startswith("BOS/EOS,"):
lemma.append(n.feature.split(",")[6])
n = n.next
print(lemma)
#=> ['Beeindruckend', 'Gut', 'Buch', 'Zu', 'aushändigen', 'Ta']
In früheren Artikeln finden Sie Informationen zur eingeschränkten Analyse. https://qiita.com/yukinoi/items/4e7afb5e72b3a46da0f2
Wenn es Ihnen gefällt, geben Sie bitte einen Stern an das GitHub-Repository von mecab. Mit nur einem Klick ist meine Entwicklungsmotivation gestiegen.