当前位置: 首页 > news >正文

三、机器学习基础知识:Python常用机器学习库(中文文本分析相关库)

文章目录

  • 1、Jieba库
    • 1.1 主要函数
    • 1.2 词性标注
    • 1.3 关键词提取
  • 2、WordCloud库
    • 2.1 常见参数
    • 2.2 词云绘制

文本分析是指对文本的表示及其特征的提取,它把从文本中提取出来的特征词进行量化来表示文本信息,经常被应用到文本挖掘以及信息检索的过程当中。

1、Jieba库

在自然语言处理过程中,为了能更好地处理句子,往往需要把句子拆分成一个一个的词语,这样能更好地分析句子的特性,这个过程就称为分词。由于中文句子不像英文那样天然自带分属,并且存在各种各样的词组,从而使中文分词具有一定的难度。Jieba 是一个Python 语言实现的中文分词组件,在中文分词界非常出名,支持简体、繁体中文,高级用户还可以加入自定义词典以提高分词的准确率,其应用范围较广,不仅能分词,还提供关键词提取和词性标注等功能。
Jieba库的调用需要使用自动安装命令 pip install jieba进行安装,之后使用代码import jieba 引入即可。

1.1 主要函数

函数名作用
jieba.cut(s)精确模式,返回一个可迭代的数据类型
jieba.cut(s.cut_all=True)全模式,输出文本s中的所有可能单词
jieba.cut_for_search(s)搜索引擎模式,适合搜索引擎建立索引的分词结果
jieba.lcut(s)精确模式,返回一个列表类型
jieba.lcut(s,cut_all=True)全模式,返回一个列表类型
jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型
jieba.add_word(w)向分词词典中增加新词w

精确分词实例:

import jieba
s = "我喜欢在图书馆学习"
for x in jieba.cut(s):  #jieba.cut返回一个可迭代类型print(x,end=' ')
jieba.lcut(s)

在这里插入图片描述

全模式分词实例:

import jieba
s = "我喜欢在图书馆学习"
for x in jieba.cut(s,cut_all=True): print(x,end=' ')
jieba.lcut(s,cut_all=True)

在这里插入图片描述

搜索引擎模式分词实例:

import jieba
s = "我喜欢在武汉市图书馆学习"
jieba.lcut(s)  #精确模式
jieba.lcut(s,cut_all=True)  #全模式
jieba.lcut_for_search(s)  #在搜索引擎分词模式,在精确分词的模式下对长词再次分割

在这里插入图片描述

1.2 词性标注

词性是词汇基本的语法范畴,通常也称为词类,主要用来描述一个词在上下文中的作用。例如人物、地名、事物等是名词,表示动作的词是动词等。词性标注的过程就是确定一个句子中出现的每个词分别属于名词、动词还是形容词等,它是语法分析、信息抽取等应用领域重要的信息处理基础性工作。
不同的语言有不同的词性标注集,为了方便指明词的词性,需要给每个词性编码,常用词性编码如下:

词性编码词性词性编码词性
n名词m数词
v动词o拟声词
a形容词y语气词
p介词z状态词
c连词nr人名
d副词ns地名
ul助词t时间
q量词w标点符号
r代词x未知符号

中文分词及词性的标注可以使用jieba.posseg模块,其中的cut()方法能够同时完成分词和词性标注两个功能,它返回一个数据序列,其中包含word和flag两个序列,word是分词得到的词语,flag是对各个词的词性标注。
词性标注实例:

import jieba.posseg as psg
text = "我喜欢在武汉市图书馆学习"
seg = psg.cut(text)  #词性标注
for e in seg:print(e,end = ' ')

在这里插入图片描述

1.3 关键词提取

关键词抽取就是从文本里面把与这篇文档意义最相关的一些词抽取出来。关键词在文本聚类、分类、自动摘要等领域中有着重要的作用。例如,在聚类时将关键词相似的几篇文档看成一个团簇,可以大大提高聚类算法的收敛速度;从某天所有的新闻中提取出这些新闻的关键词,就可以大致了解那天发生了什么事情;将某段时问内几个人的微博拼成一篇长文本,然后抽取关键词就可以知道他们主要在讨论什么话题。因此,关键词是最能够反应文本主题或者意思的词语。
可以利用jieba分词系统中的TF-IDF接口抽取关键词,实例如下:

from jieba import analyse# 原始文本
text = '''关键词抽取就是从文本里面把与这篇文档意义最相关的一些词抽取出来。关键词在文本聚类、分类、自动摘要等领域中有着重要的作用。例如,在聚类时将关键词相似的几篇文档看成一个团簇,可以大大提高聚类算法的收敛速度;从某天所有的新闻中提取出这些新闻的关键词,就可以大致了解那天发生了什么事情;将某段时问内几个人的微博拼成一篇长文本,然后抽取关键词就可以知道他们主要在讨论什么话题。'''# 基于TF-IDF算法进行关键词抽取
# topK表示最大抽取个数,默认为20个
# withWeight表示是否返回关键词权重值,默认值为 False
# 还有一个参数allowPOS默认为('ns','n','vn','v')即仅提取地名、名词、动名词、动词
keywords = analyse.extract_tags(text, topK = 10, withWeight = True)
print ("keywords by tfidf:")
# 输出抽取出的关键词
for keyword in keywords:print ("{:<5} weight:{:4.2f}".format(keyword[0], keyword[1]))

在这里插入图片描述

2、WordCloud库

词云(WordCloud)是对文本中出现频率较高的关键词数据给予视觉差异化的展现方式。词云图突出展示高频高质的信息,也能过滤大部分低频的文本。利用词云,可以通过可视化形式凸显数据所体现的主旨,快速显示数据中各种文本信息的频率。

2.1 常见参数

Python中的词云(WordCloud)库中存在一个WordCloud()函数,可以利用该函数进行词云对象的构造,该函数中的主要参数如下所示:

属性数据类型说明
font_pathstring字体文件所在的路径
widthint画布宽度,默认为400px
heightint画布高度,默认为400px
min_font_sizeint显示的最小字体大小,默认为4
max_font_sizeint显示的最大字体大小,默认为None
max_wordsnumber显示的词的最大个数,默认为200
relative_scalingfloat词频和字体大小的关联性,默认为5
color_funccallable生成新颜色的函数,默认为空
prefer_horizontalfloat词语水平方向排版出现的频率,默认为0.9
maskndarray默认为None,使用二维遮罩绘制词云。如果mask非空,将忽略画布的宽度和高度,遮罩形状为mask
scalefloat放大画布的比例,默认为1(1倍)
stopwords字符串停用词,需要屏蔽的词,默认为空。如果为空,则使用内置的STOPWORDS
background_color字符串背景颜色,默认为‘black’

2.2 词云绘制

例如将26个大写英文字母作为字典的键,针对每个键随机生成1-100之间的正整数作为,基于此字典生成词云:

import wordcloud
import random
import string      # 导入string库
# string.ascii_uppercase可以获取所有的大写字母
lstChar = [x for x in string.ascii_uppercase]
# 使用randint获取26个随机整数
lstfreq = [random.randint(1,100) for i in range(26)]
# 使用字典生成式,产生形式如{'A': 80, 'B': 11, 'C': 38……}的字典
freq = {x[0]:x[1] for x in zip(lstChar,lstfreq)}
print(freq)
wcloud = wordcloud.WordCloud(background_color = "white",width=1000,max_words = 50,height = 860, margin = 1).fit_words(freq)# 利用字典freq生成词云
wcloud.to_file("resultcloud.png")            # 将生成的词云图片保存
print('结束')

生成的字典如下:
在这里插入图片描述

生成的词云如下图所示:
在这里插入图片描述

相关文章:

三、机器学习基础知识:Python常用机器学习库(中文文本分析相关库)

文章目录 1、Jieba库1.1 主要函数1.2 词性标注1.3 关键词提取 2、WordCloud库2.1 常见参数2.2 词云绘制 文本分析是指对文本的表示及其特征的提取&#xff0c;它把从文本中提取出来的特征词进行量化来表示文本信息&#xff0c;经常被应用到文本挖掘以及信息检索的过程当中。 1、…...

Nginx 使用笔记大全(唯一入口)

Linux服务器因为Nginx日志access.log文件过大项目无法访问 项目处于运行状态下无法访问&#xff0c;第一步查看磁盘状态 1、查看磁盘状态 df -h 2、查找100M以上的文件 find / -size 100M |xargs ls -lh 3、删除文件 rm -rf /usr/local/nginx/logs/access.log 4、配置nginx.…...

数据结构-二叉排序树(建立、查找、修改)

二叉排序树概念 二叉排序树是动态查找表的一种&#xff0c;也是常用的表示方法。 其中&#xff0c;它具有如下性质&#xff1a; 1.若它的左子树非空&#xff0c;则其左子树的所有节点的关键值都小于根节点的关键值。 2.若它的右子树非空&#xff0c;则其右子树的所有节点的…...

Linux 性能优化之使用 Tuned 配置优化方案

写在前面 考试整理相关笔记博文内容涉及 Linux tuned 调优工具的简单认知调优配置文件的简单说明&#xff0c;自定义调优方案介绍理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff…...

Day02_《MySQL索引与性能优化》

文章目录 一、SQL执行顺序二、索引简介1、关于索引2、索引的类型Btree 索引Btree 索引 三、Explain简介四、Explain 详解1、id2、select_type3、table4、type5、possible_keys6、key7、key_len8、ref9、rows10、Extra11、小案例 五、索引优化1、单表索引优化2、两表索引优化3、…...

(只需三步)Vmvare tools安装教程,实现与windows互通复制粘贴与文件拖拽

首先确保Ubuntu是联网的&#xff0c;如果连不上网可以参考我的这个联网教程&#xff0c;也很简单 &#xff08;只需三步&#xff09;虚拟机上vm的ubuntu不能联上网怎么办-CSDN博客 第一步&#xff1a;卸载之前的tools,确保没有残留 sudo apt-get autoremove open-vm-tools 第…...

Android自定义控件:一款多特效的智能loadingView

先上效果图&#xff08;如果感兴趣请看后面讲解&#xff09;&#xff1a; 1、登录效果展示 2、关注效果展示 1、【画圆角矩形】 画图首先是onDraw方法&#xff08;我会把圆代码写上&#xff0c;一步一步剖析&#xff09;&#xff1a; 首先在view中定义个属性&#xff1a;priv…...

C语言之初阶指针

一、指针&#xff1a; 其实按照我的理解&#xff0c;当我们写c语言程序的时候&#xff0c;创建的变量&#xff0c;数组等都要在内存上开辟空间。而每一个内存都有一个唯一的编号&#xff0c;这个编号也被称为地址编号&#xff0c;就相当于&#xff0c;编号地址指针。 二、指针…...

MongoDB基础知识~

引入MongoDB&#xff1a; 在面对高并发&#xff0c;高效率存储和访问&#xff0c;高扩展性和高可用性等的需求下&#xff0c;我们之前所学习过的关系型数据库(MySql,sql server…)显得有点力不从心&#xff0c;而这些需求在我们的生活中也是随处可见的&#xff0c;例如在社交中…...

41. 缺失的第一个正数

给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;nums [3…...

数据结构—数组栈的实现

前言&#xff1a;各位小伙伴们我们前面已经学习了带头双向循环链表&#xff0c;数据结构中还有一些特殊的线性表&#xff0c;如栈和队列&#xff0c;那么我们今天就来实现数组栈。 目录&#xff1a; 一、 栈的概念 二、 栈的实现 三、 代码测试 栈的概念&#xff1a; 栈的概念…...

AI大模型低成本快速定制秘诀:RAG和向量数据库

文章目录 1. 前言2. RAG和向量数据库3. 论坛日程4. 购票方式 1. 前言 当今人工智能领域&#xff0c;最受关注的毋庸置疑是大模型。然而&#xff0c;高昂的训练成本、漫长的训练时间等都成为了制约大多数企业入局大模型的关键瓶颈。 这种背景下&#xff0c;向量数据库凭借其独特…...

Please No More Sigma(构造矩阵)

Please No More Sigma 给f(n)定义如下&#xff1a; f(n)1 n1,2; f(n)f(n-1)f(n-2) n>2; 给定n&#xff0c;求下式模1e97后的值 Input 第一行一个数字T&#xff0c;表示样例数 以下有T行&#xff0c;每行一个数&#xff0c;表示n。 保证T<100&#xff0c;n<100000…...

HTML设置标签栏的图标

添加此图标最简单的方法无需修改内容&#xff0c;只需按以下步骤操作即可&#xff1a; 1.准备一个 ico 格式的图标 2.将该图标命名为 favicon.ico 3.将图标文件置于index.html同级目录即可 为什么我的没有变化&#xff1f; 答曰&#xff1a;ShiftF5强制刷新一下网页就行了...

4.CentOS7安装MySQL5.7

CentOS7安装MySQL5.7 2023-11-13 小柴你能看到嘛 哔哩哔哩视频地址 https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source9ba3044ce322000939a31117d762b441 一.解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1.在/usr/local解压 tar -xvf mysql-5.7.44-…...

【华为OD题库-014】告警抑制-Java

题目 告警抑制&#xff0c;是指高优先级告警抑制低优先级告警的规则。高优先级告警产生后&#xff0c;低优先级告警不再产生。请根据原始告警列表和告警抑制关系&#xff0c;给出实际产生的告警列表。不会出现循环抑制的情况。告警不会传递&#xff0c;比如A->B.B->C&…...

高频SQL50题(基础题)-5

文章目录 主要内容一.SQL练习题1.602-好友申请&#xff1a;谁有最多的好友代码如下&#xff08;示例&#xff09;: 2.585-2016年的投资代码如下&#xff08;示例&#xff09;: 3.185-部门工资前三高的所有员工代码如下&#xff08;示例&#xff09;: 4.1667-修复表中的名字代码…...

Spring IoC DI 使⽤

关于 IoC 的含义&#xff0c;推荐看IoC含义介绍&#xff08;Spring的核心思想&#xff09; 喜欢 Java 的推荐点一个免费的关注&#xff0c;主页有更多 Java 内容 前言 通过上述的博客我们知道了 IoC 的含义&#xff0c;既然 Spring 是⼀个 IoC&#xff08;控制反转&#xff09…...

Zigbee智能家居方案设计

背景 目前智能家居物联网中最流行的三种通信协议&#xff0c;Zigbee、WiFi以及BLE&#xff08;蓝牙&#xff09;。这三种协议各有各的优势和劣势。本方案基于CC2530芯片来设计&#xff0c;CC2530是TI的Zigbee芯片。 网关使用了ESP8266CC2530。 硬件实物 节点板子上带有继电器…...

机器视觉目标检测 - opencv 深度学习 计算机竞赛

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…...

Spring_couplet_generation 模型推理性能优化:操作系统级调优指南

Spring_couplet_generation 模型推理性能优化&#xff1a;操作系统级调优指南 想让你的春联生成模型跑得更快、更稳吗&#xff1f;很多朋友在部署AI模型时&#xff0c;往往只关注模型本身和代码&#xff0c;却忽略了承载这一切的“地基”——操作系统。今天&#xff0c;我们就…...

突破语言壁垒:PotPlayer字幕实时翻译插件让跨语言视频观看效率提升300%

突破语言壁垒&#xff1a;PotPlayer字幕实时翻译插件让跨语言视频观看效率提升300% 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 你是…...

大学生论文降重技巧:用AI辅助,重复率轻松降到10%以下

2026年AI学术辅助工具已进入“精准合规改写、核心语义完整保留”的全新发展阶段&#xff0c;彻底解决了大学生论文降重“耗时长、改写生硬、易踩学术红线”的普遍难题。据中国高校图书馆协会2026年调研数据显示&#xff0c;超7成大学生在论文写作过程中会遇到重复率超标的问题&…...

十分钟微调Qwen2.5-7B实战:效果立现,适合新手的完整教程

十分钟微调Qwen2.5-7B实战&#xff1a;效果立现&#xff0c;适合新手的完整教程 1. 准备工作与环境介绍 1.1 为什么选择Qwen2.5-7B进行微调 Qwen2.5-7B是阿里云推出的开源大语言模型&#xff0c;7B参数规模在单卡上就能流畅运行。相比全量微调&#xff0c;使用LoRA技术可以在…...

gui 的高清与标清

现在无论对图层设计多样化 一般采用4层 或者更多&#xff1a;/*** file display_config.h* brief 显示配置头文件 - 定义图层管理和显示参数* details 采用4层图层设计&#xff0c;支持高清/标清自适应*/ ​ #ifndef DISPLAY_CONFIG_H #define DISPLAY_CONFIG_H ​ #include &l…...

基于BANG语言的Sigmoid算子开发与PyTorch集成实战指南

1. BANG语言与Sigmoid算子开发基础 第一次接触寒武纪BANG语言时&#xff0c;我被它类似CUDA但更简洁的语法设计惊艳到了。这种专为MLU硬件设计的异构编程语言&#xff0c;通过在C/C基础上扩展并行计算特性&#xff0c;让开发者能更高效地利用寒武纪芯片的算力资源。 BANG核心语…...

Java协议解析性能天花板在哪?IEEE论文级基准测试对比:Jackson vs FlatBuffers vs Kaitai Struct vs 自研Parser(附可复现压测代码仓库)

第一章&#xff1a;Java协议解析性能天花板在哪&#xff1f;IEEE论文级基准测试对比&#xff1a;Jackson vs FlatBuffers vs Kaitai Struct vs 自研Parser&#xff08;附可复现压测代码仓库&#xff09;协议解析性能瓶颈往往隐匿于内存布局、序列化语义与JVM运行时特性的交界处…...

WarcraftHelper:让魔兽争霸III重获新生的兼容性优化工具

WarcraftHelper&#xff1a;让魔兽争霸III重获新生的兼容性优化工具 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款免费开源的魔…...

隐私优先方案:OpenClaw+Qwen3-14B镜像处理敏感数据的5层防护

隐私优先方案&#xff1a;OpenClawQwen3-14B镜像处理敏感数据的5层防护 1. 为什么需要本地化隐私方案 去年处理一批客户调研数据时&#xff0c;我犯过一个致命错误——把包含联系方式的原始表格上传到某公有云AI平台进行清洗。三天后&#xff0c;公司邮箱突然收到匿名勒索邮件…...

Python AOT编译成本如何从$280K/年压至$49K/年?2026前最后窗口期的6个不可逆决策点

第一章&#xff1a;Python AOT编译成本断崖式下降的战略本质Python 长期以来被诟病于运行时开销高、启动慢、内存占用大&#xff0c;其核心瓶颈在于 CPython 解释器的字节码解释执行机制。而近年来&#xff0c;以 Nuitka、Cython&#xff08;搭配 --aot 模式&#xff09;、以及…...