2
0

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 1 year has passed since last update.

小ネタ/GitHub Actions の Python 環境で MeCab + NEologd を使う

Last updated at Posted at 2022-01-11

こちら↓の Q&A サイトで関連する質問の抽出を実装する際に、GitHub Actions(Python)で MeCab + NEologd を使ったので、メモ的に残しておきます。

参考:

ポイント

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 の処理に関連するコードだけ抜き出したリポジトリ(本体に組み込む前のテストで使ったもの)はこちら↓です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?