データ分析 

MeCabでComeJisyoを使おう

ComeJisyoとは、医療単語を3万語ほど登録しているMeCab用の辞書です。ここではMacにインストールする場合を示します。

次のページを参考にしました。「Python3でMeCab。さらに医療辞書を追加するまで

なお、MeCabのインストールについては本記事では扱いません。「MeCabをMacにインストールする手順」を参考にどうぞ。

ComeJisyoのインストール

  1. https://ja.osdn.net/projects/comedic/から、ComeJisyoV5-1.zipをダウンロードします。
  2. 解凍してできたディレクトリ内の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)

上記は辞書の情報なので、用語とは直接関係ありません。

  1. CSVファイルは文字コードがShift-JISなので、UTF-8に変換します。
  2. ターミナルでCSVファイルのあるディレクトリに移動します。
  1. ユーザー辞書を作成します。
$ /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は、クライアントの事業成長と経営課題解決を最適な形でサポートする、データ・ビジネスパートナーです。
データ分析の分野でお客様に最適なソリューションをご提供します。まずはご相談ください。

このページをシェアする: