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

【Python数据挖掘入门】2.2文本分析-中文分词(jieba库cut方法/自定义词典load_userdict/语料库分词)

中文分词就是将一个汉字序列切分成一个一个单独的词。例如:
在这里插入图片描述
另外还有停用词的概念,停用词是指在数据处理时,需要过滤掉的某些字或词。
在这里插入图片描述

一、jieba库

安装过程见:https://blog.csdn.net/momomuabc/article/details/128198306
jieba库的基础与实例:https://blog.csdn.net/momomuabc/article/details/128219592

jieba库基础功能

1.分词函数jieba.cut

import jiebafor i in jieba.cut("我爱python"):print(i,end=' ')#利用end参数取消换行
--输出
我 爱 python 

2.向词库添加词jieba.add_word()
如果想添加一些专业词汇进入词库,可以使用jieba.add_word()函数
例如:

import jiebaseg_list=jieba.cut("真武七截阵和天罡北斗阵哪个更厉害呢?")
for i in seg_list:print(i,end=" ")
--此时输出
真武 七截阵 和 天罡 北斗 阵 哪个 更 厉害 呢 ? 
--可以看到真武七截阵和天罡北斗阵两个专业词汇被拆分开了,那么进行词组添加
jieba.add_word("真武七截阵")
jieba.add_word("天罡北斗阵")
seg_list=jieba.cut("真武七截阵和天罡北斗阵哪个更厉害呢?")
for i in seg_list:print(i,end=" ")
--再次输出后,可以看到真武七截阵和天罡北斗阵已经被识别为单独的词
真武七截阵 和 天罡北斗阵 哪个 更 厉害 呢 ?

3.导入词库jieba.load_userdict()
当需要大量导入专业词汇时,使用jieba.add_word()一个个添加会过于麻烦,可以使用jieba.load_userdict()方法将词库一次性导入。
词库中的单词需已每行一个词的方式保存,例如:
在这里插入图片描述

jieba.load_userdict("D:\\2.2 中文分词\\2.2\\金庸武功招式.txt")

二、文章分词

1.搭建语料库

上一节已经导入了语料库:https://blog.csdn.net/momomuabc/article/details/129183499
代码如下:

import os
import os.path#读取文件路径
import codecs#转换文件读取格式
import pandasfilePaths = []#设置存储文件路径的变量
fileContents = []#存储文件内容的变量
for root, dirs, files in os.walk("D:\SogouC.mini\Sample"):#os.walk()返回文件的目录,子目录,文件名,详情见上篇for name in files:filePath = os.path.join(root, name)#将目录和子目录拼接为目前的文件路径filePaths.append(filePath)#将文件路径存入路径变量f = codecs.open(filePath, "r", "utf-8")#以utf-8的格式打开当前路径下的文件fileContent = f.read()#读取文件内容f.close()#关闭文件fileContents.append(fileContent)#将文件内容存入内容变量       
#将文件路径和内容存入DataFrame中
corpos=pandas.DataFrame({"filePath":filePaths,"fileContent":fileContents
}
)

2.语料库分词

分词后需要注明,每个分词的来源,因此需要取上面的corpos对象里的filepath,并对filecontent进行分词。

import jieba
Path=[]
segments=[]
for index,row in corpos.iterrows():#返回corpos的内容filepath=row["filePath"]#取其中的filepath字段segs=jieba.cut(row["fileContent"])#取其中的filecontent字段,并进行分词for seg in segs:#将分词后的内容遍历segments.append(seg)#存入segmentsPath.append(filepath)#同时存储filepath
segmentDataFrame=pandas.DataFrame(#将分词结果存为数据框{"filepath":Path,"segment":segments}
)

iterrow()方法可以返回所有的行索引index,以及该行的所有内容row。

http://www.lryc.cn/news/22907.html

相关文章:

  • Meta利用视觉信息来优化3D音频模型,未来将用于AR/VR
  • openlayers加载离线地图并实现深色地图
  • socket,tcp,http三者之间的区别和原理
  • 红日(vulnstack)1 内网渗透ATTCK实战
  • ik 分词器怎么调用缓存的词库
  • ROS1/2机器人操作系统与时间Time的不解之缘
  • 华为OD机试真题2022(JAVA)
  • 【3】MyBatis+Spring+SpringMVC+SSM整合一套通关
  • 20道前端高频面试题(附答案)
  • android EditText设置后缀
  • prometheus+cadvisor监控docker
  • 正演(1): 二维声波正演模拟程序(中心差分)Python实现
  • 珠海数据智能监控器+SaaS平台 轻松实现SMT生产管控
  • 习题22对前面21节的归纳总结
  • 使用Vite快速构建前端React项目
  • 人工智能高等数学--人工智能需要的数学知识_微积分_线性代数_概率论_最优化---人工智能工作笔记0024
  • 阿里大数据之路总结
  • ABAP中Literals的用法(untyped literal vs. typed literal)
  • tensorflow1.14.0安装教程
  • C++赋值运算符重载
  • 网络性能总不好?专家帮你来“看看”— CANN 6.0 黑科技 | 网络调优专家AOE,性能效率双提升
  • Qss自定义属性
  • 连接金蝶云星空,数据交互轻松搞定!丨三叠云
  • JSX是什么,React为什么使用JSX,babel怎么转译JSX的
  • 从工地转行软件测试,拿下13k+年终奖是种什么体验?
  • 前端面试题 —— 计算机网络(二)
  • 山东大学机器学习期末2022
  • FEBC2022|打造VR内容生态闭环 佳创视讯持续加码轻量化内容建设
  • Redis常见的数据类型命令
  • Python3+Selenium3自动化测试-(准备)