创新实训(5)——有关博客文章的数据清洗

观察从RSS抽取到的博客文章的数据

团队的另一个成员会通过RSS订阅链接,通过RSS的解析库解析RSS内容,抓取到博客文章的信息,而我只需要根据他抓取到的博客内容,进行数据清洗之后,存入数据库之中。我们先来观察以下博客的数据。
创新实训(5)——有关博客文章的数据清洗
创新实训(5)——有关博客文章的数据清洗
观察博客内容,我们会发现从RSS中可以抽取到的时,文章的发布时间,文章的标题,文章的内容(使用html描述,因为自建博客基本都是markdown写的,然后在发布时转化成html的形式显示),文章的作者,文章的标签(如果有的话),文章的源链接,文章的摘要(发现他只是截取前多少字形成的摘要信息)
问题:
(1)摘要信息只是截取的一部分,可能无法真正的表达清楚文章的实际含义。
(2)文章的内容与html标签混合在一起,为了进行前端的展示。而我们在进行推荐时,需要计算两篇文章之间的相似度,而这些无用的html标签会大大的影响计算的准确性。
(3)每个用户都会有自己定义好的博文的分类和标签,而有的人甚至没有给这篇文章定义分类和标签。
所以,对于用户已经定义好的标签,我们需要将这些标签与系统中默认的标签对应,转化为系统定义的标签。
对于没有标签的博文,需要我们使用某些方法为其自动的做好标签。
(4)在有了标签之后,我们需要对每个标签进行分类,保证每个博客都在一个类别里面,让我们可以通过类别访问博客数据。

对应的解决方案的规划

(1)有关携带html的文章内容
我们可以根据正则表达式,抽取对应html标签中我们需要的信息。经过观察发现。主要的内容都在P标签之中,文章的小标题在h标签之中,代码一般是在code标签之中。而由于抽取的博客数量较多,无法一一去核对,但是大概内容应该就是p标签与h标签中的内容,针对内容进行抽取即可。
(2)有关每篇文章的标签和分类
我们需要提前在定义好一系列的标签,然后给每一个标签对应一个分类,在进行抽取时,将文章原本的标签与我们定义好的标签做对应,然后划分到适合的分类中。

  • 对于没有标签的文章,我准备采用在文章中寻找标签字串的方法,如果一篇文章携带了某种标签,那么它有很大概率输入这个标签。(依据:如果一个文章有关某个标签内容,它的内容中会有很大概率携带这个标签)
  • 对于有标签的文章,只需要将他定义的标签与我们的标签,计算文本相似度即可,如果相似则就完成了与系统默认标签的对应。如果没有对应上,则采用上一个方法进行标签的匹配。
  • 如果是在没有标签,则标记为未知标签与未分类。

(3)文章摘要的生成
由于博客自带的摘要大部分都是截取前多少字,体验比较差,所以我们需要采用一些算法,来提取文章的摘要
目前的想法是。

  • 采用TextRank算法
    创新实训(5)——有关博客文章的数据清洗
    第一步是把所有文章整合成文本数据。
    接下来把文本分割成单个句子
    然后,我们将为每个句子找到向量表示(词向量)
    计算句子向量间的相似性并存放在矩阵中
    然后将相似矩阵转换为以句子为节点、相似性得分为边的图结构,用于句子TextRank计算。
    最后,一定数量的排名最高的句子构成最后的摘要。
  • 采用seq2seq和attention的进行文档自动摘要
    打算先使用textRank算法进行初步问文档摘要,如果后期时间充裕,并且能找到合适的数据集,可以自己训练模型,来进行文档的自动摘要

总结

以上的内容都是初步的设计,可能在实际编写代码时,遇到问题需要进行调整。