【Python人工智能】自然语言处理--中文分词与词频统计
词袋模型是一种自然语言处理中的文本表示方法,它将文本视为单词的集合,而不考虑单词的顺序或语法结构。每个文档被表示为一个特征向量,向量的每个元素对应于一个词的出现频率。这种模型简单易用,适合于分类和聚类等任务。为了简化代码,方便词频统计,我们舍弃传统的创建字典来统计词频的方法。直接学习和使用词袋模型。
一、引言
随着科技发展与技术进步,人工智能风靡全球,耳熟能详的有chatgpt、豆包等人工智能产品。什么是人工智能?人工智能就是人工制造的并且能够模仿人类学习与思考的机器或者模型。这些产品的产生都离不开机器学习。
通过机器学习,这些产品能够进行文本处理,如:翻译、语音识别等,图像处理,如:面容识别、美颜等,推荐系统,如:推荐你喜欢的短视频、推荐附近你喜欢的小吃等。
今天我们尝试利用Python来实现对自然语言的处理,重点是掌握中文分词与词频统计。旨在能够在海量的评论或者信息当中,筛选出高频的短语来有利于判断某个商品或者产品的好坏。
二、处理csv文件
利用网络爬虫,我们在网络上获取到了收取评论的csv文件,首先我们需要对csv文件进行处理。
1.导入csv模块
由于csv模块是Python内置模块,我们使用直接导入即可,无需第三方下载。
2.reader方法打开文件
我们利用open方法导入csv文件后,可以利用csv模块下的reader方法打开文件。
3.源代码展示
# 导入csv模块
import csv
# open方法以只读r的方式导入并赋值给file(本地运行会遇到编码问题,因此加上encoding="utf-8")
file = open(r""E:\Chestnut\test\comment.csv","r",encoding="utf-8")
# 利用csv模块下的reader方法打开文件
reader = csv.reader(file)
三、jieba分词
导入jieba模块前,需在本地cmd运行pip install jieba。jieba分词会将目标文本分词后以列表的形式进行返回。
方法与使用
jieba.lcut(text)
.lcut() -- 方法
text -- 处理的目标文本
以下示例展示jieba分词的方法与效果。
import jieba
text = "我爱栗子编程"
ret = jieba.lcut(text)
print(ret)
四、词袋模型与词频统计
1.什么是词袋模型?
词袋模型是一种自然语言处理中的文本表示方法,它将文本视为单词的集合,而不考虑单词的顺序或语法结构。每个文档被表示为一个特征向量,向量的每个元素对应于一个词的出现频率。这种模型简单易用,适合于分类和聚类等任务。
为了简化代码,方便词频统计,我们舍弃传统的创建字典来统计词频的方法。直接学习和使用词袋模型。
2.scikit-learn的安装
首先我们需要在本地安装scikit-learn
pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple/
我这里是已经安装好了的截图
我们可以运行pip list查看安装成功与否和安装的版本
3.创建词袋模型进行词频统计
1.在使用词袋模型之前我们需要导入CountVectorizer模块。
from sklearn.feature_extraction.text import CountVectorizer
2.同时我们还需要创建CountVectorizer的对象。
vect = CountVectorizer()
3.调用fit_transform()函数构造词袋模型,完成稀疏矩阵。
Tips:传入fit_transform()函数中的数据格式必须是一个字符串列表。
X = vect.fit_transform(word)
4.使用get_feature_names()提取关键词。
keywords = vect.get_feature_names()
五、源码与效果展示
提取评论中前20个高频词语
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)