1. 程式人生 > >python jieba分詞並統計詞頻後輸出結果到Excel和txt文件

python jieba分詞並統計詞頻後輸出結果到Excel和txt文件

前兩天,班上同學寫論文,需要將很多篇論文題目按照中文的習慣分詞並統計每個詞出現的頻率。

讓我幫她實現這個功能,我在網上查了之後發現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兩個檔案。下圖是最後結果