码迷,mamicode.com
首页 > 编程语言 > 详细

Python 统计英文词频

时间:2020-01-02 22:23:04      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:元素   重复   ber   word   __name__   排序   分割   print   读取   

# 笨方法,直接把需要替换掉的字符写到一个list中
si =[]

def fre(TargetName,desName):
    ‘‘‘打开 TargetName 文本,统计总单词数、独特的单词数、单词词频,并写入 desName 文件中‘‘‘
 
    dict = {} # 存放单词
    number = 0  # 统计累计文本总单词数
    uniqueNum = 0  # 统计不重复的单词的个数
    # 打开文本
    with open(TargetName,r,encoding=utf-8) as f:
        for line in f: # 逐行读取
            for s in si:  # 遍历 si 中的元素
                if s in line: # 如果这一行包含 列表si 中的任意一个元素,就用空格替换掉
                    line = line.replace(s, )
            word = line.split()  # 将句子分割成单词列表
            for w in word:       # 遍历单词列表
                number += 1      # 每遍历一个单词,总单词数就+1
                w = w.lower()  # 单词转换成全小写的形式
                if w not in dict:  # 如果单词不在dict里面,就把单词放进去,设置这个单词的词频为1,并且 duniqueNum+1
                    dict[w] = 1
                    uniqueNum += 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 = Gone Girl - Gillian Flynn.txt
    desName = dict.txt
    fre(name,desName)

Python 统计英文词频

标签:元素   重复   ber   word   __name__   排序   分割   print   读取   

原文地址:https://www.cnblogs.com/wztshine/p/12142212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!