結巴分詞較好,可借鑑

2021-08-20 13:00:46 字數 2470 閱讀 3129

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模型,使用了...