В этой ветви используются новые API -интерфейсы tf.contrib.seq2seq в Tensorflow R1.1. Для пользователей R1.0, пожалуйста, проверьте филиал TF1.0
Это реализация модели последовательности к последовательности с использованием двунаправленного энкодера GRU и декодера GRU. Этот проект направлен на то, чтобы помочь людям сразу же начать работать над абстрактным коротким текстовым суммированием . И, надеюсь, это также может работать над задачами по трансляции машин.
Пожалуйста, проверьте Harvardnlp/Send-Summary.
Скачать
Если вы хотите тренировать модель и иметь графические процессоры NVIDIA (например, GTX 1080, GTX Titan и т. Д.), Пожалуйста, установите среду CUDA и установите TensorFlow-GPU.
> pip3 install -U tensorflow-gpu==1.1
Вы можете проверить, работает ли графический процессор
> python3
>>> import tensorflow
>>>
И убедитесь, что нет выходов ошибок.
Если у вас нет графического процессора, вы все равно можете использовать предварительные модели и генерировать резюме с помощью вашего процессора.
> 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 может воспроизводить эксперименты, показанные ниже.
Таким образом, он сначала будет обучать партии 200 тысяч. Затем сделайте генерацию на [giga, duc2003, duc2004] с Beam_size в [1, 10] соответственно каждые 20 тыс. Партии. Он прекратится на 300 тыс. Партии. Кроме того, модель будет сохранена каждые 20 КБ партии.

> python3 script/test.py автоматически использует наиболее обновленную модель для создания.

Для выполнения индивидуального теста, пожалуйста, поместите входные данные как
data/test.your_test_name.txt
Изменить script/test.py Line 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 для генерации вычислительного графика. В нашем реализации есть только один вычислительный график. Тем не менее, мы все еще разделяем набор данных на несколько ведер и используем данные из того же ведра, чтобы создать партию. Таким образом, мы можем добавить меньше прокладки, что приведет к лучшей эффективности.
Механизм внимания следует за Бахданау и др. ал.
Мы следуем реализации в tf.contrib.seq2seq. Мы уточняем функцию Softmax в внимании, чтобы на прокладки всегда получалось 0.
Для простоты и гибкости мы реализуем алгоритм поиска пучка в Python, пока оставляем сеть части в Tensorflow. В тестировании мы рассматриваем Batch_size как beam_size. График TensorFlow будет генерировать только 1 слово, затем какой -то код Python создаст новую партию в соответствии с результатом. Итеративно делая это, результат поиска луча генерируется.
Проверьте step_beam(...) в bigru_model.py для получения подробной информации.
Мы тренируем модель для партий 300 тысяч с размером партии 80. Мы обрезаем все резюме до 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 |