LoginSignup
27
20

More than 5 years have passed since last update.

RubyでMeCabを使う方法と新語辞書NEologd対応

Last updated at Posted at 2017-04-06

Mecabってなに?

文章を品詞単位で切ってくれる形態素解析エンジン。↓こんなかんじ

$ mecab
明日は明日の風が吹く
明日  名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
明日  名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
風 名詞,一般,*,*,*,*,風,カゼ,カゼ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
吹く  動詞,自立,*,*,五段・カ行イ音便,基本形,吹く,フク,フク
EOS

MeCabと辞書のインストールはこちらから。。。

nattoをインストール

MeCabをRubyプログラム内で使えるようにするバインディングが、natto。

まずはインストール。

gem install natto

下のようなプログラムを書くだけでOK。

# -*- coding: utf-8 -*-

require 'natto'

txt = '明日は明日の風が吹く'

natto = Natto::MeCab.new
natto.parse(txt) do |n|
  puts "#{n.surface}: #{n.feature}"
end

実行してみると、、、

$ ruby natto_test.rb
明日: 名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ
は: 助詞,係助詞,*,*,*,*,は,ハ,ワ
明日: 名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ
の: 助詞,連体化,*,*,*,*,の,ノ,ノ
風: 名詞,一般,*,*,*,*,風,カゼ,カゼ
が: 助詞,格助詞,一般,*,*,*,が,ガ,ガ
吹く: 動詞,自立,*,*,五段・カ行イ音便,基本形,吹く,フク,フク
: BOS/EOS,*,*,*,*,*,*,*,*

無事出来ました!

mecab-ipadic-NEologdとは?

mecabで形態素解析をする場合に用いる辞書です。デフォルトで使われるipadicだとうまく品詞分割できない場合があります。。(↓こんな感じにドラゴンボールもアラレちゃんも分けてしまう。。。)

$ mecab
ドラゴンボールとアラレちゃん
ドラゴン    名詞,一般,*,*,*,*,ドラゴン,ドラゴン,ドラゴン
ボール   名詞,一般,*,*,*,*,ボール,ボール,ボール
と 助詞,並立助詞,*,*,*,*,と,ト,ト
アラレ   名詞,固有名詞,一般,*,*,*,*
ちゃん   名詞,接尾,人名,*,*,*,ちゃん,チャン,チャン
EOS

これをNEologd辞書を使うと、、、

$ mecab -u /usr/local/lib/mecab/dic/mecab-ipadic-neologd/seed/mecab-user-dict-seed.20170216.dic
ドラゴンボールとアラレちゃん
ドラゴンボール   名詞,固有名詞,一般,*,*,*,DRAGON BALL,ドラゴンボール,ドラゴンボール
と 助詞,並立助詞,*,*,*,*,と,ト,ト
アラレちゃん  名詞,固有名詞,一般,*,*,*,アラレちゃん,アラレチャン,アラレチャン
EOS

ちゃんと「ドラゴンボール」と「アラレちゃん」に分けてくれます!

使い方

  • 1.まずはダウンロード

    $ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
    
  • 2.次に、辞書ファイルを解凍

    $ xz -dkv mecab-ipadic-neologd/seed/mecab-user-dict-seed.20170216.csv.xz
    
  • 3.csvをmecab用の.dic形式に変換

    $ /usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u mecab-user-dict-seed.20170216.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20170216.csv
    
  • 4.実行

    • mecabコマンドの後に-uでdicのパスを指定する場合
    $ mecab -u /usr/local/lib/mecab/dic/mecab-ipadic-neologd/seed/mecab-user-dict-seed.20170216.dic
    
    • mecabの設定ファイルを変更しておく場合 /usr/local/etc/mecabrcに以下を追記
    userdic = /usr/local/lib/mecab/dic/mecab-ipadic-neologd/seed/mecab-user-dict-seed.20170216.dic
    

お世話になったサイト

rubyのmecabバインディングnattoを使う
MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する

27
20
1

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
27
20