Python數據挖掘-詞頻統計-實現
阿新 • • 發佈:2018-10-02
pytho row str dict err 金庸 nump 由於 dir
詞頻:某個詞在該文檔中出現的內容
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"): forname 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數據挖掘-詞頻統計-實現