Dieser Artikel beschreibt die Verwendung des Firmennamenwörterbuchs (JCLdic).
JCLdic enthält über 8 Millionen Firmennamen und deren Aliase. Dieses Wörterbuch wurde erstellt, um das Problem zu lösen, dass die Abdeckung von Firmennamen in herkömmlichen Wörterbüchern gering ist und aufgrund von Notationsschwankungen schwer zu erkennen ist.
Laden Sie MeCab Dic am Beispiel von JCL_slim herunter.
Bitte installieren Sie zuerst MeCab und mecab-python3.
Verschieben Sie die heruntergeladene Datei "jcl_slim_mecab.dic" in den angegebenen Ordner.
$ mkdir /usr/local/lib/mecab/dic/user_dict
$ mv jcl_slim_mecab.dic /usr/local/lib/mecab/dic/user_dict
Aktualisieren Sie die MeCab-Konfigurationsdatei mecabrc
und schreiben Sie den Pfad zum Wörterbuch.
$ vim /usr/local/etc/mecabrc
In "mecabrc" sind der "dicdir" -Systemwörterbuchpfad und "userdic" die Benutzerwörterbuchpfade. Schreiben Sie den JCLdic-Pfad in userdic
.
dicdir = /usr/local/lib/mecab/dic/ipadic
;dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd
;dicdir = /usr/local/lib/mecab/dic/jumandic
;dicdir = /usr/local/lib/mecab/dic/unidic
userdic = /usr/local/lib/mecab/dic/user_dict/jcl_slim_mecab.dic
; output-format-type = wakati
; input-buffer-size = 8192
; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n
Sie können auch Pfade für mehrere Benutzerwörterbücher angeben.
userdic = /usr/local/lib/mecab/dic/user_dict/jcl_full_mecab_1.dic,/usr/local/lib/mecab/dic/user_dict/jcl_full_mecab_2.dic
Jetzt können Sie loslegen.
Ergebnis der Nichtverwendung von jcl_slim_mecab.dic
:
echo "TIS Co., Ltd. von der TIS Intec Group hat JCLdic (japanisches Firmennamenwörterbuch) veröffentlicht, ein Wörterbuch zur kostenlosen Erkennung von Firmennamen in der Verarbeitung natürlicher Sprache." | mecab
TIS-Nomenklatur,Allgemeines,*,*,*,*,*
Intec Substantiv,Eigenname,Organisation,*,*,*,Intec,Intec,Intec
Gruppennomenklatur,Allgemeines,*,*,*,*,Gruppe,Gruppe,Gruppe
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
TIS-Nomenklatur,Allgemeines,*,*,*,*,*
Noun Co., Ltd.,Allgemeines,*,*,*,*,Co., Ltd.,Kabushiki Gaisha,Kabushiki Gaisha
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
, Symbol,Lesepunkt,*,*,*,*,、,、,、
......
EOS
Ergebnis der Verwendung von jcl_slim_mecab.dic
:
echo "TIS Co., Ltd. von der TIS Intec Group hat JCLdic (japanisches Firmennamenwörterbuch) veröffentlicht, ein Wörterbuch zur kostenlosen Erkennung von Firmennamen in der Verarbeitung natürlicher Sprache." | mecab
TIS-Nomenklatur,Eigenname,Organisation,*,*,*,TIS Co., Ltd.,*,*
Intec Substantiv,Eigenname,Organisation,*,*,*,Intec Co., Ltd.,*,*
Gruppennomenklatur,Allgemeines,*,*,*,*,Gruppe,Gruppe,Gruppe
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
TIS Co., Ltd.,Eigenname,Organisation,*,*,*,TIS Co., Ltd.,*,*
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
, Symbol,Lesepunkt,*,*,*,*,、,、,、
......
EOS
Sie können auch ein Benutzerwörterbuch angeben.
echo "TIS Co., Ltd. von der TIS Intec Group hat JCLdic (japanisches Firmennamenwörterbuch) veröffentlicht, ein Wörterbuch zur kostenlosen Erkennung von Firmennamen in der Verarbeitung natürlicher Sprache." | mecab -u /usr/local/lib/mecab/dic/user_dict/jcl_medium_mecab.dic
Erkennen Sie den Firmennamen.
parse
Methodeimport unicodedata
import MeCab
# 1 specify dictionary by option
# tagger = MeCab.Tagger('-u /usr/local/lib/mecab/dic/user_dict/jcl_slim_mecab.dic')
# 2 import multiple dictionaries by mecabrc
tagger = MeCab.Tagger('-r /usr/local/etc/mecabrc')
text = 'TIS Co., Ltd. von der TIS Intec Group hat JCLdic (japanisches Firmennamenwörterbuch) veröffentlicht, ein Wörterbuch zur kostenlosen Erkennung von Firmennamen in der Verarbeitung natürlicher Sprache.'
# convert zenkaku to hankaku
text = unicodedata.normalize('NFKC', text)
# parse
print(tagger.parse(text))
Ergebnis:
TIS-Nomenklatur,Eigenname,Organisation,*,*,*,TIS Co., Ltd.,*,*
Intec Substantiv,Eigenname,Organisation,*,*,*,Intec Co., Ltd.,*,*
Gruppennomenklatur,Allgemeines,*,*,*,*,Gruppe,Gruppe,Gruppe
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
TIS Co., Ltd.,Eigenname,Organisation,*,*,*,TIS Co., Ltd.,*,*
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
, Symbol,Lesepunkt,*,*,*,*,、,、,、
...
EOS
parseToNode
MethodeErkennen Sie die Entität des Firmennamens mit dem Schlüsselwort "Organisation".
import unicodedata
import MeCab
# 1 specify dictionary by option
# tagger = MeCab.Tagger('-u /usr/local/lib/mecab/dic/user_dict/jcl_slim_mecab.dic')
# 2 import multiple dictionaries by mecabrc
tagger = MeCab.Tagger('-r /usr/local/etc/mecabrc')
text = 'TIS Co., Ltd. von der TIS Intec Group hat JCLdic (japanisches Firmennamenwörterbuch) veröffentlicht, ein Wörterbuch zur kostenlosen Erkennung von Firmennamen in der Verarbeitung natürlicher Sprache.'
# convert zenkaku to hankaku
text = unicodedata.normalize('NFKC', text)
# parse
node = tagger.parseToNode(text)
result = []
while node:
# node feature map:Teil,Teiltexte Unterklassifizierung 1,Teil Teil Unterklassifizierung 2,Teiltexte Unterklassifizierung 3,Nutzungsart,Nutzungsart,Prototyp,lesen,Aussprache
# example: TIS: ['Substantiv', '固有Substantiv', 'Organisation', '*', '*', '*', 'TIS Co., Ltd.', '*', '*']
if node.feature.split(",")[2] == 'Organisation':
result.append(node.surface)
node = node.next
print(result)
# ['TIS', 'Intec', 'TIS Co., Ltd.']
Recommended Posts