百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

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

toyiye 2024-06-21 12:43 10 浏览 0 评论

项目简介:新闻摘要提取就是除去新闻中冗余的部分,只保留关键的语句。最近几年关于新闻摘要提取的相关算法发展迅速,本课程将通过两个实验来为大家介绍两个图区摘要的算法,并通过python语言完成英文新闻摘要的自动提取。

本项目完整教程及在线练习地址:https://www.shiyanlou.com/courses/741

我们现在浏览新闻,一般都会看标题 ( title ) 和新闻简介 ( summary ) 来判断我们是否对这则新闻感兴趣。之前的新闻简介都是由编辑手动提取的,现在自然语言处理 (Natural Language Processing, NLP) 技术发展日益成熟,我们发现计算机提取的摘要也可圈可点。

实验一、“关键字”法完成新闻摘要提取

实验二、TextRank算法完成摘要提取

一、“关键字”法提取摘要实验简介

1.1 实验内容

主要完成一个相对简单的“关键字提取”算法,关注的是实现的过程,让同学们对自然语言处理有个大致的了解。

1.2 实验知识点

  • Python基础知识

  • “关键字提取”算法

1.3 实验环境

  • Xfce终端

  • python3

1.4 实验效果

原文标题: 'Middle age Health Crisis' Warning

原文:http://www.bbc.com/news/health-38402655

这是我们的算法提取的摘要。

"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_tokenizefrom nltk.corpus import stopwordsfrom collections import defaultdictfrom string import punctuationfrom 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 运行程序

本项目的详细步骤及全部源码可在实验楼查看(shiyanlou.com/courses/741)。

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

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码