提取文本关键词?很 easy 啊,用 Python 三行搞定

news2024/10/4 23:29:41

从大量文本中提取有用的关键信息是数据分析的一个重要环节。

Python 作为一门广泛应用于数据分析领域的编程语言,有着强大的文本处理库。

整理了几个用于文本关键词提取的优秀工具,一起学习下。

1、jieba库

jieba 是一个中文分词库,可以将一段文本分割为单独的单词。可以使用 jieba 库来提取中文文本的关键词。

1.安装

使用pip安装:

pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

这里使用清华大学的源地址     

2. 示例代码

import jieba.analyse
text = "Python 是一个非常优秀的语言,它可以用于 Web 开发,人工智能,数据分析等领域。"
# 抽取5个关键词
keywords = jieba.analyse.extract_tags(text, topK=15)
print(keywords)

输出:

2、textrank库

 TextRank算法可以用来从文本中提取关键词和摘要(重要的句子)。TextRank4ZH是针对中文文本的TextRank算法的python算法实现。

2.1 安装

使用pip安装:

pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install textrank4zh -i https://pypi.tuna.tsinghua.edu.cn/simple

2.2 示例代码

from textrank4zh import TextRank4Keyword
text = "Python 是一个非常优秀的语言,它可以用于 Web 开发,人工智能,数据分析等领域。"
tr4w = TextRank4Keyword()
tr4w.analyze(text=text, lower=True, window=2)
# 抽取5个关键词
keywords = tr4w.get_keywords(15, word_min_len=1)

print(keywords)

输出:

[{'word': '用于', 'weight': 0.16490795878329761}, 
{'word': '数据分析', 'weight': 0.16490795878329761},
 {'word': 'web', 'weight': 0.15652499422860283}, 
 {'word': '人工智能', 'weight': 0.15652499422860283},
 {'word': '开发', 'weight': 0.15402639183765743}]

以上两种方法我们可以根据自己的需求进行选择使用,它们都有各自的优势和适用范围。

3、SnowNLP

SnowNLP 是一个 Python 中文文本处理库,可以提供中文分词、情感分析、文本相似度匹配等功能。

使用以下命令来安装 SnowNLP 库:

pip install snownlp -i https://pypi.tuna.tsinghua.edu.cn/simple

使用以下代码来利用 SnowNLP 库提取文本中的关键词:

from snownlp import SnowNLP

text = "Python 是一个非常优秀的语言,它可以用于 Web 开发,人工智能,数据分析等领域。"# 创建 SnowNLP 对象s = SnowNLP(text)
# 提取关键词keywords = s.keywords(5)
print(keywords)

看下结果,虽然顺序有点乱,但是结果还行

['语言', '优秀', '一个', 'Python', '开发']

4、总结

jieba 的应用场景比较广泛,适用于中文文本的分词、词性标注、关键词提取等任务,是我们中文文本处理的重要工具。

textrank 主要应用于基于图模型的文本摘要和关键词提取,对于较长的英文文本的处理效果较好。

SnowNLP 的应用场景主要是中文文本情感分析、文本分类等任务,它能够识别出文本的情感色彩,并进行积极、消极等分类,对于中文文本的快速处理有不错的效果。

本文介绍了四个 Python 文本关键词提取库,分别是 jieba、textrank、SnowNLP。通过这些库的使用,我们可以从大量文本中提取出有用的关键信息,为后续的数据分析和挖掘提供重要的支持。当然,本文仅是简单介绍,Python 的文本处理远不止于此。未来,我们还可以学习更多高级的文本处理技巧,如情感分析、主题建模等,以进一步挖掘文本数据中的信息。Python 作为一个灵活、强大的工具,将继续在文本处理领域发挥着重要的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/421684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC学习1

一、SpringMVC的概述 SpringMVC是由Spring官方提供的基于MVC设计理念的Web框架MVC是模型、视图、控制器的简写,是软件的一种设计规范MVC将业务逻辑、数据,显示分离的方式来组织代码MVC降低了视图和业务逻辑之间的双向耦合MVC是一种架构模式模型&#xff…

SpringBoot整合接口管理工具Swagger

Swagger Swagger简介 Springboot整合swagger Swagger 常用注解 一、Swagger简介 ​ Swagger 是一系列 RESTful API 的工具,通过 Swagger 可以获得项目的⼀种交互式文档,客户端 SDK 的自动生成等功能。 ​ Swagger 的目标是为 REST APIs 定义一个标…

初识CSRF

概述跨站请求伪造(Cross-site request forgery)通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。CSRF并不是攻击网站服务器,而是冒充用户在站内的正常操作在CSRF的攻击场景中攻…

会话技术.

Cookie 在服务器中写一个Cookie键值对,然后把它扔进响应值中,于是在浏览器访问当前web项目时会得到响应值,并且把这个响应值中的Cookie数据存在浏览器中,下次,在服务器中就可以先获得刚才的Cookie数据,然后…

第六章_Redis管道

是什么 解决思路(引出管道这个概念) 管道(pipeline)可以一次性发送多条命令给服务端,服务端依次处理完完毕后,通过一条响应一次性将结果返回,通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的…

【从零开始学Skynet】工具篇(二):虚拟机文件的复制粘贴

大家在Linux系统下开发的时候肯定会遇到虚拟机与主机间无法复制粘贴的问题,现在我们就来解决这样的问题,方便我们的开发。 1、打开设置 我们可以系统界面的菜单栏点击“控制”,然后打开“设置”; 也可以在VirtualBox界面打开“设…

建议企业采购团队学习的采购策略

随着全球市场的不断发展和竞争的日益激烈,企业采购团队必须制定出更加科学、合理的采购策略来适应市场的各种变化。合理的采购策略不仅可以保证企业的采购成本最优化,还可以提高采购效率和质量。因此,建议企业采购团队学会以下几种采购策略&a…

一文搞懂Plant Simulation中的Rotation设置

在处理3D动画或者展示时,常常需要在Plant Simulation调整数模的姿态,静态设置或动态设置Rotation是一个很重要的手段。 编辑3D属性,在Transformation选项卡中,我们可以看到Rotation的设置参数,如上图所示,只有一个角度和3个轴参数。如果对计算机图形学不了解的同学,估计…

【外设零基础通用教程】GPIO 下

【外设零基础通用教程】GPIO 下使用方法GPIO 值输入读取值输出设置值GPIO输入输出应用GPIO输入应用GPIO输出应用文档使用理论补充输出方式推挽输出开漏输出上篇连接:【外设零基础通用教程】GPIO 上,主要是在做视频的时候,发现上篇理论很多&am…

[composer-unused]扫描代码找出没有使用的依赖

composer-unused是一个使用PHP开发的命令行工具,就像composer一样,只不过它的作用是扫描出代码中,加载了依赖但没有实际使用的库。 使用分析 像我之前做过的一个项目,扫描结果如下图: 其中可以发现在composer.json中…

【网络】网络层协议——IP

目录网络层IP协议IP基础知识IP地址IP报头格式网段划分CIDR特殊的IP地址IP地址的数量限制私有IP地址和公有IP地址路由IP总结网络层 在复杂的网络环境中确定一个合法的路径。 IP协议 IP协议作为整个TCP/IP中至关重要的协议,主要负责将数据包发送给最终的目标计算机…

对USB协议的通俗理解

目录简介背景特点版本USB数据流模型总线拓扑结构USB通信流端点管道电气标准USB接口类型USB Type-AUSB Type-BUSB Type-CPIN脚定义4PIN9PIN5PIN24PIN16PIN6PINUSB数据传输相关概念通讯方式通讯方向同步方式帧和微帧USB数据格式域包令牌包数据包握手包特殊包事务IN事务OUT事务SET…

BM37-二叉搜索树的最近公共祖先

题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x,满足x是p和q的祖先且x的深度尽可能大。在这里,一个节点也可以是它自己…

CSC国家公派项目网上申报今天启动/附应提交材料及说明

今天(4月10日)是2023年国家公派高级研究学者、访问学者、博士后项目开始申报的日期,知识人网小编提醒申请者关注,同时附上该项目的应提交材料及说明。 根据国家留学基金委(CSC)通知精神,2023年国…

typora和C51开发环境

经过查阅,可以用wiz和typora联动的方式记录笔记,这样一个文件夹里既可以用typora也可以用内置编辑器(一种富文本编辑器),注意同一个文件不能用不同的编辑器,否则会错乱。以下,我列举了用typora的…

extern 关键字

参考https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定…

k8s调度器扩展(Scheduler Framework)、源码编译及部署

因为研究的需要,需要对K8S的调度器进行扩展,本文主要讲解了k8s调度器扩展的一个流程,其中包含源码修改、源码编译、调度器配置以及部署和本人所踩的一些坑,使用的k8s的版本为1.23.1 1.下载源码,在此选择v1.23.1版本&a…

大数据之Spark部署模式

文章目录前言一、Spark的部署模式(一)Client模式1. Standalone集群下的Client模式2. Spark On Yarn集群下的Client模式(二)Cluster模式1. Standalone集群下的Cluster模式2. Spark On Yarn集群下的Cluster模式总结前言 #博学谷IT学…

c++头文件、namespace 的理解、#include、 编译模式

namespace C 命名空间 | 菜鸟教程 C命名空间(名字空间)详解 作用:多写在头文件中,用于多个头文件的变量函数出现重命名。 namespace中可以定义变量,函数,类等等,也可以写声明,来…

牛客网 HJ28 素数伴侣【二分图匹配,匈牙利算法】困难

描述 若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的 N ( N 为偶数)个正整数中挑选出若干对组成“素数伴侣”&am…