yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。

この記事は3年以上前に書かれた記事で内容が古い可能性があります

mecabでslack botを豊かにする話

2017-05-20

少し昔に作った、mecabでslack botを豊かにする話。
mecabの話はこちらでもチラと書いています。

■mecabの始め方

以下3コマンドで導入できます。(python3前提)

% brew install mecab  # 和布蕪のインストール
% brew install mecab-ipadic  # 辞書のインストール
% pip install mecab-python3  # python3へmecabのインストール

■mecabでslackbot

今回、slackbotを作るので、便利なモジュール導入。

% pip install slackbot

稚拙ですがコードは以下
https://github.com/yoshi-island/mecab_slack_bot

ファイル構造はこんな感じ。「password_list.py」「__init__.py(空でOK)」だけご自身で作成ください。

% tree mecab_slack_bot
mecab_slack_bot
├── mecab_analyze.py
├── mecab_dict_setting.py
├── password_list.py
├── plugins
│└──__init__.py 
│└──my_mention.py
├── run.py
└── slackbot_settings.py

「password_list.py」の中身

% cat mecab_slack_bot/password_list.py
token = "自身のslackトークン"
home = "ご自身のホームディレクトリ" #mecab_dict_setting.py内で使うのでご確認を。

■実行

% python mecab_slack_bot/run.py

■辞書登録

マリオを人名としたい

% mecab
マリオ
マリオ	名詞,固有名詞,一般,*,*,*,マリオ,マリオ,マリオ
EOS

■ユーザー辞書パス追加

% cat /usr/local/etc/mecabrc
;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir =  /usr/local/lib/mecab/dic/ipadic

; userdic = /home/foo/bar/user.dic

; output-format-type = wakati
; input-buffer-size = 8192

; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n

# userdic
userdic = /usr/local/lib/mecab/dic/userdic

■リストに追記

% cat ~/mecab_work/dic_work/people.csv
マリオ,,,1,名詞,固有名詞,人名,名,*,*,まりお,マリオ,マリオ,people_dic

■フォーマット

% /usr/local/Cellar/mecab/0.996/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u /usr/local/lib/mecab/dic/userdic -f utf-8 -t utf-8 ~/mecab_work/dic_work/people.csv
reading ~/mecab_work/dic_work/people.csv ... 1
emitting double-array: 100% |###########################################|

done!

■確認

% mecab
マリオ
マリオ	名詞,固有名詞,人名,名,*,*,まりお,マリオ,マリオ,people_dic
EOS

これをbotにやらせたり、、、夢は広がる。