概述
项目简介:新闻摘要提取就是除去新闻中冗余的部分,只保留关键的语句。最近几年关于新闻摘要提取的相关算法发展迅速,本课程将通过两个实验来为大家介绍两个图区摘要的算法,并通过python语言完成英文新闻摘要的自动提取。
我们现在浏览新闻,一般都会看标题 ( title ) 和新闻简介 ( summary ) 来判断我们是否对这则新闻感兴趣。之前的新闻简介都是由编辑手动提取的,现在自然语言处理 (Natural Language Processing, NLP) 技术发展日益成熟,我们发现计算机提取的摘要也可圈可点。
实验一、“关键字”法完成新闻摘要提取
实验二、TextRank算法完成摘要提取
一、“关键字”法提取摘要实验简介
1.1 实验内容
主要完成一个相对简单的“关键字提取”算法,关注的是实现的过程,让同学们对自然语言处理有个大致的了解。
1.2 实验知识点
Python基础知识
“关键字提取”算法
1.3 实验环境
Xfce终端
python3
1.4 实验效果
原文标题: 'Middle age Health Crisis' Warning
这是我们的算法提取的摘要。
"Modern life is dramatically different to even 30 years ago," Prof Gray told Radio 4's Today programme, "people now drive to work and sit at work."
"The How Are You Quiz will help anyone who wants to take a few minutes to take stock and find out quickly where they can take a little action to make a big difference to their health."
我们的算法为我们选出了最具代表性的两句句子。
二、实验过程
2.1 准备工作
我们这次实验都是在python3中进行。首先我们需要安装NLTK (Natural Language ToolKit) . 我们打开终端,在命令行中输入
sudo pip3 install nltk
然后进入python3的交互界面,在命令行中输入
python3
应该就有python的提示符出现。
请注意一定是要在python3环境下。
NLTK 是建设一个Python程序与人类语言数据工作平台。它提供了易于使用的接口,超过50的语料库和词汇资源,如WordNet,连同一套文本处理库的分类、标记、标注、句法分析、语义推理的NLP库,和一个活跃的论坛。
要注意的是我们这次使用的一些词汇资源并不在原生的 NLTK 库中,需要我们另行下载。
在python 交互环境中,我们输入如下的代码来下载我们本次实现需要的资源。
>>> import nltk
>>> nltk.download('stopwords')
>>> nltk.download('punkt')
如果download函数长时间不响应的话,按ctrl+z退出python3交互环境,重新下载。
之后我们在桌面上新建一个文件夹NewsSummary
mkdir NewsSummary
在NewsSummary中用vim创建NewsSummary1.py文件
先导入我们需要的包
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords
from collections import defaultdict
from string import punctuation
from heapq import nlargest
nltk.tokenize 是NLTK提供的分词工具包。所谓的分词 (tokenize) 实际就是把段落分成句子,把句子分成一个个单词的过程。我们导入的 sent_tokenize() 函数对应的是分段为句。 word_tokenize()函数对应的是分句为词。
stopwords 是一个列表,包含了英文中那些频繁出现的词,如am, is, are。
defaultdict 是一个带有默认值的字典容器。
puctuation 是一个列表,包含了英文中的标点和符号。
nlargest() 函数可以很快地求出一个容器中最大的n个数字。
至此我们完成了我们的准备工作。
2.2 思路解析
我们的基本思想很简单:拥有关键词最多的句子就是最重要的句子。我们把句子按照关键词数量的多少排序,取前n句,即可汇总成我们的摘要。
所以我们的工作可以分为如下步骤:
给在文章中出现的单词按照算法计算出重要性
按照句子中单词的重要性算出句子的总分
按照句子的总分给文章中的每个句子排序
取出前n个句子作为摘要
我们就按照这这个思路写我们的模块。
2.3 实验步骤
主要实现步骤:
2.3.1 词频统计
2.3.2 获得摘要
2.3.3 运行程序
更多经典的编程练手项目: 全部课程
微信关注公众号 [实验楼] ,手机查看海量项目教程。
最后
以上就是俭朴衬衫为你收集整理的python实现英文新闻摘要自动提取_Python实现英文新闻摘要自动提取的全部内容,希望文章能够帮你解决python实现英文新闻摘要自动提取_Python实现英文新闻摘要自动提取所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复