Cet article explique comment utiliser le dictionnaire des noms de société (JCLdic).
JCLdic contient plus de 8 millions de noms de sociétés et leurs alias. Ce dictionnaire a été créé pour résoudre le problème que la couverture des noms de sociétés est faible dans les dictionnaires conventionnels et qu'il est difficile à reconnaître en raison des fluctuations de notation.
Téléchargez MeCab Dic en utilisant JCL_slim comme exemple.
Veuillez d'abord installer MeCab et mecab-python3.
Déplacez le fichier téléchargé jcl_slim_mecab.dic
vers le dossier spécifié.
$ mkdir /usr/local/lib/mecab/dic/user_dict
$ mv jcl_slim_mecab.dic /usr/local/lib/mecab/dic/user_dict
Mettez à jour le fichier de configuration MeCab mecabrc
et écrivez le chemin vers le dictionnaire.
$ vim /usr/local/etc/mecabrc
Dans mecabrc
, le chemin du dictionnaire système dicdir
, ʻuserdic est le chemin du dictionnaire utilisateur. Écrivez le chemin JCLdic dans ʻ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
Vous pouvez également spécifier des chemins pour plusieurs dictionnaires utilisateur.
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
Vous êtes maintenant prêt à partir.
Résultat de la non-utilisation de jcl_slim_mecab.dic
:
echo "TIS Co., Ltd. du groupe TIS Intec a publié gratuitement JCLdic (dictionnaire japonais des noms de sociétés), un dictionnaire permettant de reconnaître les noms de sociétés dans le traitement du langage naturel." | mecab
Nomenclature TIS,Général,*,*,*,*,*
Intec substantif,Nomenclature propriétaire,Organisation,*,*,*,Intec,Intec,Intec
Nomenclature de groupe,Général,*,*,*,*,groupe,groupe,groupe
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
Nomenclature TIS,Général,*,*,*,*,*
Noun Co., Ltd.,Général,*,*,*,*,Co., Ltd.,Kabushiki Gaisha,Kabushiki Gaisha
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
, Symbole,Point de lecture,*,*,*,*,、,、,、
......
EOS
Résultat de l'utilisation de jcl_slim_mecab.dic
:
echo "TIS Co., Ltd. du groupe TIS Intec a publié gratuitement JCLdic (dictionnaire japonais des noms de sociétés), un dictionnaire permettant de reconnaître les noms de sociétés dans le traitement du langage naturel." | mecab
Nomenclature TIS,Nomenclature propriétaire,Organisation,*,*,*,TIS Co., Ltd.,*,*
Intec substantif,Nomenclature propriétaire,Organisation,*,*,*,Intec Co., Ltd.,*,*
Nomenclature de groupe,Général,*,*,*,*,groupe,groupe,groupe
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
TIS Co., Ltd.,Nomenclature propriétaire,Organisation,*,*,*,TIS Co., Ltd.,*,*
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
, Symbole,Point de lecture,*,*,*,*,、,、,、
......
EOS
Vous pouvez également spécifier un dictionnaire utilisateur.
echo "TIS Co., Ltd. du groupe TIS Intec a publié gratuitement JCLdic (dictionnaire japonais des noms de sociétés), un dictionnaire permettant de reconnaître les noms de sociétés dans le traitement du langage naturel." | mecab -u /usr/local/lib/mecab/dic/user_dict/jcl_medium_mecab.dic
Reconnaissez le nom de l'entreprise.
parse
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. du groupe TIS Intec a publié gratuitement JCLdic (dictionnaire japonais des noms de sociétés), un dictionnaire permettant de reconnaître les noms de sociétés dans le traitement du langage naturel.'
# convert zenkaku to hankaku
text = unicodedata.normalize('NFKC', text)
# parse
print(tagger.parse(text))
résultat:
Nomenclature TIS,Nomenclature propriétaire,Organisation,*,*,*,TIS Co., Ltd.,*,*
Intec substantif,Nomenclature propriétaire,Organisation,*,*,*,Intec Co., Ltd.,*,*
Nomenclature de groupe,Général,*,*,*,*,groupe,groupe,groupe
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
TIS Co., Ltd.,Nomenclature propriétaire,Organisation,*,*,*,TIS Co., Ltd.,*,*
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
, Symbole,Point de lecture,*,*,*,*,、,、,、
...
EOS
parseToNode
Reconnaissez l'entité du nom de la société avec le mot-clé ʻ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. du groupe TIS Intec a publié gratuitement JCLdic (dictionnaire japonais des noms de sociétés), un dictionnaire permettant de reconnaître les noms de sociétés dans le traitement du langage naturel.'
# convert zenkaku to hankaku
text = unicodedata.normalize('NFKC', text)
# parse
node = tagger.parseToNode(text)
result = []
while node:
# node feature map:Partie,Sous-classification des paroles des parties 1,Sous-classification des pièces détachées 2,Sous-classification des paroles des parties 3,Type d'utilisation,Type d'utilisation,Prototype,en train de lire,prononciation
# example: TIS: ['nom', '固有nom', '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