이것은 학부 시험 과정의 주요 숙제입니다. 기본적으로 임의의 방식으로 작성되었습니다. 당시 나는 아무것도 몰랐고 모든 종류의 API를 사용할 수 없었기 때문에 많은 곳에서의 구현은 매우 부적절했습니다. 또한이 모델은 문제를 절약하기 위해 가장 간단한 모델을 선택했으며 코드 수준과 학업 수준 모두에서 참조 값이 없습니다.
또한 데이터를 사용할 권한이 없으므로 데이터 세트를 공개 할 수 없습니다. 이해하십시오
LSTM을 기반으로 한 중국어 Q & A 시스템
이 프로젝트는 주어진 질문에 대한 답변이 양방향 장거리 및 단기 메모리 네트워크 모델을 설정하여 여러 문장에있는 문장을 찾는 기능을 깨닫습니다. 타사 인터넷 리소스 사용 전제로 Training.Data에서 교육을받은 모델을 사용하여 Develop.Data를 확인할 수 있습니다. MRR은 0.75 이상에 도달 할 수 있습니다.
달리는 방법
환경 의존성
프로그램 버전 파이썬 3.5.2 텐서 플로 1.2.1 지바 0.38 쿠다 8.0 (8.0.61.2) CUDNN 5.1 Cuda와 Cudnn은 둘 다 텐서 플로우의 종속성입니다. 설치 방법을 얻으려면 공식 Tensorflow 문서를 확인하십시오. 나머지는
pip install명령을 사용하여 설치할 수 있습니다.타사 자원 사용 지침
- 중국어 텍스트에서 단어 분할을 수행 할 때 Jieba 세분화가 사용됩니다.
- 좋은 단어를 인코딩 할 때, 단어 임베딩 인코딩은 1 홀 인코딩으로 인한 성능 손실을 피하기 위해 사용됩니다. Word Vector는 중국 Wikipedia의 오프라인 데이터 교육을 통해 얻은 50 차원 단어 벡터 파일을 사용합니다.
프로그램을 실행하십시오
종속성 라이브러리를 설치 한 후 main.py를 직접 실행하십시오. 교육을받은 모델이 있으면 프로그램이 모델을 직접로드 할 것인지 아니면 다시 교육을 시작할 것인지 프롬프트합니다.
main.py는 매개 변수를받지 않습니다. 구성을 수정 해야하는 경우 코드를 직접 수정하십시오. 파일에 자세한 중국어 댓글이 있습니다. 그에 따라 수정하십시오.
taevaluation.py는 조교 교육 조교가 작성한 MRR, MAP 및 ACC@1의 평가를 제공 할 수있는 평가 스크립트입니다. 입력 및 출력 형식을 수정했습니다.
훈련에 대해
훈련 된 모델을 사용하지 않거나 훈련 된 모델이 없으면 프로그램은 Training.data 및 Develop.Data의 데이터를 사용하여 모델을 훈련시킵니다. 기본 매개 변수를 사용하는 경우 교육은 최대 8G 메모리 + 2G 비디오 메모리를 소비합니다. 컴퓨터에 오류 보고서를 방지하기에 충분한 하드웨어 리소스가 있는지 확인하십시오. 완전한 훈련 과정은 GTX 850M+i5 4210H 조건에 따라 약 12 시간이 걸렸습니다.
또한, 동일한 매개 변수를 사용하더라도 매개 변수를 조정했을 때, 각 훈련의 결과는 여전히 MRR 메트릭을 사용하여 최대 0.03으로 변동 할 수 있으며 그 이유는 명확하지 않습니다. 개인 하드웨어 및 시간 제한으로 인해 매우 대략적인 매개 변수 조정 만 수행되었으며 대부분의 매개 변수에는 여전히 추가 최적화를위한 여지가 있습니다. 관심이 있으시면 최적화를 시도 할 수도 있습니다.