如何利用python实现词频统计功能

目录
  • 功能要求
  • 方法如下
  • 运行结果
  • 总结

功能要求

这是我们老师的作业 代码中都有注释 要求 词频统计软件:

1)从文本中读入数据:(文件的输入输出)

2)不区分大小写,去除特殊字符。

3) 统计单词 例如:about :10 并统计总共多少单词

4)对单词排序。出现次数

5)输出词频最高的10个单词和次数

6)把统计结果存入文本

方法如下

1.文件的读取,区分大小写,去除特殊字符

import re

def getword():
     # 读取文件
     f=open('read.txt','r',encoding='utf-8')
     # 将大写转化成小写
     word=f.read().lower()
     # 关闭文件
     f.close()
     #利用正则除去特殊字符   |\符+
     list=re.split('\s+|\,+|\.+|\!+|\:+|\?+|\;+|\(+|\)+|\-+|\_+|\=+|\++|\“+|\、+|\/+|\{+|\}+|\”+|\:+|\。+|\“+|\[+|\]+|\【+|\】+|\—+|\%+|\"+',word)
     # 遍历列表 去除列表中的空格
     i = 0
     while i < len(list):
          if list[i] == '':
               list.remove(list[i])
               i -= 1
          i += 1

     # for a in list:
     #      if a == "":
     #         list.remove(a)
    #用for循环的话如果存在多个空字符串 其列表会随时发生变化,导致无法正常删除空字符串 所以在使用for…in循环遍历列表时,最好不要对元素进行增删操作

#  对于others'优化 如果最后一个字符是‘就将'其去掉
     for i in range(len(list)):
          l=list[i]
          if list[i][-1] == "'":
               list[i] = list[i][:-1]
     return list

2. 统计,排序

from getfilewords import getword

def statistics():
    dict={}  #定义一个空的字典,在后面的运算中逐步添加数据
    words=getword()
    for word in words: #遍历整个列表
        if word in dict.keys():  #判断当前单词是否已经存在 dict.keys()是已存进字典中的单词
            # 补充:keys() 方法用于返回字典中的所有键;
            # values() 方法用于返回字典中所有键对应的值;
            #详情见Test1
            dict[word]=dict[word]+1  #在当前单词的个数上加 1
        else:
            dict[word]=1  #当前单词第一次出现时 会把单词写入dict字典里 格式为 ‘单词'=1
#排序
    w_order=sorted(dict.items(),key=lambda x:x[1],reverse=True)
# print(dict.items())
# dict.items()返回的是列表
# 按字典集合中,每一个元组的第二个元素排列。
# sorted会对dict.items()这个list进行遍历,把list中的每一个元素,也就是每一个tuple()当做x传入匿名函数lambda x:x[1],函数返回值为x[1]
# reverse属性True为降序 False为升序
    return w_order #返回排序后的列表

3.结果写入文本

from WordStatistics import statistics
def writefile():
    w_order=statistics()
    f = open('result.txt', 'w',encoding='utf-8')
    print("文章单词总个数:",+len(getword()),file=f)
    print("文章单词总个数:", +len(getword()))

    # 写入文件
    print("词频最高的10个单词和次数",file=f)
    print("词频最高的10个单词和次数")

    w_order10=w_order[:10]#将列表的前十位提取并且遍历 输出key(单词)和values(次数)
    for key,values in w_order10:
        print(key,':',values,file=f)
        print(key, ':', values)

    #遍历列表中的所有数据
    print("统计结果",file=f)
    for key,values in w_order:
        print(key,':',values,file=f)
    f.close()#关闭文件

4.程序入口

import os

from writefile import writefile

print("词频统计软件")
print("正在统计中。。。")
print("统计成功,结果保存到result.txt")
writefile()
print("程序运行结束")
os.system("pause")

5.运行截图 这是需要统计的文本

运行程序

运行结果

总结

到此这篇关于如何利用python实现词频统计功能的文章就介绍到这了,更多相关python实现词频统计内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Python用三种方式统计词频的方法

    三种方法: ①直接使用dict ②使用defaultdict ③使用Counter ps:`int()`函数默认返回0  ①dict text = "I'm a hand some boy!" frequency = {} for word in text.split(): if word not in frequency: frequency[word] = 1 else: frequency[word] += 1  ②defaultdict import collections f

  • python 文本单词提取和词频统计的实例

    这些对文本的操作经常用到, 那我就总结一下. 陆续补充... 操作: strip_html(cls, text) 去除html标签 separate_words(cls, text, min_lenth=3) 文本提取 get_words_frequency(cls, words_list) 获取词频 源码: class DocProcess(object): @classmethod def strip_html(cls, text): """ Delete html ta

  • python实现简单中文词频统计示例

    本文介绍了python实现简单中文词频统计示例,分享给大家,具体如下: 任务 简单统计一个小说中哪些个汉字出现的频率最高 知识点 1.文件操作 2.字典 3.排序 4.lambda 代码 import codecs import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 mpl.rcParams['axes.unicode_minus

  • python写程序统计词频的方法

    在李笑来所著<时间当作朋友>中有这么一段: 可问题在于,当年我在少年宫学习计算机程序语言的时候,怎么可能想象得到,在20多年后的某一天,我需要先用软件调取语料库中的数据,然后用统计方法为每个单词标注词频,再写一个批处理程序从相应的字典里复制出多达20MB的内容,重新整理-- 在新书<自学是门手艺>中,他再次提及: 又过了好几年,我去新东方教书.2003 年,在写词汇书的过程中,需要统计词频,C++ 倒是用不上,用之前学过它的经验,学了一点 Python,写程序统计词频 --<

  • Python开发的单词频率统计工具wordsworth使用方法

    使用方法: python wordsworth --filename textfile.txt python wordsworth -f textfile.txt 分析结果: 附上github项目地址:https://github.com/autonomoid/wordsworth

  • Python实现统计英文文章词频的方法分析

    本文实例讲述了Python实现统计英文文章词频的方法.分享给大家供大家参考,具体如下: 应用介绍: 统计英文文章词频是很常见的需求,本文利用python实现. 思路分析: 1.把英文文章的每个单词放到列表里,并统计列表长度: 2.遍历列表,对每个单词出现的次数进行统计,并将结果存储在字典中: 3.利用步骤1中获得的列表长度,求出每个单词出现的频率,并将结果存储在频率字典中: 4.以字典键值对的"值"为标准,对字典进行排序,输出结果(也可利用切片输出频率最大或最小的特定几个,因为经过排序

  • python利用多种方式来统计词频(单词个数)

    python的思维就是让我们用尽可能少的代码来解决问题.对于词频的统计,就代码层面而言,实现的方式也是有很多种的.之所以单独谈到统计词频这个问题,是因为它在统计和数据挖掘方面经常会用到,尤其是处理分类问题上.故在此做个简单的记录. 统计的材料如下: document = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not',

  • Python 合并多个TXT文件并统计词频的实现

    需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词 逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词频统计,得到最终结果. 代码如下:(在Windows 10,Python 3.7.4环境下运行通过) # coding=utf-8 import re import os # 获取源文件夹的路径下的所有文件 sourceFileDir = 'D:\\Python\\txt\\' filenames

  • 如何利用python实现词频统计功能

    目录 功能要求 方法如下 运行结果 总结 功能要求 这是我们老师的作业 代码中都有注释 要求 词频统计软件: 1)从文本中读入数据:(文件的输入输出) 2)不区分大小写,去除特殊字符. 3) 统计单词 例如:about :10 并统计总共多少单词 4)对单词排序.出现次数 5)输出词频最高的10个单词和次数 6)把统计结果存入文本 方法如下 1.文件的读取,区分大小写,去除特殊字符 import re def getword(): # 读取文件 f=open('read.txt','r',enc

  • linux操作系统利用python实现任务管理器可视化功能

    1.python安装 1.创建一个文件夹, mkdir python 进入文件夹下,进行解压: tar zxvf Python-3.6.5.tar 进入Python-3.6.5这个文件夹下面输入: ./configure 接下来出现一大堆过程,最后提示你 run 一个命令 按照提示的命令输入就行. 输入make命令(如果提示不存在,就使用 apt install make安装即可),等待就行. make && make install #编译并安装 继续等待安装完成即可. 这时我们cd到根

  • 如何利用Python快速统计文本的行数

    ​​通常我们会用wc -l来统计文件行数,不过用Python统计也很简单. 要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数.为了尽量提高速度,我们需要尽量多读一些文本然后一起处理.统计换行符的个数可以用bytes内置的count方法. 代码如下: from __future__ import print_function import time if __name__ == '__main__': import sys start = time.time() with

  • python中文分词+词频统计的实现步骤

    目录 前言 一.文本导入 二.使用步骤 1.引入库 2.读入数据 3.取出停用词表 4.分词并去停用词(此时可以直接利用python原有的函数进行词频统计) 5. 输出分词并去停用词的有用的词到txt 6.函数调用 7.结果 附:输入一段话,统计每个字母出现的次数 总结 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 本文记录了一下Python在文本处理时的一些过程+代码 一.文本导入 我准备了一个名为abstract.txt的文本文件 接着是在网上下载了stopword

  • 利用Python统计Jira数据并可视化

    目录 1. 准备 2. 实战一下 3. 总结 大家好,我是安果! 目前公司使用 Jira 作为项目管理工具,在每一次迭代完成后的复盘会上,我们都需要针对本次迭代的 Bug 进行数据统计,以帮助管理层能更直观的了解研发的代码质量 本篇文章将介绍如何利用统计 Jira 数据,并进行可视化 1. 准备 首先,安装 Python 依赖库 # 安装依赖库 pip3 install jira pip3 install html-table pip3 install pyecharts pip3 instal

  • 利用python微信库itchat实现微信自动回复功能

    前言 在论坛上看到了用Python登录微信并实现自动签到,才了解到一个新的Python库: itchat 利用Python 微信库itchat,可以实现自动回复等多种功能,好玩到根本停不下来啊,尤其是调戏调戏不懂计算机的,特别有成就感,哈哈!! 代码如下: #coding=utf8 import requests import itchat KEY = '8edce3ce905a4c1dbb965e6b35c3834d' def get_response(msg): apiUrl = 'http

  • 利用Python实现Windows定时关机功能

    是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感.每当在别的地方找不到思路,总能在Python找到解决的办法.自动关机,在平时下载大文件,以及跑程序的时候能用到的,刚才写了个windows自动关机的小程序,程序过于简单,就当是玩玩吧,当然还有很多可改进的地方.下面正文:  #ui制作: 照旧,笔者由Qt制作完成需要的ui,包括label,label_2,label_3,lable_4,lineEdit,lineEdit_2,pushButton组件.

  • 利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下:   使用PIL图像处理库,导入moudle from PIL import Image from PIL import ImageFont from PIL import ImageDraw def white_to_transparent(img): img=img.convert('RGBA') #返回一个转换后的图像的副本 dat

随机推荐