LoginSignup
40
31

More than 5 years have passed since last update.

pythonで自然言語処理を行うために必要なライブラリを揃えたDockerfile

Last updated at Posted at 2017-09-16

個人用途のために、pythonで自然言語処理を行うために必要なライブラリを揃えたimageを作るためのDockerfileを作成しました。
せっかく作成したので、誰かの役に立つかと思い、こちらに公開することにしました。

ソースコード

以下に置いています。
https://github.com/fukumame/dockerfile-machine-learning

含まれているライブラリ

  • このdocker imageには形態素解析エンジンであるmecab及び、以下のpythonライブラリが含まれています。
    • jupyter
    • numpy
    • scipy
    • scikit-learn
    • matplotlib
    • pandas
    • mecab-python3
    • neologdn
  • Jupyter notebookがport 8888でexposeされており、ホスト側のポートとバインドすることによって、Jupyter notebookを利用可能です。
  • 新しい固有名詞の解釈を精度高く行うため、mecabの新語辞書であるmecab-ipadic-NEologdも含んでいます。
  • neologdnは、日本語の正規化処理を行ってくれるライブラリで、以下の変換を行ってくれます。

使い方

  • 上記レポジトリから git clone します。
    git clone https://github.com/fukumame/dockerfile-machine-learning.git

  • cloneしたディレクトリに移動し、以下のコマンドからdocker imageを作成します。

cd /docker/file/path
# イメージファイルの作成 (IMAGE_NAMEとTAGは任意の値)
docker build -t IMAGE_NAME:TAG .
  • 上記作成したイメージをもとに、containerを起動します。
    • その際、Jupyter notebookをホスト側で使うためのポートをpオプションで指定し、vオプションにて、ホスト側ディレクトリのパスを指定します。
# 任意のCONTAINER_NAMEをつけて、HOST_PORTで任意のポート、を指定し、HOST_VOLUME_PATHでホスト側のパスを指定し、container作成 
docker run -it --name CONTAINER_NAME -p HOST_PORT:8888 -v HOST_VOLUME_PATH:/notebook IMAGE_NAME bash
  • 起動すると、以下のメッセージが表示されるので、表示に従いブラウザからURLを叩くと、jupyter notebookが起動します
    • 表示されている8888のポート番号は、コンテナ側のポート番号なので、ホスト側でバインドしたポートが異なる場合、置き換えてください。
    • vオプションとして指定したホスト側のパスが、jupyter notebookのホームディレクトリとなります。
    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://0.0.0.0:8888/?token=xxxxxxxxxx

image.png

40
31
1

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
40
31