何为摘要?
对于文本的关键信息抽取, 从而决定是否要深入阅读, 以节约阅读时间. 如新闻标题, 论文的简介, 书本的序言, 章节等. 长一点的文章, 会给一个类似目录结构指引. 对于严谨的技术性文章书本, 结构性写作手法, 段落章节结构清晰, 甚至每段的第一句亦可作为摘要快速浏览.
一般论文除了有摘要, 也会提供关键词, 便于检索, 亦可视作内容分类标签.
遗憾的是, 很多论文摘要”林志玲”, 正文”罗玉凤”, 摘要有宣传夸大嫌疑, 容易被坑到. 新闻也有类似问题, 一切以点击率为KPI导向, 导致制造各种吸睛震惊体标题. 网络内容农场, 以及算法生成内容, 不断注水洗稿, 导致获取有效信息难度增加.
现实业务场景: 爬取短文本分析 (广告语, 用户评论, 弹幕等), 会议总结, 群消息总结, 文章去水, 等
文本摘要实现路线
- 抽取式: 从文本中提取关键词词或者关键句
- 生成式/总结式: 生成更为通顺人性化的句子
看场景区分, 是要抽取文中提及关键词, 还是要生成通顺的总结语句. 是否限定使用文章词, 还是可以使用非文章词做总结. 以及对内容的抽象程度.
例:
- 原文: 你好, 我是秦始皇, 不小心穿越了, …, 请打钱到XXX账户, …
- 抽取式: 我,秦始皇,打钱
- 总结式: 诈骗电话
具体算法
- 抽取式:
- Lead-3: 截取文章前3句的规则, 太TMD的粗暴了
- TextRank, 本文介绍
- 视作序列标注任务处理, 不展开
- 生成式:
- 视作seq2seq任务处理, 生成式语言模型, 不展开
词云场景
词云场景: 相关文本的热词, 如商品描述, 评论分析, 新闻报道
衍生出来, 需对于词性分类, 如正负向情感, 提及地点, 具体表述主体 (如物流评价, 商家沟通, 商品质量维度, 等等), 以及我们场景 (成分词, 营销词, 产品描述词, 优惠词, 等等)
词云相关需求处理方式
- 文本切词
- (*) 词性过滤
- 关注名词尤其专属名词, 形容词, 动词
- 忽略介词, 连词语境下才有意义词性
- 停用词过滤, 人工添加, 或通过文本高频词统计得到
- 词频统计排序截断输出
何为”关键词”? 有意义的高频词, 无有效信息的词=停用词
但是词在具体上下文里面才有意义, 会导致错误的信息视角, 如, “来玩这款游戏, 和氪金说拜拜”, 如果统计出来高频词”氪金”, 就和实际表意扭曲.
TextRank抽取关键词
PageRank回顾
有向图结构, 每个节点有得票, 并分给相邻节点, 评分越高的节点, 投出的的权重越大
With great power comes great responsibility
- 实际计算时为迭代结算不断趋向收敛过程
- 在矩阵表述形式下, 为最大特征值(定为1)的特征向量计算问题
- 可以是有向图也可以是无向图, 边亦可以有权重
- 需添加一定条件以保障收敛
- 应用: 网页链接跳转图, Google搜索引擎网站重要性排名
TextRank: Bringing Order into Texts
文本如何视作图结构?
- 节点: 词
- 边: 词的相邻关系
- 边权重: 词间隔距离
TextRank具体计算过程
- tokenization, 切词, 为了避免节点爆炸只用unigram
- syntactic filter, 词性过滤
- 对于词距离在N以内的构建边关系
- PageRank计算评分并排序
- 后处理, 合并连词
直观理解:
- 越重要的词越容易出现在不同的语境下被反复提及
- 和越重要的词共生, 或者说和越多的重要词共生, 越容易”鸡犬升天”
- 相比于单纯的词频统计, 更利用了”词共生”的结构关系
显然不适用于如广告语等基本没有重复词的短文本, 更适合长文本处理.
DEMO TIME
以上是对于关键词提取任务的讨论, 同样适用于关键句提取. 两个句子的度量, 可以用编辑距离或者其他文本相似度度量等来构建边关系, 毕竟重要的句子总是车轱辘话反复换着花样重申.
文本摘要评价指标 / ROUGE
同翻译等文本生成任务 (文本扩写, 翻译, 知识问答, …) 一样, 很难有客观评价
一段文本可以多个不同的标注结果, 并且可以对不同词有权重 (得分点), 因此评价结果对于标注参考答案敏感
评价输出和标注的词重合度
ROUGE / Recall Oriented Understudy for Gisting Evaluation
- understudy: 替补
- gist: 摘要 / the substance or essence of a speech or text
- rouge: 胭脂, 口红
- 注意区别于 rogue: 流氓,盗贼,(潜行者);不受拘束的
- roguelike / 肉鸽游戏
类似IOU, 但是区分RECALL分母是标注长度, PRECISION分母是输出长度
- ROUGE-1 / ROUGE-N: 看n-gram的重合度
- ROUGE-1等价于看摘要关键词命中率, N>1主要是为了保障输出句子通顺
- ROUGE-L: Longest Common Subsequence, 最长子序列做分子, 从而最大限度的倾向输出顺序合理.
- 标注”我爱你”, 输出”我爱你”,”你爱我”, ROUGE-1相同, ROUGE-L前者得分为1, 后者为0, 更为合理
- ROUGE-W: 对于子串(即连续子序列)赋予更高权重
- 标注ABCD, 输出 AXBXCXD, ABCDXXXX, ROUGE-L相同, 但后者ROUGE-W更高, 更为合理
- ROUGE-S: S for skip-gram, 同n-gram, 但是忽略插入间隔
- n-gram理解为子序列, skip-gram理解为子串即可
- ROUGE-SU: U for unigram, 即额外算上单词
指标只能作为参考, 实际质量还是得人工主观感受