言語処理100本ノック 2015の第4章: 形態素解析を解くためにCabochaを使えるようにしました。係り受け解析に使います。
最初はWindows上に直に構築しようとしたのですが、64bitのWindowsでは挫折しました(可能かもしれませんが、時間をかけたくなかったのでDocker使いました)。Cabochaが32bitのMecabを参照してしまい、エラーとなるからです。
ちなみに他PCのWindows10環境ではWSL上にCabochaをインストールしました。WSLに直接インストールするよりDockerでpullした方が簡単ですね。
参考リンク
- 自然言語処理100本ノックをWindows/Python3で 第五章を解く:環境構築時におおいに参考にしました
- MeCab公式サイト:名前の由来は作者の好物だからメカブらしい・・・
- Cabocha公式サイト
- 形態素解析 wikipedia:文を分解します。日本語は英語みたいなスペース区切りじゃないので大変。
- 構文解析 wikipedia:係り受け解析ではないですが・・・。
- 初心者用Docker基本コマンド一覧(新旧スタイル対応):久々のDockerだったので過去の自分の記事を見ながらDockerを動かしました。
- 記事「滝沢カレンの理解不能な文章を言語解析してみた。」:面白い記事でした
#環境
種類 | バージョン | 内容 |
---|---|---|
OS | Windows8 64bit | 自宅PCなのでWindows8.1です |
Docker | Docker Toolbox | インストールは「Windows 8.1でDocker ToolboxをインストールしてDockerを動かす」参照 |
#インストール手順
##1. Docker HubからPull
Docker Hubのdockeryama/docker.cabochaを使わせていただきました。いろいろなRepositoryを精査して決めたわけではなく、環境構築を早く終わらせたかったので適当に選んでいます。もっと最適なRepositoryがあるかもしれません。
Docker Quickstart Terminalを起動してRepositoryをpullします。
docker pull dockeryama/docker.cabocha
イメージを確認します。
docker images
##2. Docker containerを作成
Pullしたイメージ"dockeryama/docker.cabocha"から"cabocha"という名前のcontainerを作成し、container一覧を表示。
docker container create -it --name cabocha dockeryama/docker.cabocha
docker container ls -a
##3. 確認
Windows10未満のDocker Quickstart Terminalでは日本語表示できないらしいのでファイルを使ってcabochaを動かします。
###3.1. ファイルコピー
面倒ですが、ローカルPCのファイルをcontainerにコピーします。ファイル内には以下の文章を書いています。
「私は電車が好きです。」
docker container cp sample.txt cabocha:tmp
###3.2. Cabocha実行による係り受け解析
まずはcontainer起動しbash実行。
docker container start cabocha
docker container exec -it cabocha bash
tmpフォルダに移動してcabochaを実行します。
cd tmp
cabocha <sample.txt> sample_out.txt
###3.3. Cabocha解析結果確認
exitでcontainerを抜けます。
exit
DockerのファイルをローカルPCのtmpフォルダにコピーします。面倒くさい。
docker container cp cabocha:tmp/sample_out.txt /tmp
ファイルをWindows上で見ると、形態素解析され係り受けができていることを確認できます(例文が少し悪くてわかりにくい)。
#cabocha実行オプション
ちなみにcabocha実行時にf1オプションを付加すると詳しく結果が出てくれます。オプションについては「CaboCha/南瓜: Yet Another Japanese Dependency Structure Analyzer」を参照ください。
cabocha -f1 <sample.txt> sample_out_f1.txt