12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

colaboratory上のMeCabで複数のユーザ辞書を指定する。

Last updated at Posted at 2019-04-24

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ファイルとして公開すれば、複数人で追加のユーザ辞書を追加しつつ、ほぼリアルタイムに更新後ユーザ辞書を
使った形態素解析ができる。

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?