import os
import jieba
import jieba.posseg as pseg
import sys
import string
from sklearn import feature_extraction
from sklearn.feature_extraction.text import tfidftransformer
from sklearn.feature_extraction.text import countvectorizer
reload(sys)
sys.setdefaultencoding('utf8')
#獲取檔案列表(該目錄下放著100份文件)
def getfilelist(argv) :
path = argv[1]
filelist =
files = os.listdir(path)
for f in files :
if(f[0] == '.') :
pass
else :
return filelist,path
#對文件進行分詞處理
def fenci(argv,path) :
#儲存分詞結果的目錄
sfilepath = './segfile'
if not os.path.exists(sfilepath) :
os.mkdir(sfilepath)
#讀取文件
filename = argv
f = open(path+filename,'r+')
file_list = f.read()
f.close()
#對文件進行分詞處理,採用預設模式
seg_list = jieba.cut(file_list,cut_all=true)
#對空格,換行符進行處理
result =
for seg in seg_list :
seg = ''.join(seg.split())
if (seg != '' and seg != "\n" and seg != "\n\n") :
#將分詞後的結果用空格隔開,儲存至本地。比如"我來到北京清華大學",分詞結果寫入為:"我 來到 北京 清華大學"
f = open(sfilepath+"/"+filename+"-seg.txt","w+")
f.write(' '.join(result))
f.close()
#讀取100份已分詞好的文件,進行tf-idf計算
def tfidf(filelist) :
path = './segfile/'
corpus = #訪問100份文件的分詞結果
for ff in filelist :
fname = path + ff
f = open(fname,'r+')
content = f.read()
f.close()
vectorizer = countvectorizer()
transformer = tfidftransformer()
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))
word = vectorizer.get_feature_names() #所有文字的關鍵字
weight = tfidf.toarray() #對應的tfidf矩陣
sfilepath = './tfidffile'
if not os.path.exists(sfilepath) :
os.mkdir(sfilepath)
# 這裡將每份文件詞語的tf-idf寫入tfidffile資料夾中儲存
for i in range(len(weight)) :
print u"--------writing all the tf-idf in the",i,u" file into ",sfilepath+'/'+string.zfill(i,5)+'.txt',"--------"
f = open(sfilepath+'/'+string.zfill(i,5)+'.txt','w+')
for j in range(len(word)) :
f.write(word[j]+" "+str(weight[i][j])+"\n")
f.close()
if __name__ == "__main__" :
(allfile,path) = getfilelist(sys.argv)
for ff in allfile :
print "using jieba on "+ff
fenci(ff,path)
tfidf(allfile)
python結巴分詞
中文分詞是中文文字處理的乙個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點 基於trie樹結構實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用了動態規劃查詢最大概率路徑,找出基於詞頻的最大切分組合 對於未登入詞,採用了基於漢字成詞能力的hmm模型,使用了...
結巴分詞jieba
全模式text 我來到北京清華大學 seg list jieba.cut text,cut all true print u 全模式 join seg list 精確模式 seg list jieba.cut text,cut all false print u 精確模式 join seg list...
python中文分詞 結巴分詞
中文分詞是中文文字處理的乙個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點 基於trie樹結構實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用了動態規劃查詢最大概率路徑,找出基於詞頻的最大切分組合 對於未登入詞,採用了基於漢字成詞能力的hmm模型,使用了...