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

Mecab Python Docker環境構築

Last updated at Posted at 2025-01-05

対象者

  • Mecab・Pythonを実行できる環境を手軽につくりたい人
  • mecab-python3
    • pythonでmecabを使いたい時に必須なライブラリ
  • https://github.com/neologd/mecab-ipadic-neologd
    • mecab-python3では辞書が別途必要になります。
      • 今回はデフォルトでこの辞書を使うことにしました。

本記事で作成したものは下記に置いています。

方針

  • Dockerでイメージを作る
    • イメージに含むもの
      • python3
      • mecab環境の整備
  • pythonスクリプトはdocker runコマンドの引数で指定する
    $ docker run -v $PWD:/app イメージ名 python スクリプト名.py
    

環境構築

ディレクトリ構成
akeo@takeo-ThinkPad-E14-Gen-4:~/dev/python-learning/mecab$ tree
.
├── Dockerfile
├── main.py # テスト用のサンプルプログラム(名前はなんでもよい)
└── requirements.txt
Dockerfile
FROM python:3.11

RUN mkdir /app
COPY requirements.txt /app/requirements.txt
WORKDIR /app

# mecabの導入
RUN apt-get -y update && \
  apt-get -y upgrade && \
  apt-get install -y mecab && \
  apt-get install -y libmecab-dev && \
  apt-get install -y mecab-ipadic-utf8 && \
  apt-get install -y git && \
  apt-get install -y make && \
  apt-get install -y curl && \
  apt-get install -y xz-utils && \
  apt-get install -y file && \
  apt-get install -y sudo

# mecab-ipadic-NEologdのインストール
RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git && \
  cd mecab-ipadic-neologd && \
  ./bin/install-mecab-ipadic-neologd -n -y && \
  echo dicdir = `mecab-config --dicdir`"/mecab-ipadic-neologd">/etc/mecabrc && \
  sudo cp /etc/mecabrc /usr/local/etc

RUN pip install -r /app/requirements.txt

CMD ["/bin/bash"]
requirements.txt
mecab-python3

イメージの作成

イメージ名はmecabにしています。

$ docker build -t mecab .

スクリプトの実行

ポイントは下記の2つです。

  • ディレクトリをマウント(-v)
  • スクリプトへのコマンドを渡す(python main.py)
main.py
import MeCab

mecab = MeCab.Tagger()
print(mecab.parse("死は生の対極としてではなく、その一部として存在している。"))
実行例
$ docker run -v $PWD:/app mecab python main.py
死	名詞,一般,*,*,*,*,死,シ,シ
は生	名詞,サ変接続,*,*,*,*,派生,ハセイ,ハセイ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
対極	名詞,一般,*,*,*,*,対極,タイキョク,タイキョク
として	助詞,格助詞,連語,*,*,*,として,トシテ,トシテ
では	名詞,一般,*,*,*,*,出端,デハ,デハ
なく	形容詞,自立,*,*,形容詞・アウオ段,連用テ接続,ない,ナク,ナク
、	記号,読点,*,*,*,*,、,、,、
その	連体詞,*,*,*,*,*,その,ソノ,ソノ
一部	名詞,副詞可能,*,*,*,*,一部,イチブ,イチブ
として	助詞,格助詞,連語,*,*,*,として,トシテ,トシテ
存在	名詞,サ変接続,*,*,*,*,存在,ソンザイ,ソンザイ
し	動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て	助詞,接続助詞,*,*,*,*,て,テ,テ
いる	動詞,非自立,*,*,一段,基本形,いる,イル,イル
。	記号,句点,*,*,*,*,。,。,。
EOS

参考

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