Python人工智能应用---中文分词词频统计

目录

1.中文分词

2.循环分别处理列表

(1)分析

(2)代码解决

3.词袋模型的构建

(1)分析需求

(2)处理分析

1.先实现字符串的连接

2.字符串放到新的列表里面

4.提取高频词语

(1)STEP1. 导入模块

(2)STEP2. 创建CountVectorizer对象

(3)STEP3. 使用fit_transform()函数构造词袋模型

(4)STEP4. 使用get_feature_names()提取关键词


1.中文分词

jieba模块是处理中文分词还不错的一种方法,我们需要在自己的终端进行导入;

jieba模块里面含有许多的函数,我们使用lcut()函数,这个函数的参数就是我们要处理的文本内容,把字符串传进去以后,函数会返回列表;

分词上面的英文是jieba模块创建分词模型的过程,

模型创建成功之后,就会以列表的形式返回

2.循环分别处理列表

(1)分析

我们前面已经把评价的内容以列表的形式放到了data这个变量里面,我们进行中文分词的时候,需要取出每个评论进行分词统计,而评论是data里面的小列表的第一个元素,我们可以使用for循环,对里面的每个列表的第一个元素---评论进行分词处理;

(2)代码解决

 这个地方文件打开的时候会遇到各种问题,我们可以查阅资料解决,例如编码的方式,范围,忽略,转义字符等等;

open里面的文件路径一定是自己的电脑的文件路径,不可以直接进行复制;

# 导入csv模块
import csv

# 使用open()函数打开数据集
file = open("C:\\Users\\32585\\Desktop\\yequ\\TVComments.csv","r",encoding='gb18030',errors="ignore")
# 使用csv.reader()函数读取数据集
reader = csv.reader(file)

# 创建一个空列表data
data = []

# 使用for循环遍历reader,将遍历的数据存储到变量info中
for info in reader:
    # 使用append()函数,将info逐一添加到data列表中
    data.append(info)
    
# TODO 导入jieba模块
import jieba

# TODO 使用for循环遍历data列表
for row in data:

    # TODO 获取具体的评价内容,并赋值给变量text
    text=row[0]
    
    # TODO 使用jieba.lcut()将text进行分词,并把结果赋值给ret
    ret=jieba.lcut(text)
    
    # 输出ret进行查看
    print(ret)

因为文件容量比较大,所以生成的分词比较多,如图所示:

3.词袋模型的构建

(1)分析需求

经过jieba,lcut函数的处理之后,就生成了一系列的字符串列表:有多少条评论,就会生成多少条评论,但是我们后续的词袋模型只能传进去一个字符串,所以我们要把生成的诸多字符串转换成一个字符串;

(2)处理分析

我们的解决方案就是把每个列表里面的字符串使用空格进行合并,添加到一个新的列表里面;

下面是具体的实现:

1.先实现字符串的连接

把小的列表里面的内容使用空格合并成为一个字符串,我们这里可以使用join()函数:

按照上面的示例,在这个题上面,具体的代码就只需要在原来的基础上面进行修改就可以了:


2.字符串放到新的列表里面

4.提取高频词语

机器学习模块sklearn可以帮助我们处理这个问题,这个模块里面含有许多的函数,可以直接进行评论的提取以及高频词的统计;sklearn不是内置的模块,需要我们在本地进行安装

(1)STEP1. 导入模块

我们需使用
from...import...,从 sklearn.feature_extraction.text 模块中导入 CountVectorizer 类。


(2)STEP2. 创建CountVectorizer对象

导入模块后,需要创建一个CountVectorizer对象,这样才能调用CountVectorizer类里面的某个方法或属性。

由于我们只想从评价中筛选出前15个出现频率最高的词语,所以传入了max_features=15。

# 从sklearn.feature_extraction.text中导入CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# 创建CountVectorizer对象,并存储在vect中
vect = CountVectorizer(max_features=15)


(3)STEP3. 使用fit_transform()函数构造词袋模型

X = vect.fit_transform(word)

这个里面的word就是我们前面新建的列表

这个里面的生成结果全部是数字,我们来解释一下:

(4)STEP4. 使用get_feature_names()提取关键词

# TODO 对vect对象使用get_feature_names(),并将结果赋值给keywords
keywords = vect.get_feature_names()

# 输出keywords
print(keywords)

最后的返回结果就是高频词:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vivado 向 SVF 目标添加器件

向 SVF 目标添加器件 创建 SVF 目标后 , 可向其中添加器件以定义 SVF JTAG 器件链配置。 SVF JTAG 器件链配置应与目标硬件链相匹配 , 以 确保能正确执行 SVF 文件。 使用 Vivado IDE 单击“ ”按钮以向 SVF 链添加赛灵思器件或非赛灵思器件。…

程序·人生

诡异之极 2024.03.12 清新环境(股票代码002573)委托卖出 20000股,委托价4.58,当日最高价4.57 2024.03.11 清新环境(股票代码002573)委托卖出 20000股,委托价4.55,当日最高价4.54 …

【Python系列】读取 Excel 第一列数据并赋值到指定列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

windwos安全加固

一、账号管理 按用户类型分配账号 目的:根据系统要求,设定不同账户和组,管理员、数据库 sa、审计用户、来宾用户等 实施方法: 打开本地用户和计算机管理器 ​ 1.打开运行,输入lusrmgr.msc 2.根据用户要求将账户加入…

鸡尾酒排序解读

在数据处理的海洋中,排序算法无疑是引领我们探索数据规律的灯塔。今天,我们要探讨的是一种有趣且独特的排序算法——鸡尾酒排序。鸡尾酒排序,也被称为定向冒泡排序、双冒泡排序或搅拌排序,是冒泡排序的一种变体,它通过…

[计算机效率] 磁盘空间分析工具:FolderSize

3.15 磁盘空间分析工具:FolderSize FolderSize是一款磁盘管理工具,提供预约交互式磁盘空间分析体验,可以可视化观察磁盘空间使用情况。程序可以帮助用户快速查看并统计硬盘中的各个分区所占用的空间大小以及文件夹和文件的大小,并…

CCleaner如何还原系统 CCleaner怎么恢复注册表 ccleaner官方下载

CCleaner是一款电脑清理软件,其中的注册表清理功能是该软件很重要的功能。注册表作为电脑的重要文件,不可以随便清理,而CCleaner可以帮我们安全,快速地清除注册表。同时,CCleaner还有还原系统的功能。下面将为大家介绍…

Windows与Linux路径分隔符对比及Java代码实战

在Windows中,磁盘中用反斜杠(又称为右斜杠)\表示路径的分隔。在浏览器中用正斜杠/来表示路径的分隔。 Linux则是统一用/表示路径的分隔的。下面给出Linux中一些常见的路径表示: / 表示根目录./ 表示当前目录…/ 表示上级目录 …

如果夸克网盘开了会员下载还是很慢怎么办

最近发现一个windows系统下很奇怪的bug,通过夸克网盘客户端下载别人分享的夸克网盘内容的时候,莫名其妙的会在10M/s和0M/s之间来回徘徊,速度慢到不能忍。 在尝试了几种方法之后,发现一种神奇的方法居然可以解决这个奇怪的bug...所…

C++:初步接触C++(2)

hello,各位小伙伴,本篇文章跟大家一起学习C,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 内联函数1.概念2.特性 auto关键字1.auto简介2.auto的使用细则3.auto不能推导的场景 基于范围…

「每日跟读」英语常用句型公式 第3篇

「每日跟读」英语常用句型公式 第3篇 1. I don’t know how to ____ 我不知道如何_____ I don’t know how to play soccer (我不知道怎么踢足球) I don’t know how to study(我不知道如何学习) I don’t know how to play chess (我不知道如何下国…

备战蓝桥杯---刷二分与前缀和题

刷点题~ 1.二分多路归并算法 对于每一个技能,我们把它看成一个等差数列,我们把所有可能都放到一个集合里,排个序,取前m个大即可,现在考虑优化,假如m不是很大,我们直接用优先队列即可&#xff0…

普通Java工程可执行JAR两种打包方式探讨

文章目录 一、需求概述二、代码结构三、运行结果四、打包设置1. 一体化可执行包2. 带外部依赖lib的可执行包 五、打包运行1. 源码放送2. 打包执行3. 打包结果 一、需求概述 普通Java工程 docker-show 实现了定时打印docker应用信息,现在需要将其打包成可执行Jar部署…

设计模式总结-装饰者模式

模式动机 一般有两种方式可以实现给一个类或对象增加行为: 继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增…

使用msf进行有防火墙限制的3389端口转发

使用msf进行有防火墙限制的3389端口转发 这里主要是针对在内网中遇到需要开启3389的时候,发现存在防火墙,就没有办法直接远程连接,这个时候就可以使用端口转发使用msf,使用前记得先初始化,连接好数据库这里先使用msf进…

如何部署上线项目

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 多环境多环境分类前端多环境实战请求地址启动方式项目配置 后端多环境实战 项目部署原始部署前端…

深入理解计算机系统 家庭作业 2.84

这题没有这个要求所以可以用 ? > : < 这种运算 以下代码用的是位级运算.因为我误解了题意 呜呜呜 想看用判断的代码请自行百度 ((((ux<<9>>9)<<((ux<<1>>24)-127)) - ((uy<<9>>9)<<((uy<<1>>24)-127)))>…

当代软件专业大学生与青年在新质生产力背景下的发展探究

在新质生产力的浪潮中,信息技术以前所未有的速度革新,为软件专业的大学生和青年带来了丰富的机遇,同时也伴随着一系列的挑战。他们如何把握时代的脉搏,实现个人的发展,成为了值得深入探讨的话题。 一、新质生产力背景下的机遇 随着新质生产力的不断发展,信息技术在各个领…

一篇文章带你掌握二叉树(附带二叉树基本操作完整代码演示,和两种思路)

【本长内容】 1. 掌握树的基本概念 2. 掌握二叉树概念及特性 3. 掌握二叉树的基本操作 4. 完成二叉树相关的面试题练习 1. 树形结构 1.1 概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是…

考研数据结构——中缀转后缀(用栈实现)

算法目的&#xff1a;给计算机一个中缀表达式&#xff0c;输出一个后缀表达式。 考点&#xff1a;考察进行到某一步时&#xff0c;栈内的情况是怎么样的&#xff0c;选择题。 学习目标&#xff1a;能用笔算的方式模拟整个过程&#xff0c;不需要会写代码。 过程&#xff1a;…