介绍
今天的互联网上有数以百万计的网页和网站。遍历大量内容对于提取有关某个主题的信息变得非常困难。Google会过滤搜索结果并为您提供排名前十的搜索结果,但是通常无法找到所需的正确内容。文章中有大量冗余和重叠的数据,这导致大量时间的浪费。解决此问题的更好方法是汇总大量可用的文本数据,以较短的版本显示。
本文来自《数据黑客》,登录官网可阅读更多精彩资讯和文章。
文本摘要
文本摘要是一种NLP(自然语言处理)技术,可从大量数据中提取文本,目标是创建长文本的精简版本。
文本摘要的好处:
- 减少阅读时间
- 帮助更好的研究工作
- 增加可以容纳的信息量
文本摘要有两种方法:基于NLP的技术和深度学习技术。
在本文中,我们将介绍一种基于NLP的技术,该技术使用Python NLTK库。
步骤
- 获取文本资料
- 文字预处理
- 将段落转换为句子
- 标记句子
- 查找发生的加权频率
- 用句子中的加权频率替换单词
- 按权重降序对句子排序
- 获取摘要
获取数据
如果您希望总结维基百科文章,先获取文章URL。我们将利用爬虫获取数据。先在Python中安装beautifulsoup库,该库用于在各种HTML标签内获取网页上的数据。
使用以下命令:
pip install beautifulsoup4
为了解析HTML标签,我们需要一个解析器,即lxml包:
pip install lxml
我们尝试总结Wikipedia Reinforcement Learning页面的文章,先获取数据:
import bs4 as bs
import urllib.request
import re
scraped_data = urllib.request.urlopen('https://en.wikipedia.org/wiki/Reinforcement_learning')
article = scraped_data.read()
parsed_article = bs.BeautifulSoup(article,'lxml')
paragraphs = parsed_article.find_all('p')
article_text = ""
for p in paragraphs:
article_text += p.text
在Wikipedia文章中,文本显示在段落标记中。因此,我们使用find_all函数来获取段落标记内的所有文本。
接下来我们需要对提取的文本进行数据预处理。
文本预处理
第一个任务是删除文章中的所有引用,这些参考文献均括在方括号中。下面的代码将删除方括号并将其替换为空格。
# Removing Square Brackets and Extra Spaces
article_text