在以前的文章中,我提到过Python标准库中的collections模块中的Counter类。它的作用非常大,这里我们要用利它来实现单词统计。对于任意一篇全英文的文本文件,我们要列出其中每一个单词各自出现的次数。

我们可以用正则表达式来提取文件中的英文单词(正则表达式是一个极其强大的工具),接着将他们装入列表中,最后用Counter类来统计单词出现频次。

from collections import Counter

import re

"""

计算一篇英文文章中的单词个数

"""

#为了方便设置默认文件名

def word_count(filename='test.txt'):

with open(filename, 'r') as f:

data = f.read()

#将大小写统一

data = data.lower()

#去除特殊字符和数字

datalist = re.split(r'[sn]+', data)

return Counter(datalist).most_common()

if __name__ == '__main__':

wc = word_count()

for i in range(len(wc)):

print ('%15s  ---->  %3s' %(wc[i][0], wc[i][1]))

为了避免可能出现的大小写不同的问题使得含大写的单词和小写单词被区别对待,我们使用lower来将所有单词统一为小写

re.split():

re.split

可以使用re.split来分割字符串,如:re.split(r’s+’, text);将字符串按空格分割成一个单词列表。

原型:

re.split(pattern, string, maxsplit=0)

通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。

这样我们创建了一个只有单词的列表

最后我们用Counter()来统计,他是一个容器类型,将数据以字典键值对形式存储,其中key为列表中的元素,而value为该元素出现的字数。

most_common():返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,排列是无确定顺序的。这样我们就返回了一个list类型数据。方便我们最后格式化输出。

最后几行代码就比较简单了,不过是做一个输出处理。

贴一下部分输出:

这是我随便找的一篇英文小说的一部分,看来the确实是一个高频词汇啊。

the  ---->   20

and  ---->   15

to  ---->   15

of  ---->   14

a  ---->   11

it  ---->   10

was  ---->   10

he  ---->    8

in  ---->    7

all  ---->    7

that  ---->    6

his  ---->    6

hadleyburg  ---->    5

their  ---->    5

for  ---->    5

so  ---->    4

were  ---->    4

at  ---->    4

python文本统计单词_Python实现文本单词统计相关推荐

  1. python将空格分开_python将每个单词按空格分开并保存到文件中

    核心代码 # -*- coding: utf-8 -*- ''' python读取英文文件,将每个单词按照空格分开,并将每个单词独自放一行 ''' def dcfenhang(infile,outfi ...

  2. python分词统计词频_python 实现中文分词统计

    总是看到别人用Python搞各种统计,前端菜鸟的我也来尝试了一把.有各种语义分析库在,一切好像并不是很复杂.不过Python刚开始看,估计代码有点丑. 一.两种中文分词开发包 THULAC(THU L ...

  3. python 英语词频统计软件_Python数据挖掘——文本分析

    作者 | zhouyue65 来源 | 君泉计量 文本挖掘:从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程. 一.语料库(Corpus) 语料库是我们要分析的所有文档的集合. ...

  4. python文本编码转换_Python: 转换文本编码

    最近在做周报的时候,需要把csv文本中的数据提取出来制作表格后生产图表. 在获取csv文本内容的时候,基本上都是用with open(filename, encoding ='UTF-8') as f ...

  5. python空行拼接字符串_python基础---文本和字符串操作

    一.文本操作 打开读取文本 (查) lock_file = open('username_lock.txt', 'r+') #r+ 读写 lock_list =lock_file.readlines( ...

  6. python如何分成两行_python将文本分每两行一组并保存到文件

    业务需求 需要将文本文件分每两行一组 jb51.txt 1:www.jb51.net 2:www.jb51.net 3:www.jb51.net 4:www.jb51.net 5:www.jb51.n ...

  7. python输出文本和值_python读取文本中数据并转化为DataFrame的实例

    在技术问答中看到一个这样的问题,感觉相对比较常见,就单开一篇文章写下来. 从纯文本格式文件 "file_in"中读取数据,格式如下: 需要输出成"file_out&quo ...

  8. python语言打印菱形_Python 实现打印单词的菱形字符图案

    Python 实现打印单词的菱形字符图案 我就废话不多说了,还是直接看代码吧! a = [1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1] b = [' ' * 2 * ( ...

  9. python文本关键词提取_python提取文本关键词

    python提取关键词textrank算法,将数据库中的数据提取出来,然后进行分析,代码如下 import pymysql import jieba from textrank4zh import T ...

最新文章

  1. Hololens2-Unity3D开发(一)
  2. javabean和EJB的区别
  3. uniapp富文本兼容视频实现方案
  4. 元宵节来了,程序员用 Python 送你一盏 3D 花灯
  5. Mssql 之 定期备份数据库
  6. 最新黑链代码expression:隐藏链接代码
  7. 数据库个人优化学习记录
  8. [再寄小读者之数学篇](2014-06-22 求导数 [中国科学技术大学2014年高等数学B考研试题])...
  9. java amp amp 怎么用,java中amp;与amp;amp;的区别
  10. C语言 条件编译(if )
  11. linux 内核编号含义_如何阅读linux内核代码?
  12. python 方程组 整数解_用Python语言求解线性整数方程组
  13. 百度SEO站群PHP进销存源码ERP多仓库管理源码
  14. arraylist删除指定元素_【追凶】ArrayList使用增强for遍历删除元素异常ConcurrentModification...
  15. matlab 波前像差,波前像差原理及应用
  16. android跳转到相册需要权限,Android打开相册获取图片路径
  17. 2020流行的液态风格PNG免扣素材,竟然被我找到了!
  18. Eclipse console 编码设置
  19. android app唯一标识符,android 唯一识别码笔记
  20. HOWTO For iSCSI-SCST Gentoo HOWTO For iSCSI-SCST

热门文章

  1. 豆豆趣事[2015年10月]
  2. 邮件协议SMTP、POP3和IMAP
  3. 英国留学读计算机专业都有哪些优势?
  4. switch的参数类型
  5. 魅族生活服务多机房方案
  6. c++调用lua文件
  7. 浏览器访问数据库中的图片路径
  8. 浅析MPEG-1音视频标准,带你深入浅出理解MPEG-1压缩原理
  9. html学习 - 元素隐藏/显示和input隐藏
  10. word2010向上向下取整符号