該存儲庫包含用於培訓的代碼,並使用:深:深:深:
如果您使用我們的代碼,請引用我們的論文如下:
@inproceedings {He2017deep,
title = {深層語義角色標籤:什麼有效和下一步有效},
作者= {He,Luheng和Lee,Kenton和Lewis,Mike和Zettlemoyer,Luke},
BookTitle = {計算語言學協會年會的會議錄},
年= {2017}
}
./scripts/fetch_required_data.sh在Neural_SRL目錄下解壓縮模型(資源)。例如,在代碼庫目錄下:
tar -zxvf resources/conll05_model.tar.gz
以下是預算模型的清單:
conll05_model.tar.gz :在Conll-2005數據集上訓練的單型模型。conll05_ensemble.tar.gz :5型在Conll-2005數據集上訓練的模型集合。conll05_propid_model.tar.gz :CONLL-2005上的謂詞識別模型訓練。conll2012_model.tar.gz :在Conll-2012數據集上訓練的單型模型。conll2012_ensemble.tar.gz :5模型集合在Conll-2012數據集上進行了訓練。conll2012_propid_model.tar.gz :CONLL-2012上的謂詞識別模型。 python python/interactive.py --model conll05_model/ --pidmodel conll05_propid_model
跑步:
./scripts/run_end2end.sh sample_data/sentences_with_predicates.txt temp/sample.out (在cpu上)或:
./scripts/run_end2end.sh sample_data/sentences_with_predicates.txt temp/sample.out ${gpu_id} (on GPU)
請注意,該腳本將/usr/local/cuda/...添加到PATH和CUDA_LD_LIBRARY_PATH ,並從./conll05_propid_model和./conll05_ensemble加載預處理的模型,請根據自己的設置調整配置。
輸入文件包含令牌化句子,每行句子。
輸出文件將包含類似的內容:
約翰告訴帕特切掉樹。
謂詞:告訴(1)
A0:約翰
V:告訴
A2:帕特
A1:切斷樹
約翰告訴帕特切掉樹。
謂詞:剪切(4)
A0:帕特
V:切斷
A1:樹
predict.py將整個輸入文件加載到內存中,因此最好將每個文件中的句子數量保持在50,000以下。 要在CONLL-2005和CONLL-2012數據集上複製結果,請按照以下步驟操作。
數據提供:Conll-2005共享任務,但原始單詞來自Penn Treebank數據集,該數據集尚不公開。如果您有PTB語料庫,則可以運行:
./scripts/fetch_and_make_conll05_data.sh /path/to/ptb/
您必須按照以下說明獲取Conll-2012 Data Conll-2012,這將導致一個稱為/path/to/conll-formatted-ontonotes-5.0的目錄。跑步:
./scripts/make_conll2012_data.sh /path/to/conll-formatted-ontonotes-5.0
請參閱python/train.py的使用:
python python/predict.py -h
或作為快速啟動,運行訓練的模型(需要Conll05_ensemble):
./scripts/run_predict_conll05.sh ${gpu_id}或:
./scripts/run_predict_conll05.sh用於在CPU上運行。
用預測運行模型端到端(需要conll05_ensemble和conll05_propid_model):
./scripts/run_end_to_end_conll05.sh ${gpu_id}
運行Conll-2012型號的運行類似。
請參閱python/train.py的使用:
python python/train.py -h
使用預定義的配置文件訓練SRL模型(帶有金謂詞): ./scripts/run_train.sh ${gpu_id}
訓練謂詞標識者: ./scripts/run_propid_train.sh ${gpu_id}
請注意,在訓練時, train.py在FAST_RUN模型中運行,這將導致巨大的模型彙編開銷。 2層型號可能需要多達幾分鐘,而8層型號最多需要8小時。
請參閱sample_data中的文件以及下面的說明,以了解如何格式化模型輸入。
每行包含一個恰好具有謂詞信息(句子中的索引,從0開始),令牌化句子和一系列標籤的訓練樣本。如果不存在黃金標籤,只需使用OS序列即可。句子和標籤序列用|||分開象徵。我們使用IOB2格式。所有令牌和符號都被任意的空格分開。
示例行:
2我的貓喜歡帽子。 ||| B-A0 I-A0 BV B-A1 O
格式類似於上述定義,只是每行都對應於輸入句子,並且沒有提供謂詞信息。謂詞對應於V標籤,所有其他單詞都標有O標籤。
示例行:
他們說,我的貓喜歡帽子。 ||| Oovooovo
config包含一些用於訓練SRL模型( srl_config.json和srl_small_config.json )的配置文件,以及訓練predicate-iD模型( propid_config.json )
如果您有任何疑問,請聯繫Luheng他!