【改訂版】ccg2lambdaインストール for mac and Linux
この記事は各CCGパーサーとccg2lambdaのインストールについてです.
linuxはSUSE Linux Enterprise Server でした.
ccg2lambdaとは
頑健なCCGパーザと高階論理に基づく自動推論を組み合わせた含意関係認識システム
つまり,CCGパーザーにより高階論理を得て,coqでそれが含意するかを自動推論する
ということです.CCGって何?つまりccg2lambdaってどんなことができるの?ってあたりは別記.
インストール作業
GitHub - mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.に
書いて有ありますが,特にmacにインストールする際,
公式のやり方で詰まった場合に私のやり方でもお試しください.
本題
まずはcloneとpython周りの設定
homebrew,pyenv,pipはインストール済みとします.
pyenvよくわからない人は動作確認済みのpython3.5.0あたりを入れておいてください.
pyenv install 3.5.0
git clone https://github.com/mynlp/ccg2lambda.git pyenv local 3.5.0 pip3 install virtualenv virtualenv --python=/usr/local/bin/python3 --no-site-packages env source env/bin/activate pip install lxml simplejson pyyaml -I nltk==3.0.5
起動毎に読み込みが必要になるとことなので設定ファイルに書いておきましょう.
MacにPython3をインストールし環境構築【決定版】 - Qiita
ここで注意なのですが,ccg2lambdaはシェルスクリプトを動かすため
pythonと打った時にpython2が起動されてしまうとうまくいきません.
テストを行います.okがでたらok !
cd ccg2lambda/ python scripts/run_tests.py
定理証明支援言語のCoqを入れます.
brew install coq
デフォルトのcoqの読み込みをします
coqc coqlib.v
これでccg2lambda本体は終わりです!お疲れ様でした.次にCCGパーサーです.
公式ではC&CやJiggについて述べていますが,ccg2lambdaはCCGパーサーで
テキストを論理式にパースできるかが肝となっていますので英語はC&Cパーサー,EasyCCG, depccg,
日本語はJigg,depccgを使ってパースしていきましょう!
各パーサーのディレクトリはどこに作っても構いません.
また,各パーサーのディレクトリ下にmodelがなかったらmkdir modelしてください.
C&Cパーサー
このサイトから
C&C Parser Downloads
赤まる2つをダウンロードし,
展開してください.candc-1.00はccg2lambda/candc-100に移動させたとします
また,model は ccg2lambda/candc-1.00/model に移動させてください.
echo "../candc-1.00/" > en/candc_location.txt
公式にはこれが書いてありますが,今回はマルチパーサーを使うのでいらないです.
EasyCCG
git clone https://github.com/mikelewis0/easyccg.git
eagyccg/model/に
GitHub - mikelewis0/easyccg
Pre-trained models are available from: ...
のモデルを置いてください.
depccg
GitHub - masashi-y/depccg: A* CCG Parser with a Supertag and Dependency Factored Model
同時に日本語の設定もやってしまいます.
git clone https://github.com/masashi-y/depccg.git pyenv local 3.5.0 pip3 install virtualenv virtualenv --python=/usr/local/bin/python3 --no-site-packages en source env/bin/activate pip install cython chainer==1.23 cd depccg/src python setup.py build_ext --inplace
ここでsrc/にdepccg.soができているかご確認ください.
またgcc >=4.9 です(Xcodeインストールが必要でした)
その後,gitのread me上に書いてある英語,日本語のモデルを
depccg/model に置いてください.
cd src echo "this is a test sentence ." | python run.py ../models/tri_headfirst en --format deriv
で木が出力されたら成功です
Jigg
Jigg パーサーは簡単です.
./ja/download_dependencies.sh
では,最後にパーサーの場所を設定して終わりです.
末端に / をつけないでください.
en/parser_location.txt
candc:path/to/candc-1.00 easyccg:path/to/easyccg depccg:path/to/depccg
ja/parser_location_ja.txt
jigg:path/to/jigg-v-0.4 depccg:path/to/depccg
テストします
一行目は英語,二行目は日本語を動かすスクリプト
judgeにyes or no or unknown がでれば成功です
./en/rte_en_mp_any.sh en/sample_en.txt en/semantic_templates_en_emnlp2015.yaml ./ja/rte_ja_mp.sh ja/sample_ja.txt ja/semantic_templates_ja_emnlp2016.yaml
(次回,具体的な使い方を書きます)