Tensorflow (1.1.0)에서 구현 된 Paraphrase 식별을위한 다양한 모델 및 코드.
나는 코드를 문서화하고 모델 전체에서 다양한 단계에서 내가하고있는 일을 설명하기 위해 신중하게주의를 기울였습니다. 바라건대 Tensorflow로 시작하려는 사람들을위한 교훈적인 예제 코드가되기를 바랍니다!
지금 까지이 저장소가 구현되었습니다.
Mueller, Jonas 및 Aditya Thyagarajan의 모델을 기반으로 한 기본 Siamese LSTM 기준선. "학습 문장 유사성을위한 시암 재발 아키텍처." AAAI (2016).
Liu, Yang et al. "양방향 LSTM 모델과 내부의 자연 언어 추론 학습." CORR ABS/1605.09090 (2016).
Wang, Zhiguo et al. "자연 언어 문장과의 양자 다목적 일치." CORR ABS/1702.03814 (2017).
PR은 더 많은 모델을 추가 / 기존 모델을 최적화하거나 패치하는 것이 좋습니다. 대부분의 모델 코드는 Duplication_Questions/Models에 있습니다
많은 데이터 처리 코드는 Allenai / Deep_QA에서 가져 오거나 영감을 얻었습니다.이 프로젝트가 어떻게 구성되는지 좋아하는 경우 확인하십시오!
이 프로젝트는 Python 3.5 에서 개발되었으며 테스트되었으며 (다른 버전의 Python에서는 작동하지 않을 수 있음) 패키지 요구 사항은 requirements.txt 입니다 .txt.
요구 사항을 설치하려면 :
pip install -r requirements.txt
요구 사항을 설치 한 후 (쉘에서) 실행하여 필요한 NLTK 데이터를 다운로드해야합니다.
python -m nltk.downloader punkt
요구 requirements.txt 파일 tensorflow 종속성으로 지정합니다. GPU가있는 경우이 CPU 텐서 플로우를 제거하고 실행하여 GPU 버전을 설치해야합니다.
pip uninstall tensorflow
pip install tensorflow-gpu
처음에는 다음을 실행하여 데이터, 훈련 된 모델 및 로그를 저장하기위한 보조 디렉토리를 생성합니다.
make aux_dirs
또한 사전에 사전 된 글러브 벡터를 사용하려면 다음을 실행하십시오.
make glove
사전 처리 된 장갑 벡터를 data/external/ 로 다운로드합니다. 동일한 디렉토리에서 파일을 추출하십시오.
Quora 질문 쌍 데이터를 사용하려면 Kaggle에서 데이터 세트를 다운로드하십시오 (계정이 필요할 수 있음). 다운로드 된 zip 아카이브를 data/raw/ 에 배치하고 파일을 동일한 디렉토리로 추출하십시오.
그런 다음 달리기 :
make quora_data
scripts/data/quora 의 스크립트로 데이터를 자동으로 정리하고 처리합니다.
모델 또는로드 + 모델을 교육하려면 모델로 스크립트를 scripts/run_model/ python <script_path> 로 실행하십시오. python <script_path> -h 실행하여 취하는 매개 변수에 대한 추가 문서를 얻을 수 있습니다.
다음은 기준 Siamese Bilstm의 예제 실행 명령입니다.
python scripts/run_model/run_siamese.py train --share_encoder_weights --model_name=baseline_siamese --run_id=0
다음은 일치하는 계층이있는 Siamese Bilstm의 실행 명령입니다.
python scripts/run_model/run_siamese_matching_bilstm.py train --share_encoder_weights --model_name=siamese_matching --run_id=0
BIMPM 모델의 예제 실행 명령은 다음과 같습니다.
python scripts/run_model/run_bimpm.py train --early_stopping_patience=5 --model_name=biMPM --run_id=0
기본값은 귀하의 사용에 이상적이지 않을 수 있으므로 원하는대로 손잡이를 돌리십시오.
이 저장소를 개선하는 방법에 대한 아이디어가 있습니까? 기능 요청, 버그 보고서 또는 패치가 있습니까? 문제를 해결하고 풀 요청을 살펴 보는 것이 행복하므로 문제 나 PR을 자유롭게 열어주십시오.
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- Original immutable data (e.g. Quora Question Pairs).
|
├── logs <- Logs from training or prediction, including TF model summaries.
│
├── models <- Serialized models.
|
├── requirements.txt <- The requirements file for reproducing the analysis environment
│
├── duplicate_questions<- Module with source code for models and data.
│ ├── data <- Methods and classes for manipulating data.
│ │
│ ├── models <- Methods and classes for training models.
│ │
│ └── util <- Various helper methods and classes for use in models.
│
├── scripts <- Scripts for generating the data
│ ├── data <- Scripts to clean and split data
│ │
│ └── run_model <- Scripts to train and predict with models.
│
└── tests <- Directory with unit tests.