colaboratory上でmecabを動かす際に、ユーザ辞書を複数追加したくなったためやったもの。
科学技術系のワードをデフォルトの辞書ではなくて抜き出したかったため
科学技術用語形態素解析辞書の中の
・JSTシソーラス見出し語・同義語辞書
・日化辞辞書
のdic+自分で定義したdicの3つを追加した。
#mecabのインストール
!cd ../usr/local/lib
!sudo apt install mecab
!sudo apt install libmecab-dev
!sudo apt install mecab-ipadic-utf8
#ユーザ辞書用のフォルダ作成
!mkdir ../var/lib/mecab/dic/userdic
#日化辞、JSTのdicをダウンロード。上で作ったユーザ辞書用のフォルダに置く。
!curl -o ../var/lib/mecab/dic/userdic/Nikkaji.dic ~~(適当な場所)/Nikkaji.dic
!curl -o ../var/lib/mecab/dic/userdic/Thesaurus2015.dic ~~(適当な場所)/Thesaurus2015.dic
#追加のユーザ辞書作成。上と同じフォルダに追加
import pandas as pd
df_userdic = pd.read_csv("~~.csv",header=0)
#df_userdicはIPA品詞体系と同じ並び
df_userdic.to_csv('../content/userdic.csv',header=None,index=False
,encoding='utf-8')
!/usr/lib/mecab/mecab-dict-index \
-d /var/lib/mecab/dic/debian \
-u /content/userdic.dic \
-f utf-8 \
-t utf-8 /content/userdic.csv
!mv -f /content/userdic.dic /var/lib/mecab/dic/userdic/userdic2.dic
#mecabrcの置き換え:Nikkaji.dic、Thesaurus2015.dic、userdic2.dicを
#ユーザ辞書として指定したmecabrcに置き換え。
#colaboratoryだとviなど使えずmecarcを直接編集できないので、
#一回他でmecabrcのuserdic=の部分を下記のような感じで書き換えておく。
userdic = /var/lib/mecab/dic/userdic/Nikkaji.dic,/var/lib/mecab/dic/userdic/Thesaurus2015.dic,/var/lib/mecab/dic/userdic/userdic2.dic
!curl -o /etc/mecabrc ~~適当な場所/mecabrc
!pip install mecab-python3==0.7
import MeCab
これでmecabを複数のユーザ辞書を読み込んだ上で使えるようになった。
ユーザ辞書をgoogle spreadsheetで作成して、読み込み用にcsvファイルとして公開すれば、複数人で追加のユーザ辞書を追加しつつ、ほぼリアルタイムに更新後ユーザ辞書を
使った形態素解析ができる。