[TOC]
本项目任务为训练模型实现文本摘要生成,通过由商品标题、参数、详情组成的宣传文案中,生成商品简介。
- files: 该目录用于存放数据,受限于数据大小,可与我联系获取数据。
- data: 该目录用于存放数据集生成工具函数,包括:
- data_utils.py: 用于读取数据的工具函数
- dataset.py:用于生成符合pytorch格式的数据集
- model:该目录用于工程用到的工具函数,包括:
- config.py:设置各项参数
- model.py: 设置Seq2Seq+Attention网络结构
- pgn.py:设置Point Generation Network网络结构
- predict.py:实现摘要生成
- utils.py:工具函数
- main.py:工程主程序
在config.py中,设置pointer=True
可选择模型为PGN,否则模型为Seq2Seq。
PGN与普通Seq2Seq的区别在于:
(1)拓展了词汇表,使得OOV词汇也可被生成。
(2)coverage机制抑制了attention,减少词汇的重复产生。
在config.py中,设置beam_width
为大于1的值则采用波束方式生成摘要;设置beam_width=1
则束宽为1,也即采用贪心方式生成摘要。
模型名称 | 词汇表大小 | 生成方式 | Rouge-1 | Rouge-2 | Rouge-L |
---|---|---|---|---|---|
Seq2Seq | 30k 50k |
greedy beam greedy beam |
14.3 15.4 14.5 16.8 |
0.5 2.0 0.4 1.7 |
10.4 14.1 10.0 14.1 |
PGN | 30k 50k |
greedy beam greedy beam |
17.3 20.3 20.1 22.7 |
0.4 1.9 1.1 2.5 |
11.2 13.3 12.9 15.7 |