이 분기는 Tensorflow R1.1에서 새로운 tf.contrib.seq2seq API를 사용합니다. R1.0 사용자의 경우 Branch TF1.0을 확인하십시오
이것은 양방향 GRU 인코더 및 GRU 디코더를 사용하여 시퀀스-시퀀스 모델의 구현입니다. 이 프로젝트는 사람들이 즉시 추상적 인 짧은 텍스트 요약 작업을 시작하도록 도와줍니다. 그리고 기계 번역 작업에서도 작동 할 수도 있기를 바랍니다.
Harvardnlp/Send-Summary를 확인하십시오.
다운로드
모델을 훈련시키고 NVIDIA GPU (GTX 1080, GTX Titan 등)가 있으시면 Cuda 환경을 설정하고 Tensorflow-GPU를 설치하십시오.
> pip3 install -U tensorflow-gpu==1.1
GPU가 작동하는지 확인할 수 있습니다
> python3
>>> import tensorflow
>>>
오류 출력이 없는지 확인하십시오.
GPU가없는 경우에도 사전 치료 된 모델을 사용하고 CPU를 사용하여 요약을 생성 할 수 있습니다.
> pip3 install -U tensorflow==1.1
파일은 이와 같이 구성되어야합니다.

Harvardnlp/Send-Summary 에서이 파일을 찾아서
duc2003/input.txt -> test.duc2003.txt
duc2004/input.txt -> test.duc2004.txt
Giga/input.txt -> test.giga.txt
> python3 script/train.py 아래에 표시된 실험을 재현 할 수 있습니다.
그렇게함으로써 200k 배치를 먼저 훈련시킵니다. 그런 다음 [giga, duc2003, duc2004] 에서 각각 20k 배치마다 [1, 10] 에서 빔_size를 각각 세대로 만듭니다. 300k 배치에서 종료됩니다. 또한 모델은 20k 배치마다 저장됩니다.

> python3 script/test.py 가장 업데이트 된 모델을 자동으로 사용하여 생성을 자동으로 사용합니다.

맞춤형 테스트를하려면 입력 데이터를 다음과 같이 넣으십시오
data/test.your_test_name.txt
script/test.py 라인 13-14를 변경하십시오
datasets = ["giga", "duc2003", "duc2004"]
geneos = [True, False, False]
에게
datasets = ["your_test_name"]
geneos = [True]
고급 사용자의 경우 python3 src/summarization.py -h 도움말을 인쇄 할 수 있습니다. 자세한 내용은 코드를 확인하십시오.
Tensorflow r0.11에서 버킷을 사용하는 것이 좋습니다. R1.0은 까다로운 버킷 메커니즘보다 이해하기 쉬운 동적 RNN SEQ2SEQ 프레임 워크를 제공합니다.
동적 RNN을 사용하여 컴퓨팅 그래프를 생성합니다. 구현에는 컴퓨팅 그래프가 하나뿐입니다. 그러나 여전히 데이터 세트를 여러 버킷으로 분할하고 동일한 버킷의 데이터를 사용하여 배치를 만듭니다. 그렇게함으로써 패딩을 적게 추가하여 효율성이 향상 될 수 있습니다.
주의 메커니즘은 Bahdanau et. 알.
우리는 tf.contrib.seq2seq의 구현을 따릅니다. 패딩이 항상 0을 얻도록 SoftMax 기능을주의로 개선합니다.
단순성과 유연성을 위해, 우리는 Python에서 빔 검색 알고리즘을 구현하면서 네트워크 부품을 텐서 플로우에 둡니다. 테스트에서는 batch_size를 beam_size로 간주합니다. Tensorflow 그래프는 1 단어 만 생성 한 다음 일부 Python 코드는 결과에 따라 새 배치를 만듭니다. 반복적으로 그렇게함으로써 빔 검색 결과가 생성됩니다.
자세한 내용은 bigru_model.py 에서 step_beam(...) 확인하십시오.
우리는 배치 크기 80으로 300k 배치에 대한 모델을 훈련시킵니다. 우리는 모든 요약을 75 바이트로 클립합니다. DUC 데이터 세트의 경우 EOS를 제거하고 12 단어를 생성합니다. Giga 데이터 세트의 경우 모델이 EOS를 생성하도록했습니다.

| 데이터 세트 | 빔 크기 | R1-R | R1-P | R1-F | R2-R | R2-P | R2-F | RL-R | RL-P | RL-F |
|---|---|---|---|---|---|---|---|---|---|---|
| DUC2003 | 1 | 0.25758 | 0.23003 | 0.24235 | 0.07511 | 0.06611 | 0.07009 | 0.22608 | 0.20174 | 0.21262 |
| DUC2003 | 10 | 0.27312 | 0.23864 | 0.25416 | 0.08977 | 0.07732 | 0.08286 | 0.24129 | 0.21074 | 0.22449 |
| DUC2004 | 1 | 0.27584 | 0.25971 | 0.26673 | 0.08328 | 0.07832 | 0.08046 | 0.24253 | 0.22853 | 0.23461 |
| DUC2004 | 10 | 0.28024 | 0.25987 | 0.26889 | 0.09377 | 0.08631 | 0.08959 | 0.24849 | 0.23048 | 0.23844 |
| 기가 | 1 | 0.3185 | 0.38779 | 0.3391 | 0.14542 | 0.17537 | 0.15393 | 0.29925 | 0.363 | 0.3181 |
| 기가 | 10 | 0.30179 | 0.41224 | 0.33635 | 0.14378 | 0.1951 | 0.15936 | 0.28447 | 0.38733 | 0.31664 |