LoginSignup
1
0

More than 1 year has passed since last update.

[Docker]Ubuntu20.04でのmecab及びmecab-ipadic-neologdの利用

Posted at
  • 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環境への導入したことで標準出力や任意のデータの解析や分解が容易になった。
  • 様々な利用の仕方があると思われるため、用途によって積極的に活用していく。

参考

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