2
1

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.

MeCab+unidicで -Oyomi が使えるようにする

Last updated at Posted at 2017-12-04

概要

Mecab 0.996 + unidic2.1.2

MeCabにunidic辞書を使用する場合、バイナリ辞書、ソース辞書のどちらのインストール方法を取ってもデフォルトのdicrcには出力フォーマットとしてのyomi形式が定義されていないため、エラーとなる。

$ echo "日本語の文章" | mecab -d /usr/local/lib/mecab/dic/unidic -Oyomi
writer.cpp(63) [!tmp.empty()] unkown format type [yomi]

Googleで検索をしてみると、次のページがヒットする。

[小ネタ] mecab + unidic で出力フォーマットを整形する方法

このサイトは参考になったが、しかしながら、この方法はあまり賢くない上に少しだけ間違っている。

それは、次のような例の時におかしくなる。

$ echo "言ってた" | mecab -d /usr/local/lib/mecab/dic/unidic -O '' -F '%f[6]' -U '%m' -E '\n'
イウテルタ

方法

コマンドラインに指定しているオプションをdicrcファイルに定義する。
そして、正しいフィールドを出力するようにする

/usr/local/lib/mecab/dic/unidic/dicrc

; 末尾に以下を追加
; yomi
node-format-yomi = %f[9]
unk-format-yomi = %m
eos-format-yomi  = \n

node-format-yomiのフィールド番号は9番を指定する。
参考サイト、6番目は語彙素読み。9番目が発音形出現形となっているため。

この設定ののち、次のように利用できる。

$ echo "日本語の文章" | mecab -d /usr/local/lib/mecab/dic/unidic -Oyomi
ニッポンゴノブンショー
$ echo "言ってた" | mecab -d /usr/local/lib/mecab/dic/unidic -Oyomi
イッテタ

参考

辞書のフィールド

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?