python jieba分詞並統計詞頻後輸出結果到Excel和txt文件
阿新 • • 發佈:2019-02-09
前兩天,班上同學寫論文,需要將很多篇論文題目按照中文的習慣分詞並統計每個詞出現的頻率。
讓我幫她實現這個功能,我在網上查了之後發現jieba這個庫還挺不錯的。
執行環境:
具體程式碼如下:
#!/usr/bin/python # -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import jieba import jieba.analyse import xlwt #寫入Excel表的庫 if __name__=="__main__": wbk = xlwt.Workbook(encoding = 'ascii') sheet = wbk.add_sheet("wordCount")#Excel單元格名字 word_lst = [] key_list=[] for line in open('1.txt'):#1.txt是需要分詞統計的文件 item = line.strip('\n\r').split('\t') #製表格切分 # print item tags = jieba.analyse.extract_tags(item[0]) #jieba分詞 for t in tags: word_lst.append(t) word_dict= {} with open("wordCount.txt",'w') as wf2: #開啟檔案 for item in word_lst: if item not in word_dict: #統計數量 word_dict[item] = 1 else: word_dict[item] += 1 orderList=list(word_dict.values()) orderList.sort(reverse=True) # print orderList for i in range(len(orderList)): for key in word_dict: if word_dict[key]==orderList[i]: wf2.write(key+' '+str(word_dict[key])+'\n') #寫入txt文件 key_list.append(key) word_dict[key]=0 for i in range(len(key_list)): sheet.write(i, 1, label = orderList[i]) sheet.write(i, 0, label = key_list[i]) wbk.save('wordCount.xls') #儲存為 wordCount.xls檔案
1.txt是你需要分詞統計的文字內容,最後會生成wordCount.txt和wordCount.xls兩個檔案。下圖是最後結果