每天给你送来NLP技术干货!

炼丹笔记干货 
作者:炼丹小生
来自:炼丹笔记

说到文章摘要大家并不陌生,就是给长文本在不丢失任何重要信息的情况下做个精确的总结。具体有哪些方法呢?可以看以下总结。
文章摘要
  • 基于抽取的文章摘要(Extraction-based)
    1 词频 (Leverage word frequencies)
    2 Textrank (Leverage embeddings similarity with TextRank)
    3 embedding聚类 (Leverage embeddings and clustering)
  • 基于概要的文章摘要(Abstraction-based)
    1 seq2seq模型 (Seq-to-seq models and supervised learning)
基于抽取的文章摘要: 从长文本中提取代表最重要要点的单词或句子的子集,并结合起来形成摘要,结果在语法上可能不准确。
基于概要的文章摘要: 使用深度学习技术(主要在seq-to-seq模型中)像人类一样解释和缩短原始文档。由于抽象机器学习算法可以生成代表源文本中最重要信息的新短语和句子,因此它们可以帮助克服基于抽取技术的语法错误。
虽然抽象在文本摘要方面表现得更好,但开发其算法需要复杂的深度学习技术和复杂的语言建模。因此,抽取式文本摘要方法仍然广泛流行。
Leverage word frequencies
  1. 清除文档中的停用词、数字、标点符号和其他特殊字符。
  2. 把文档拆分成句子。
  3. 计算每个单词在文档中出现的次数,并将其除以文档中出现频率最高的单词的出现次数,以获得单词频率。
  4. 将出现在同一句子中的所有单词的词频相加,并获得每个句子的分数。
  5. 句子的分数高于某个阈值,并将其用作文章摘要。
Extraction-based summarization with TextRank
  1. 把文档分成几个句子。
  2. 算出每个句子的句向量。
  3. 构建一个图,其中节点是句子,边权重是句子嵌入的相似性(如余弦相似性)。
  4. 在图上运行PageRank算法,以获得每个句子的PageRank分数。PageRank分数高表示节点对网络很重要。
  5. 保留分数高于某个阈值的句子,将其用作文档摘要
Extraction-based summarization with sentence embeddings and clustering
  1. 解析文档中的共同引用。
  2. 把文档拆分成句子。
  3. 获得每个句子的句向量(例如使用BERT)。
  4. 对句子嵌入使用K-Means,得到K个簇。K是总结中的句子数。
  5. 找到最接近每个聚类中心的句子,并使用它们来撰写摘要。
Abstraction-based summarization with seq-to-seq models
  1. 获取一个包含文档和摘要的数据集。
  2. 为文本摘要选择合适的metric,例如ROUGE。
  3. 训练一个seq-to-seq模型(如transformer),以监督方式从文本中生成摘要。
参考文献
  • TextRank:https://cran.r-project.org/web/packages/textrank/vignettes/textrank.html
  • pagerank:https://en.wikipedia.org/wiki/PageRank

  • 基于bert的摘要抽取:https://github.com/dmmiller612/bert-extractive-summarizer
  • kmeans:https://en.wikipedia.org/wiki/K-means_clustering
  • rouge:https://en.wikipedia.org/wiki/ROUGE_(metric)

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等
记得备注呦
整理不易,还望给个在看!
继续阅读
阅读原文