Python数据挖掘-词频统计-实现
Posted 我不要被你记住
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据挖掘-词频统计-实现相关的知识,希望对你有一定的参考价值。
词频:某个词在该文档中出现的内容
1、语料库搭建
import jieba jieba.load_userdict("D:\Python\Python数据挖掘\Python数据挖掘实战课程课件\2.2\金庸武功招式.txt") import os import os.path import codecs filePaths=[] fileContents=[] for root,dirs,files in os.walk("D:\Python\Python数据挖掘\Python数据挖掘实战课程课件\2.2\SogouC.mini\Sample"): for name in files: filePath=os.path.join(root,name) filePaths.append(filePath) f=codecs.open(filePath,"r","utf-8") fileContent=f.read() f.close() fileContents.append(fileContent) import pandas corpos=pandas.DataFrame({ "filePath":filePaths, "fileContent":fileContents}) #分词来源哪个文章 import jieba segments=[] filePaths=[] for index,row in corpos.iterrows(): filePath=row["filePath"] fileContent=row["fileContent"] segs=jieba.cut(fileContent) for seg in segs: segments.append(seg) filePaths.append(filePath) segmentDataFrame=pandas.DataFrame({ "segment":segments, "filepath":filePaths})
2、词频统计
import numpy
#进行词频统计
#by是要分组的列,[]是要统计的列
segStat=segmentDataFrame.groupby(
by="segment"
)["segment"].agg({
"计数":numpy.size
}).reset_index().sort(columns=["计数"], #重新设置索引,再根据计数进行逆序排序
ascending=False)
by=[“列名”]后面跟着的是要分组的列,根据方括号里面的列的内容来进行统计;
第二个[]是要统计的列,在分组的列的基础上进行统计的列,可以是它自己本身
3、移除停用词,由于统计的词语很多是我们不需要的,所以需要移除
stopwords=pandas.read_csv(
"D:\Python\Python数据挖掘\Python数据挖掘实战课程课件\2.3\StopwordsCN.txt", #改文件中包含停用词
encoding="utf-8",
index_col=False)
fSegStat=segStat[
~segStat.segment.isin(stopwords.stopword)]
所用方法为isin(),然后在取反~
第二种分词方法:
import jieba segments=[] filePaths=[] for index,row in corpos.iterrows(): filePath=row["filePath"] fileContent=row["fileContent"] segs=jieba.cut(fileContent) for seg in segs: if seg not in stopwords.stopword.values and len(seg.strip())>0: segments.append(seg) filePaths.append(filePath) segmentDataFrame=pandas.DataFrame({ "segment":segments, "filePath":filePaths}) segStat=segmentDataFrame.groupby( by="segment" )["segment"].agg({ "计数":numpy.size }).reset_index().sort( columns=["计数"], ascending=False)
第二种分词方法,是在jieba分词后,通过if判断,筛选除了不在stopwords里面的分词,然后在再输出为数据框,再统计计数
以上是关于Python数据挖掘-词频统计-实现的主要内容,如果未能解决你的问题,请参考以下文章