python统计单词词频_Python 统计英文词频 (txt格式)

importredeffre(TargetName,desName):'''打开 TargetName 文本,统计总单词数、独特的单词数、单词词频,并写入 desName 文件中'''dict= {} #存放单词

number = 0 #统计累计文本总单词数

uniqueNum = 0 #统计不重复的单词的个数

#打开文本

with open(TargetName,'r',encoding='utf-8') as f:for line in f: #逐行读取

#使用正则表达式替换除了 字母和空白符 以外的所有其他符号

line = re.sub(r'[^\w\s-]+', ' ', line)

word= line.split() #将句子分割成单词列表

for w in word: #遍历单词列表

number += 1 #每遍历一个单词,总单词数就+1

w = w.lower() #单词转换成全小写的形式

if w not in dict: #如果单词不在dict里面,就把单词放进去,设置这个单词的词频为1,并且 duniqueNum+1

dict[w] = 1uniqueNum+= 1

else: #如果单词已经存在,就将词频数+1

dict[w] = dict[w]+1

#格式化打印

print(f'{"Total words": <20} {number}')print(f'{"Unique words": <20} {uniqueNum}')#将词频写入文件

with open(desName, 'w', encoding='utf8') as f:#先写入总词数、不重复单词数的信息

f.write(f'{"Total words": <20} {number}\n')

f.write(f'{"Unique words": <20} {uniqueNum}\n')

f.write('-----------------------------\n')for i in sorted(dict.items(), key=lambda x: x[1], reverse=True): #将字典降序排序,并遍历

f.write(f'{i[0]: <20} {i[1]}\n')print(f'{i[0]: <20} {i[1]}')if __name__=="__main__":#要分析的文件的路径

name = r'C:\blood.txt'

#生成的词频的路径

desName = 'C:\dict.txt'fre(name,desName)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值