社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
需要了解的几个概念:
**中文分词:**将一个汉字序列切分成一个一个的词。
**停用词:**数据处理时,需要过滤掉某些字或词,泛滥的词,比如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)
真武
七截阵
和
天罡
北斗
阵
哪个
更
厉害
呢
?
虽然jieba包已经有默认词库,但是有时候遇到一些专业的场景会出现一些不太理想的效果(如上所示代码),这种情况就需要我们导入一些专有词。
jieba.add_word('真武七截阵')
jieba.add_word('天罡北斗阵')
seg_list = jieba.cut(
"真武七截阵和天罡北斗阵哪个更厉害呢?"
)
for w in seg_list:
print(w)
真武七截阵
和
天罡北斗阵
哪个
更
厉害
呢
?
当词的数量很多时,可以用jieba.load_userdict()方法,将包含所有专用词的txt文件一次性导入用户自定义词库中:
#一次性导入所有专有词
jieba.load_userdict(
r"C:Userswww12Desktopdata2.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中
#将分词结果及对应文件路径添加到数据框中
segmentDataFrame = pandas.DataFrame({
'segment': segments,
'filePath': filePaths
})
分词完成,如图:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!