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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决 Linux 内核代码审查人员短缺问题

    解决 Linux 内核代码审查人员短缺问题

    2022年3月6日
    44
  • clion激活_最新在线免费激活

    (clion激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月29日
    76
  • 清关报关知识详解_海关清关中是什么意思

    清关报关知识详解_海关清关中是什么意思  加工中心清关代理流程报关知识科普    进口泰国二手加工中心清关代理流程报关知识科普    机电企业产品的定义:机电技术产品是指使用进行机械、电器、电子信息设备所生产的各类农具机械、电器、电子系统性能的生产管理设备和生活用机具。一般包括机械设备、电气设备、运输工具、电子产品、电子产品、仪器仪表、金属产品及其零部件。    那么什么是二手设备?    (一)已经可以使用(不含使用前测试、调试的设备),仍具备基本信息功能和一定能够使用时间价值的;    (二)未经使用,但是超过质量保

    2022年9月21日
    0
  • Android中实现二级菜单

    Android中实现二级菜单公司项目里的需求,商城的左下角,要求有分类的Menu。看图:1.当点击一级分类,修改二级菜单里面的内容。2.同时一级菜单里的背景变为右边有白色三角的背景。3.当点击二级菜单的条目时候,Popupwindow消失,并且界面更新对应条目的商品数据。我的实现思路是:左下角弹出Popupwindow,里面使用两个ListView实现。我的Demo的效果:

    2022年5月9日
    41
  • (20211130更新)关于jupyter notebook的下载安装及自己的配置、主题

    什么是jupyternotebook?JupyterNotebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。打开的好慢。。没事,我们就不讲官网的了。JupyterNotebook以命令行启动后,以网页的形式打开,我们可以在网页页面中直接编写代码和运行代码,运行代码块后,运行结果会直接在代码块下显示。比如这样:当然我们在编程过程中会习惯的编写注释,可在同一个页面中直接编写。安装由于时间关系,我就先讲解一下本人的安装及使用,关于

    2022年4月13日
    49
  • 微软E5账号OneDrive无法扩容解决方案(亲测有效)「建议收藏」

    微软E5账号OneDrive无法扩容解决方案(亲测有效)「建议收藏」E5账号OneDrive默认存储空间为1T,可通过以下方式进行扩容12如按照以上方法扩容失败,则本篇文章可能对您有帮助,请继续阅读1.下载安装SharePointOnlineManagementShell 官方下载地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=355882.在SharePointOnlineManagementShell中输入以下命令1.Conn..

    2022年9月9日
    2

发表回复

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

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