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)
上一篇 2022年4月3日 上午6:35
下一篇 2022年4月3日 上午7:00


相关推荐

  • hibernate执行原生sql_接口定义方法

    hibernate执行原生sql_接口定义方法Hibernate之Query接口的uniqueResult方法

    2022年9月30日
    5
  • 人工客服系统如何接入coze扣子智能体平台API?

    人工客服系统如何接入coze扣子智能体平台API?

    2026年3月13日
    2
  • ajax面试题及答案_javase面试题

    ajax面试题及答案_javase面试题前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3yAJAX常见面试题什么是AJAX,为什么要使用AjaxAJAX是“AsynchronousJavaScriptandXML”的缩写。他是指一种创建交互式网页应用的网页开发技术。、客户端与服务器,可以在【不必刷新整个浏览器】的情况下,与服务器进行异步通讯的技术AJAX应用和传统Web应用有什么不同?AJAX应用和传统Web应用

    2022年8月27日
    7
  • Nginx域名重定向实现

    Nginx域名重定向实现网站的域名升级了 需要启用新的域名使用 但是用户却不知道 还可能使用旧的域名访问网站 需要把通过旧域名访问的来源 重定向到新的域名 语法 把当前域名的请求全部重定向到新域名 www lnmp comrewrite http www lnmp compermanent permanent 返回 301 永久重定向 浏览器地址栏会显示跳转后的 URL 地址示例配置 shop lnmp com 的请求全部重定向到 www lnmp com 中 server

    2026年3月17日
    2
  • js时间戳转化

    js时间戳转化时间戳转换

    2026年3月18日
    3
  • 软件工程师角度看MIPI协议

    软件工程师角度看MIPI协议【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)软件工程师角度看MIPI协议一、MIPI的由来: 在手机行业的初期,优胜劣汰适者生存的手机行业竞争激烈.在这个过程中涌现出了许许多多不同的创新的点子,例如摄像头的接口,由于每个厂商不存在统一的规范,不同的摄像头模组厂商可能会使用的不同的接口,在做适配的时候极其不方便以及个别接口非常不好用(接口技术碎片化导致集…

    2022年6月3日
    39

发表回复

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

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