1
2

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 3 years have passed since last update.

MeCab: ユーザー定義辞書に新しい単語を追加する(Windows)

Last updated at Posted at 2020-02-19

SAMPLE

 名詞,代名詞,一般,*,*,*,,ワタシ,ワタシ
 助詞,連体化,*,*,*,*,,,
 名詞,一般,*,*,*,*,,アネ,アネ
 助詞,係助詞,*,*,*,*,,,
芥川龍之介 名詞,固有名詞,作家,*,*,*,芥川龍之介,あくたがわりゅうのすけ,アクタガワリュウノスケ
 助詞,連体化,*,*,*,*,,,
 名詞,一般,*,*,*,*,,ホン,ホン
 助詞,格助詞,一般,*,*,*,,,
よく 副詞,一般,*,*,*,*,よく,ヨク,ヨク
読ん 動詞,自立,*,*,五段マ行,連用タ接続,読む,ヨン,ヨン
 助詞,接続助詞,*,*,*,*,,,
いる 動詞,非自立,*,*,一段,基本形,いる,イル,イル
 記号,句点,*,*,*,*,,,
 BOS/EOS,*,*,*,*,*,*,*,*

REFERENCE

MeCabの辞書への語彙追加方法【Windows 10, Ubuntu 18.04】

ユーザー定義辞書に新しい単語を追加する

辞書を用意する

csvファイルでutf-8として辞書を用意します。
ディレクトリ:C:\Users\ユーザー名\Desktop\MeCabUserDic
ファイル名:test_dic.csv

芥川龍之介,,,5543,名詞,固有名詞,作家,*,*,*,芥川龍之介,あくたがわりゅうのすけ,アクタガワリュウノスケ
太宰治,,,5543,名詞,固有名詞,作家,*,*,*,太宰治,だざいおさむ,ダザイオサム

表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音

左文脈IDおよび右文脈IDは、該当する単語をそれぞれ左・右から数えた時の内部ID
自動的に付与されるので空の状態で大丈夫だそうですが、私はエラー(しかも文字化け)してしまったので適当な値を振りました。

コストには似たような頻度で出現する単語と同じスコアを振ります。
コストが小さい程検出されやすくなります。

ユーザー辞書をコンパイル

MeCab\dic\ipadic\mecab-dict-indexを実行します。
通常のコマンドプロンプトで実行するとpermission deniedになってしまってしまったので
下記コマンドで管理者権限のあるコマンドプロンプトを立ち上げます。

powershell start-process cmd -verb runas

下記のコマンドで用意したcsvファイルに基づいてdicファイルを新しく作成します。

mecab-dict-index -t utf-8 -t utf-8 -d "<MeCab辞書ディレクトリのパス>" -u <新しくdicファイルを作成するディレクトリのパス> <定義した辞書csvファイルのパス>

上記のコマンド例は下記。

mecab-dict-index -f utf-8 -t utf-8 -d "C:\Program Files\MeCab\dic\ipadic" -u C:\Users\yuri.kinoshita\Desktop\MeCabUserDic\test.dic C:\Users\yuri.kinoshita\Desktop\test_dic.csv

実行結果です。
done!

reading C:\Users\yuri.kinoshita\Desktop\MeCabUserDic\test_dic.csv ... 2
emitting double-array: 100% |###########################################|

done!

HOW TO USE

import MeCab

mecab = MeCab.Tagger (r"-Ochasen -u C:\Users\yuri.kinoshita\Desktop\MeCabUserDic\test.dic")

text = "私の姉は芥川龍之介の本をよく読んでいる。"
node = mecab.parseToNode(text)
while True:
	node = node.next
	if not node: break
	print(node.surface,node.feature)

実行例。

 名詞,代名詞,一般,*,*,*,,ワタシ,ワタシ
 助詞,連体化,*,*,*,*,,,
 名詞,一般,*,*,*,*,,アネ,アネ
 助詞,係助詞,*,*,*,*,,,
芥川龍之介 名詞,固有名詞,作家,*,*,*,芥川龍之介,あくたがわりゅうのすけ,アクタガワリュウノスケ
 助詞,連体化,*,*,*,*,,,
 名詞,一般,*,*,*,*,,ホン,ホン
 助詞,格助詞,一般,*,*,*,,,
よく 副詞,一般,*,*,*,*,よく,ヨク,ヨク
読ん 動詞,自立,*,*,五段マ行,連用タ接続,読む,ヨン,ヨン
 助詞,接続助詞,*,*,*,*,,,
いる 動詞,非自立,*,*,一段,基本形,いる,イル,イル
 記号,句点,*,*,*,*,,,
 BOS/EOS,*,*,*,*,*,*,*,*
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?