python数据挖掘实战笔记——文本挖掘(2):中文分词
发布时间
阅读量:
阅读量
需要了解的几个概念:
**中文分词 :**将一个汉字序列切分成一个一个的词。
**停用词 :**数据处理时,需要过滤掉某些字或词,泛滥的词,比如web\网站等,语气助词、介词、副词、连接词等,如 的、地、得 。
需要用到的模块:jieba
jieba最主要的方法就是cut()方法,举个例子:
import jieba
for w in jieba.cut("我爱Python"):
print(w)
我
爱
Python
seg_list = jieba.cut(
"真武七截阵和天罡北斗阵哪个更厉害呢?"
)
for w in seg_list:
print(w)
真武
七截阵
和
天罡
北斗
阵
哪个
更
厉害
呢
?
AI写代码

虽然jieba包已经有默认词库,但是有时候遇到一些专业的场景会出现一些不太理想的效果(如上所示代码),这种情况就需要我们导入一些专有词。
jieba.add_word('真武七截阵')
jieba.add_word('天罡北斗阵')
seg_list = jieba.cut(
"真武七截阵和天罡北斗阵哪个更厉害呢?"
)
for w in seg_list:
print(w)
真武七截阵
和
天罡北斗阵
哪个
更
厉害
呢
?
AI写代码

当词的数量很多时,可以用jieba.load_userdict()方法,将包含所有专用词的txt文件一次性导入用户自定义词库中:
#一次性导入所有专有词
jieba.load_userdict(
r"C:\Users\www12\Desktop\data\2.2\金庸武功招式.txt"
)
介绍完了jieba分词的用法,紧接着上篇的代码,对语料库进行分词处理,为了便于进行后续的分析,需要做出分词的结果以及对应的文件的出处。
import jieba
segments = []
filePaths = []
#遍历语料库的每一行数据,得到的row为一个个Series,index为key
for index, row in corpos.iterrows():
filePath = row['filePath']#获取每一个row中filePath对应的文件路径
fileContent = row['fileContent']#获取row中fileContent对应的每一个文本内容
segs = jieba.cut(fileContent)#对文本进行分词
for seg in segs:
segments.append(seg)#分词结果保存到变量segments中
filePaths.append(filePath)#对应的文件路径保存到变量filepaths中
AI写代码

#将分词结果及对应文件路径添加到数据框中
segmentDataFrame = pandas.DataFrame({
'segment': segments,
'filePath': filePaths
})
分词完成,如图:

全部评论 (0)
还没有任何评论哟~
