すぐ すぴー (˘ω˘)

僕はりんごをかじる 彼女は鼻をかむ

【改訂版】ccg2lambdaインストール for mac and Linux

この記事は各CCGパーサーとccg2lambdaのインストールについてです.
linuxSUSE 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つをダウンロードし,
f:id:sugspi:20170429084248p:plain
展開してください.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


(次回,具体的な使い方を書きます)