Python实现文本单词统计

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

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

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

:

re.split

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

原型:

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

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

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

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

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

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

贴一下部分输出:

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180815G0RVMQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券