Python自动文本摘要

Python自动文本摘要

今天是2018年10月14号,小亮最近和导师商量过后,研究生期间的方向算是定下来了,在过去的半年时间里,小亮在信息抽取(Event Detection)方向做了一些探索。那么往后的两年多的时间里,小亮主要做文本自动摘要方向的研究。今天这篇博客是Python自动文本摘要,主要与大家分享一下Python自动文本摘要方向的技术,更好地让自己以及大家入门自动文本摘要方向,早日找到自己心仪的NLP工作!

笔者信息:Next_Legend QQ:1219154092 机器学习 自然语言处理 计算机视觉 深度学习

小亮的博客:https://legendtianjin.github.io/NextLegend.github.io/ ——2018.10.14于北洋


一、背景知识

        在做自动文本摘要生成前,假设大家已经有下面几个方面的基础知识:正则表达式、网页爬虫、自然语言处理。如果大家没有这方面的基础的话,也没关系,先跟随小亮继续学习,随后某个时间,小亮再单独给大家补一下基础知识的学习!

二、什么是自动文本摘要?

       自动文本摘要的生成过程其实就是总结文本文档中心意思的过程,目的是创建包含原始文档主要内容的摘要。生成摘要的主要思想是找到包含整个数据集“信息”的数据子集。这种技术在当今行业内被广泛使用。搜索引擎就是一个例子; 其他还包括文档摘要生成,图像收集和视频处理。文档摘要生成算法试图通过查找信息量最大的句子来创建整个文档的代表性摘要,而在图像摘要中,计算机则试图找到最具代表性的显著的图像。对于监控视频,人们可能希望从平静的环境影像中提取出重要事件。自动摘要有两种通用方法:抽取式摘要和生成式摘要。

三、Python自动文本摘要实战

(1)Step 1:导入相关库和包

  • Beautiful Soup(bs)是一个Python库,用于从HTML和XML文件中提取数据。你可以把它和你最喜欢的解析器一起搭配使用,它们一起提供了一种符合我们习惯的导航,搜索和修改解析树的方法。这通常可以节省程序员数小时或数天的工作量。
  • Urllib是一个集合多个URL处理模块的软件包
  • re模块提供了类似于在Perl语言里的正则表达式匹配操作功能。
  • nltk是一个帮助构建处理人类语言数据的Python程序的强大平台。它为 50多种语料库和词法资源提供了易于使用的接口(如WordNet),还提供了一套用于分类,分词,词干提取,标注,解析和语义推理的文本处理工具库。
  • heapq这个模块提供了一个堆队列算法的实现,也称为优先队列算法。
    在这里插入图片描述

(2)Step 2:下载停用词和punkt包

在这里插入图片描述

(3)Step 3:提取数据

       这里选用了维基上的Artificial Neural Network 这个页面为例子来说明。你可以根据需要选择其他任何文章。
在这里插入图片描述
Python自动文本摘要_第1张图片

(4)Step 4:清洗数据

       数据清洗指的是对数据集,数据表或数据库中的所有数据,检测并纠正(或删除)损坏的或不准确的记录的过程,也即识别数据中不完整,不正确,不准确或不相关的部分,然后替换,修改,或删除这部分脏数据。
Python自动文本摘要_第2张图片
Python自动文本摘要_第3张图片

(5)Step 5:构建直方图

       构建直方图构建一个直方图可以帮助你直观地发现文章中比较特别的单词。例如“Geoffrey Hinton is the god father of deep learning. And I love deeplearning“这一句,需要计算每个不同的单词出现在句子中的次数,例如”deep“和”learning“都出现两次,其余的单词在一个句子中只出现一次。但在现实世界中,你有成千上万条句子,要具体找出每个单词出现多少次就需要构建直方图来表现。
Python自动文本摘要_第4张图片

(6)Step 6:计算句子分数

Python自动文本摘要_第5张图片

(7)Step 7:计算句子分数提取分数最高的句子作为简短摘要

Python自动文本摘要_第6张图片

(8)Step 8:实验结果

Python自动文本摘要_第7张图片

你可能感兴趣的:(NLP,机器学习,自动文本摘要)