統計文章詞頻(python實現)

2021-08-03 04:51:00 字數 1464 閱讀 2037

統計出文章重複詞語是進行文字分析的重要一步,從詞頻能夠概要的分析文章內容。

2.建立用於詞頻計算的空字典  

3.對文字的每一行計算詞頻 

4.從字典中獲取資料對到列表中

5.對列表中的資料交換位置,並排序

6.輸出結果

2.網上下來的英文文章可能有一些不是utf-8編碼,並且文章中有一些字元包含一些格式符可能或導致解碼錯誤(unicodedecodeerror: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence)

**實現如下:

from string import punctuation

#對文字的每一行計算詞頻的函式

def processline(line,wordcounts):

#用空格替換標點符號

line=replacepunctuations(line)

words = line.split()

for word in words:

if word in wordcounts:

wordcounts[word]+=1

else:

wordcounts[word]=1

def replacepunctuations(line):

for ch in line :

#這裡直接用了string的標點符號庫。將標點符號替換成空格

if ch in punctuation:

line=line.replace(ch," ")

return line

def main():

infile=open("englishi.txt",'r')

count=10

words=

data=

# 建立用於計算詞頻的空字典

wordcounts={}

for line in infile:

processline(line.lower(), wordcounts)#這裡line.lower()的作用是將大寫替換成小寫,方便統計詞頻

#從字典中獲取資料對

pairs = list(wordcounts.items())

#列表中的資料對交換位置,資料對排序

items = [[x,y]for (y,x)in pairs]

items.sort()

#因為sort()函式是從小到大排列,所以range是從最後一項開始取

for i in range(len(items) - 1, len(items) - count - 1, -1):

print(items[i][1] + "\t" + str(items[i][0]))

infile.close()

if __name__ == '__main__':

main()

python xx 文章詞頻統計

import jieba txt open r g txt 全面深化金融供給側結構性改革.txt r encoding utf 8 read words jieba.lcut txt 精準切詞 count for word in words iflen word 1 continue else co...

用python統計英文文章詞頻

import re with open text.txt as f 讀取檔案中的字串 txt f.read 去除字串中的標點 數字等 txt re.sub d s txt 替換換行符,大小寫轉換,拆分成單詞列表 word list txt.replace n replace lower split ...

統計文章內詞頻率

import collections target str the tragedy of romeo and juliet with open 羅密歐與朱麗葉 英文版 莎士比亞.txt encoding utf 8 as file txts file.read 用 split 將單詞利用空格切分開 ...