こちら↓の Q&A サイトで関連する質問の抽出を実装する際に、GitHub Actions(Python)で MeCab + NEologd を使ったので、メモ的に残しておきます。
参考:
- DockerでPython公式イメージ + MeCab + NEologd辞書(Takayoshi_Makabe さん)
ポイント
GitHub Actions で使用する.yml
ファイルを記述する際、
-
cd
が使えないので代わりにworking-directory
を指定する -
/etc/mecabrc
に上書きしようとすると権限エラーが出るので、別の場所に書き出しておいたmecabrc
を/usr/local/etc/
の下にコピーする
の 2 点、気を付けるだけです。
.yml
ファイルの例
Ubuntu のイメージを使う例です。
data-creator.yml
# This is a workflow example with Actions
name: mecab neologd example
env:
TZ: Asia/Tokyo
on:
schedule:
- cron: '00 */3 * * *'
workflow_dispatch:
jobs:
process_data:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: main
path: production
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: "3.9"
- name: Install packages
run: sudo apt-get install -y mecab libmecab-dev mecab-ipadic-utf8
- name: Get MeCab dictionary
run: git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
- name: Setup MeCab dictionary
run: ./bin/install-mecab-ipadic-neologd -n -y
working-directory: ./mecab-ipadic-neologd
- name: Setup MeCab configure
run: echo dicdir = `mecab-config --dicdir`"/mecab-ipadic-neologd" > mecabrc && sudo cp mecabrc /usr/local/etc/
- name: Install dependencies
run: pip install mecab-python3
※この後ろに具体的な処理を書きます。
実際の使用例
こちら↓で使っています。
なお、MeCab の処理に関連するコードだけ抜き出したリポジトリ(本体に組み込む前のテストで使ったもの)はこちら↓です。