概要
コマンド2行で、jupyter notebookと自然言語処理のライブラリsisterを使っての開発環境が起動します。
普通に設定すると、Docker起動毎に、sisterの辞書ダウンロードが発生するので、辞書データを 永続化 する設定を加えた docker-compose.yml
を書きました。
きっかけ
ふだんはRubyメインの開発で、pythonは自然言語処理をする時にしか触らない。
開発環境の構築で楽をしたいので、すぐに使えるrepositoryをつくりました。
コード
使い方
-
dockerをインストール
-
dockerのメモリを増加
-
ダウンロード
好きなところでレポジトリをクローンします。
git clone https://github.com/junara/docker_sister_jupyter.git
フォルダに移動します。
cd docker_sister_jupyter
- 始める
docker-compose build
docker-compose up -d
- 終了する
docker-compose down
いやー、Dockerだと簡単ですね。
確認
http://localhost:8888/?token=jupyter にアクセスしてください。
sampleは以下です。 http://localhost:8888/notebooks/work/SampleEnglish.ipynb
import sister
sentence_embedding = sister.MeanEmbedding(lang="ja") # Need long time to download data at first time.
sentence = "私はうさぎです。"
vector = sentence_embedding(sentence)
print(vector)
解説
sisterのcahceを以下でlocalに volumesで永続化しています。これで、docker環境作り直し毎の辞書のダウンロードが発生しなくなります。
volumes:
- ./cache/.sister:/home/jovyan/.sister:delegated
Dockerfileはこんなかんじ。 jupyter/scipy-notebook をベースにして require.txt でライブラリを追加できるようにしています。
FROM jupyter/scipy-notebook
COPY requirements.txt /home/jovyan
RUN pip install -r /home/jovyan/requirements.txt
require.txtにsisterを追加してインストールされるようにしています。追加のライブラリがありましたらこちらにいれてください。 docker-compose exec jupyter pip install -r /home/jovyan/requirements.txt
をすれば追加のライブラリをインストールされます。
sister
以上。