MeCabでComeJisyoを使おう
ComeJisyoとは、医療単語を3万語ほど登録しているMeCab用の辞書です。ここではMacにインストールする場合を示します。
次のページを参考にしました。「Python3でMeCab。さらに医療辞書を追加するまで」
なお、MeCabのインストールについては本記事では扱いません。「MeCabをMacにインストールする手順」を参考にどうぞ。
ComeJisyoのインストール
- https://ja.osdn.net/projects/comedic/から、ComeJisyoV5-1.zipをダウンロードします。
- 解凍してできたディレクトリ内のComeJisyoV5-1.csvの最後の2行(下記参照)を削除します。
## Fri Nov 15 07:13:38 2013 by AddAtrriPOS.pl IN: ComeJisyoV5.csv REF:NewAttriCome.txt ## Number of matches = 77760(77775)
上記は辞書の情報なので、用語とは直接関係ありません。
- CSVファイルは文字コードがShift-JISなので、UTF-8に変換します。
- ターミナルでCSVファイルのあるディレクトリに移動します。
- ユーザー辞書を作成します。
$ /usr/local/mecab/libexec/mecab/mecab-dict-index -d /usr/local/mecab/lib/mecab/dic/ipadic/ -u comejisyo.dic -f utf-8 -t utf-8 ComeJisyoV5-1.csv
下記エラーがでることがあります。
reading ComeJisyoV5-1.csv ... context_id.cpp(96) [it != left_.end()] cannot find LEFT-ID for 名?,一般,*,*,*,*,*
その場合はCSVの中身の2,3列目(-1, -1)を、
1%キシロカイン,-1,-1,-3800,名詞,一般,*,*,*,*,1%キシロカイン,イチパーセントキシロカイン,イチパーセントキシロカイン,:::1:46000:
(*, *)に変更して
1%キシロカイン,*,*,-3800,名詞,一般,*,*,*,*,1%キシロカイン,イチパーセントキシロカイン,イチパーセントキシロカイン,:::1:46000:
コマンドを再度実行します。
reading ComeJisyoV5-1.csv ... empty word is found, discard this line 77758 emitting double-array: 100% |###########################################| done!
できました!
Pythonで使ってみる
import MeCab
import sys
mecab = MeCab.Tagger('-u /Users/hogehoge/mecab/comejisyo.dic')
text = '1%キシロカイン'
mecab.parse('')
node = mecab.parseToNode(text)
while node:
word = node.surface
pos = node.feature.split(",")[1]
print('{0} , {1}'.format(word, pos))
node = node.next
ComeJisyo以外を使用した場合(例:mecab-ipadic-neologd)は下記のようになりますが、
, * 1% , 固有名詞 キシロカイン , 固有名詞 , *
ComeJisyoだと下記のようにちゃんと1つの単語として認識されました!
, * 1%キシロカイン , 一般 , *
DATUM STUDIOは、クライアントの事業成長と経営課題解決を最適な形でサポートする、データ・ビジネスパートナーです。
データ分析の分野でお客様に最適なソリューションをご提供します。まずはご相談ください。
Contact
Explore Jobs
関連記事