python实现英文新闻摘要自动提取_Python实现英文新闻摘要自动提取

本课程介绍如何使用Python实现英文新闻摘要自动提取,包括"关键字"法和TextRank算法。通过实验,我们将理解自然语言处理在摘要提取中的应用,并实际操作Python环境进行相关算法的实现。
摘要由CSDN通过智能技术生成

项目简介:新闻摘要提取就是除去新闻中冗余的部分,只保留关键的语句。最近几年关于新闻摘要提取的相关算法发展迅速,本课程将通过两个实验来为大家介绍两个图区摘要的算法,并通过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 运行程序

更多经典的编程练手项目: 全部课程

微信关注公众号 [实验楼] ,手机查看海量项目教程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值