この記事は3年以上前に書かれた記事で内容が古い可能性があります
mecabでslack botを豊かにする話
2017-05-20
少し昔に作った、mecabでslack botを豊かにする話。
mecabの話はこちらでもチラと書いています。
Contents
■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にやらせたり、、、夢は広がる。