이 저장소에는 다음에 설명 된 심층 SRL 모델 교육 및 사용을위한 코드가 포함되어 있습니다.
우리 코드를 사용하는 경우 다음과 같이 논문을 인용하십시오.
@InProCeedings {He2017deep,
title = {깊은 의미 론적 역할 라벨링 : 무엇이 효과가 있고 무엇이 다음과 같은},
저자 = {He, Luheng and Lee, Kenton and Lewis, Mike and Zettlemoyer, Luke},
서적 = {계산 언어 협회 연례 회의},
연도 = {2017}
}
./scripts/fetch_required_data.sh neural_srl 디렉토리에서 모델 (리소스)을 압축 해제하십시오. 예를 들어, Codebase 디렉토리에서 :
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} (gpu)
스크립트는 /usr/local/cuda/... PATH 및 CUDA_LD_LIBRARY_PATH 에 추가되며 ./conll05_propid_model 및 ./conll05_ensemble 에서 전처리 된 모델을로드합니다. 자체 설정에 따라 구성을 조정하십시오.
입력 파일에는 라인 당 하나의 문장이 토큰 문장이 포함되어 있습니다.
출력 파일에는 다음과 같은 것이 포함됩니다.
존은 팻에게 나무를 잘라 내라고 말했다.
술어 : 말한 (1)
A0 : 존
V : 말한다
A2 : PAT
A1 : 나무를 잘라 내기 위해
존은 팻에게 나무를 잘라 내라고 말했다.
술어 : 컷 (4)
A0 : PAT
V : 차단
A1 : 나무
predict.py 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
사전 정의 된 config 파일로 SRL 모델 (Gold Predicates 포함)을 훈련시킵니다 : ./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
형식은 각 줄이 입력 문장에 해당하고 술어 정보가 제공되지 않는다는 것을 제외하고는 상기 정의 된 것과 유사합니다. Prediates는 V 태그에 해당하고 다른 모든 단어에는 O 태그가 표시됩니다.
예제 라인 :
내 고양이는 모자를 좋아한다고 그들은 말한다. ||| Oovooovo
config SRL 모델 ( srl_config.json 및 srl_small_config.json )을 훈련시키고 술어 -ID 모델 ( propid_config.json )을 훈련하기위한 일부 구성 파일이 포함되어 있습니다.
궁금한 점이 있으면 Luheng에게 연락하십시오!