Python 词频统计

Python 词频统计

大家好,又见面了,我是你们的朋友全栈君。

利用Python做一个词频统计

GitHub地址:FightingBob 【Give me a star , thanks.】

  • 词频统计

  对纯英语的文本文件【Eg: 瓦尔登湖(英文版).txt】的英文单词出现的次数进行统计,并记录起来

  • 代码实现

  •  1 import string
     2 from os import path
     3 with open('瓦尔登湖(英文版).txt','rb') as text1:
     4     words = [word.strip(string.punctuation).lower() for word in str(text1.read()).split()]
     5     words_index = set(words)
     6     count_dict = {index:words.count(index) for index in words_index}
     7     with open(path.dirname(__file__) + '/file1.txt','a+') as text2:
     8         text2.writelines('以下是词频统计的结果:' + '\n')
     9         for word in sorted(count_dict,key=lambda x:count_dict[x],reverse=True):
    10             text2.writelines('{}--{} times'.format(word,count_dict[word]) + '\n')
    11         text1.close()
    12         text2.close()

     

  • 代码解析  

    • 获取文件,以二进制格式打开文件,用于读取内容

      •   1 with open(‘瓦尔登湖(英文版).txt’,’rb’) as text1:

    • 获取单词列表

      • 先读取内容

        •   content = text1.read()
      • 再获取单词列表(使用split() 通过指定分隔符对字符串进行切片)

        •   words = content.split()
      • 单词大写改小写,去掉单词前后符号

        •   word,strip(string.punctuation).lower()
      • 去除重复的单词

        •   words_index = set(words)
    • 设置单词:单词次数的字典      

      •   count_dict = {index:words.count(index) for index in words_index}
    • 写入词频统计

      • 先创建文件,获取当前目录,并以追加写入的方式写入

        •   with open(path.dirname(__file__) + ‘/file1.txt’,’a+’) as text2:
      • 换行写入

        •   text2.writelines(‘以下是词频统计的结果:’ + ‘\n’)
      • 对单词进行排序,根据次数从大到小【key=lambda x:count_dict[x]以值排序】

        •   sorted(count_dict,key=lambda x:count_dict[x],reverse=True)
      • 换行写入词频

        •   text2.writelines(‘{}–{} times’.format(word,count_dict[word]) + ‘\n’)
      • 关闭资源

        •   text1.close()
        •   text2.close()

GitHub地址:FightingBob 【Give me a star , thanks.】          

 

转载于:https://www.cnblogs.com/littlebob/p/9189794.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107469.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Gateway网关简介及使用

    Gateway网关简介及使用Gateway网关简介及使用1.什么是API网关(APIGateway)分布式服务架构、微服务架构与API网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平台无关的服务协议作为各个单元间的通讯方式。AP…

    2022年10月11日
    0
  • java的反射机制带来的好处_线程安全与线程不安全

    java的反射机制带来的好处_线程安全与线程不安全什么是反射Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法jdbc(数据库连接技术)在加载驱动时运用到了反射技术例如:实例化对象第一种:Personp=newPerson()虚拟机在执行的时候已经确切知道要实例化哪个类的对象第二种:反射:虚拟机在实例化对象的时候,可以事先不知道要实例化哪个类的对象,传参的时候虚拟机根据参数确定要实例化哪个类的

    2022年8月24日
    4
  • 词法环境和变量环境_lexicalcategory

    词法环境和变量环境_lexicalcategory词法环境是一个理论上存在的对象。由什么组成?环境记录(environmentrecord)和对外部词法环境的引用。暂且认为这些来自不同地方的宝石,团结起来,暂时组成了一个新的对象。

    2022年8月6日
    12
  • Android短信验证码自动填写功能的实现

    Android短信验证码自动填写功能的实现android应用经常会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,通常,用户收到短信需要最小化应用去查看短信再填入验证码,必然比较麻烦,因此有必要能够自动获得下发的短信验证码,方便了用户的操作,用户体验更好。

    2022年7月25日
    6
  • Android开发入门书籍推荐

    Android开发入门书籍推荐http://liangruijun.blog.51cto.com/3061169/623548/Android开发入门书籍推荐Android编程入门教程andbookandbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程

    2022年6月22日
    28
  • linux 查看 java 进程内存占用情况[通俗易懂]

    linux 查看 java 进程内存占用情况[通俗易懂]1.查看java进程内存占用top-b-n1|grepjava|awk'{print”PID:”$1″,mem:”$6″,CPUpercent:”$9″%”,”mempercent:”$10″%”}’2.查看pid所在目录lsof-pPID3.查看剩余内存free-m

    2022年10月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号