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