您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python如何統(tǒng)計文本詞匯出現(xiàn)次數(shù),具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
問題描述
有時在遇到一個文本需要統(tǒng)計文本內詞匯的次數(shù) 的時候 ,可以用一個簡單的python程序來實現(xiàn)。
解決方案
首先需要的是一個文本文件(.txt)格式(文本內詞匯以空格分隔),因為需要的是一個程序,所以要考慮如何將文件打開而不是采用復制粘貼的方式。這時就要用到open()的方式來打開文檔,然后通過read()讀取其中內容,再將詞匯作為key,出現(xiàn)次數(shù)作為values存入字典。
圖 1 txt文件內容
再通過open和read函數(shù)來讀取文件:
open_file=open("text.txt") file_txt=open_file.read()
然后再創(chuàng)建一個空字典,將所有出現(xiàn)的每個詞匯作為key保存到字典中,對文本從開始到結束,循環(huán)處理每個詞匯,并將詞匯設置為一個字典的key,將其value設置為1,如果已經(jīng)存在該詞匯的key,說明該詞匯已經(jīng)使用過,就將value累積加1。
代碼示例:
def wordcount(readtxt): readlist = readtxt.split() dict1={} for every_world in readlist: if every_world in dict1: dict1[every_world] += 1 else: dict1[every_world] = 1 return dict1 print(wordcount(file_txt))
這里加了def函數(shù)把該程序封裝成一個函數(shù)。
最后輸出得到詞匯出現(xiàn)的字典:
圖 2 形成字典
ps:下面看下python統(tǒng)計文本中每個單詞出現(xiàn)的次數(shù)
1.python統(tǒng)計文本中每個單詞出現(xiàn)的次數(shù):
#coding=utf-8 __author__ = 'zcg' import collections import os with open('abc.txt') as file1:#打開文本文件 str1=file1.read().split(' ')#將文章按照空格劃分開 print "原文本:\n %s"% str1 print "\n各單詞出現(xiàn)的次數(shù):\n %s" % collections.Counter(str1) print collections.Counter(str1)['a']#以字典的形式存儲,每個字符對應的鍵值就是在文本中出現(xiàn)的次數(shù)
2.python編寫生成序列化:
__author__ = 'zcg' #endcoding utf-8 import string,random field=string.letters+string.digits def getRandom(): return "".join(random.sample(field,4)) def concatenate(group): return "-".join([getRandom() for i in range(group)]) def generate(n): return [concatenate(4) for i in range(n)] if __name__ =='__main__': print generate(10)
3.遍歷excel表格中的所有數(shù)據(jù):
__author__ = 'Administrator' import xlrd workbook = xlrd.open_workbook('config.xlsx') print "There are {} sheets in the workbook".format(workbook.nsheets) for booksheet in workbook.sheets(): for col in xrange(booksheet.ncols): for row in xrange(booksheet.nrows): value=booksheet.cell(row,col).value print value
其中xlrd需要百度下載導入這個模塊到python中
4.將表格中的數(shù)據(jù)整理成lua類型的一個格式
#coding=utf-8 __author__ = 'zcg' #2017 9/26 import xlrd fileOutput = open('Configs.lua','w') writeData="--@author:zcg\n\n\n" workbook = xlrd.open_workbook('config.xlsx') print "There are {} sheets in the workbook".format(workbook.nsheets) for booksheet in workbook.sheets(): writeData = writeData+'AT' +booksheet.name+' ={\n' for col in xrange(booksheet.ncols): for row in xrange(booksheet.nrows): value = booksheet.cell(row,col).value if row ==0: writeData = writeData+'\t'+'["'+value+'"]'+'='+'{' else: writeData=writeData+'"'+str(booksheet.cell(row,col).value)+'", ' else: writeData=writeData+'},\n' else: writeData=writeData+'}\n\n' else : fileOutput.write(writeData) fileOutput.close()
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python如何統(tǒng)計文本詞匯出現(xiàn)次數(shù)”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。