🤖
[Docker]Ubuntu20.04でのmecab及びmecab-ipadic-neologdの利用
- shellで、あるリストを単語ごとに分割しようとした矢先、mecabというライブラリを発見。
- そのライブラリ及び専用の辞書ツールを試しにGoogle Colabで利用して便利であったため、Linux環境にも導入したい。
- そこで今回はDockerのUbuntu20.04内に導入する方法を記録する。
環境
- Mac OS 11.2.3
- Docker version 20.10.8
手順
- 任意のディレクトリに以下でDockerfileを作成する。
# workディレクトリ内にmecab-conディレクトリを作成
mkdir ~/work/mecab-con; cd $_
# mecab-con内にDockerfileを作成
touch Dockerfile
- 作成後、
mecab-con/Dockerfile
の中身を以下にする。
~/work/mecab-con/Dockerfile
FROM ubuntu:20.04
# 日本設定
ENV TZ Asia/Tokyo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV LANG ja_JP.UTF-8
# パッケージインストール
RUN apt update -yqq && \
apt install -y --no-install-recommends \
build-essential curl ca-certificates \
file git locales sudo \
mecab libmecab-dev mecab-ipadic-utf8 && \
locale-gen ja_JP.UTF-8 && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# mecab-ipadic-neologdインストール
WORKDIR /tmp
RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git && \
./mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -y && \
sudo mv /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd /var/lib/mecab/dic/ && \
sed -i 's/debian/mecab-ipadic-neologd/' /etc/mecabrc && \
rm -rf ./mecab-ipadic-neologd && \
echo "完了"
- 内容を記述後、以下のコマンドでコンテナの立ち上げ及び起動を行う。
# ビルド
docker build -t mecab-con .
# 起動及び接続
docker run -it mecab-con
- コンテナの中へ接続後、以下でmecabが利用できることを確認できたら完了。
# バージョン確認
mecab -v
# 解析
echo "せっかちなかたつむり" | mecab
せっかち 名詞,形容動詞語幹,*,*,*,*,せっかち,セッカチ,セッカチ
な 助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
かたつむり 名詞,一般,*,*,*,*,かたつむり,カタツムリ,カタツムリ
# 辞書指定
echo "白石麻衣" | mecab -d /var/lib/mecab/dic/ipadic-utf8
白石 名詞,固有名詞,人名,姓,*,*,白石,シライシ,シライシ
麻衣 名詞,固有名詞,人名,名,*,*,麻衣,マイ,マイ
# 読み
echo "薔薇" | mecab -O yomi
バラ
# 分かち書き
echo "せっかちなかたつむり" | mecab -O wakati
せっかち な かたつむり
# 指定のtsvから解析して名詞のみを抜き出す。
cut -f1 **.tsv | mecab | grep '名詞' | cut -f1
まとめ
- Linux環境への導入したことで標準出力や任意のデータの解析や分解が容易になった。
- 様々な利用の仕方があると思われるため、用途によって積極的に活用していく。
Discussion