CSDN博文摘要(一) —— 一个简单的初版实现

系列文章


团队博客: CSDN AI小组


1. 背景

2. 博文摘要

2.1 博文结构化

博文中包含了太多的元素,直接作为文本进行摘要会严重影响摘要的质量。故首先需要对博文进行结构化,结构化之后会将正文中的内容有效区分,例如:head(标题)、code(代码)、table(表格)、text(段落)、img(图片)、link(链接)等,可更便捷、准确获取每个部分的内容,为后续博文摘要中的预处理逻辑和规则逻辑提供更便捷清晰的结构化信息,并且为模型提供更优质的输入。下图是博文结构化的一个例子:
在这里插入图片描述

2.2 规则部分

  • 规则1 :判断正文中是否有 “前言”、“写在前面的话” 等一些对文章进行简介的模块,如果有的话,直接提取前言中的内容,并裁减到指定长度(默认长度:256)
    在这里插入图片描述
  • 规则2 :判断第一级标题前是否有内容,如果有的话,直接提取该部分内容,并裁减到指定长度(默认长度:256)
    在这里插入图片描述

2.3 模型部分

如果规则无法抽取出摘要,则使用TextRank模型对博文进行摘要抽取。模型的输入为除了head(标题)、code(代码)、table(表格)、text(段落)、img(图片)、link(链接)等之外的正文文本信息。具体的实现过程如下所示:

  • a) 对于不满足规则的样本,直接抽取除图片、代码、标题、目录等信息外的所有正文文本;
  • b) 将正文文本进行分句,输入到TextRank模型中,进行文本摘要;
  • c) TextRank模型会根据句子的重要性,对每个句子进行打分(所有句子得分的总和为1);
  • d) 将所有句子按得分从高到低进行排序,并依次进行拼接,直到长度接近指定长度,但是不超过指定长度为止。(默认长度:256)

2.4 得分设定

  • 得分区间为: [0, 1]
  • 规则得分默认为:0.5
  • 模型得分:所有拼接句子的得分值的和

3. 下一步计划

当前版本是一个初步版本,还需要进一步优化。下一步计划包括:

  • 构建测试集,进行定量的效果评价。评价指标:BLEU、ROUGE;
  • 句子拼接的优化:将所有句子按得分从高到低进行排序,并依 句子在原文的顺序 进行拼接,直到长度接近指定长度;
  • TextRank算法在构建句子关系图时,考虑词的权重。例如:基于同一个标签中的所有博文,使用类似于TF-IDF的算法计算每个词的权重。

P.S.

该系列文章会持续进行更新。希望NLP等领域的同仁、老师和专家能够提供宝贵的建议,谢谢!

猜你喜欢

转载自blog.csdn.net/u010280923/article/details/119889277
今日推荐