这里用python做一个小小的英文词频的统计。当然了,自己写的,就没有停词、计算词语权重这些功能了,纯粹是写写代码练练手。

首先呢,这里是一篇英文文章,就像下面这样的185个小段落,数据量还是不大的,哈利波特小说好像有10W行,感兴趣可以找到分一下。

虽然我安装了2、3两个版本.这里用的是Python2,因为Python2打印好像不用写括号,比较省事。

废话不多说,这里主要有两个脚本,一个是分词,一个是统计词频的:

1

分词

我这里是用的cmd窗口的命令依次读取一行,形成文件流,每次处理一行,否则就需要弄一个很大的列表(list)。

如上面几行代码所示,对英文进行分词是非常简单的,只需要根据空格分开就行了。不像中文,还需要词库、用一系列算法计算。然后打印到控制台就行了。这样打印出来的词语还是无序的,我们需要将其排序,就是让相邻词语一小段一小段一样的,需要用sort排序,就像这样:

cmd窗口输入命令执行脚本:

type The_Clock_and_the_Key.txt | python2 splitText.py | sort

这里的“type”是打开一个文本文件,“|”是管道:把左边内容作为参数给右边的函数。

这样每个词语就占一行,其实这个就是hadoop的一个基本功能之一:【排序】。

2

统计词频

思想是,如果当前读进来的单词与保存的单词不一样,表明该词语统计结束。由于,最后一个词语赋值给current_word后,没有对比的了(已经到最后一行了,这里打印的时候,需要在循环外面打印一次,第23行代码)。

将第一个脚本处理后的一个单词占一行,并且相邻段单词一样的数据流用管道传入这个脚本进行处理。

cmd窗口输入命令执行脚本:

type The_Clock_and_the_Key.txt | python2 splitText.py | sort | python2 splitText2.py | sort /R

这里的sort /R表示倒序(reverse),是一个函数。

windows命令行不太会玩,最终排序是这样的排序:

好像是按照字典排序的,哈哈,就这样吧!有强迫症的同学可以用列表或者字典,调用Python自带sort函数排一下序。

欢迎留言、提建议、意见,觉得不错,记得【点赞、分享】!

点击【阅读原文】,查看我的个人博客网站。

python单词统计、给定一个段落()_自己动手Python写一个词频统计小项目相关推荐

  1. java编写一个框架_手把手教你写一个基于 RxJava 的扩展框架

    背景 现在 RxJava 在 Android 开发中可谓时炽手可热,其受欢迎程度不言而喻,也因此在 github 上出现了一系列的基于 RxJava 的框架,如 RxBinding.RxPermiss ...

  2. python跟易语言的爬虫_用易语言写个简单的小爬虫其中的关键点

    一.请求头 ctrl+L快捷键创建变量 变量名 类型 协议参数 类_POST数据类 请求头数据 文本型 协议参数.添加 ("v", "4.52.0") 请求头数 ...

  3. 动手自己写一个 xcode 插件(Xcode Source Editor Extensions)附源码

    2019独角兽企业重金招聘Python工程师标准>>> 动手自己写一个 xcode插件  (暂时需要注释功能,所以简单的写一个注释插件) -----Xcode Source Edit ...

  4. python k线合成_手把手教你写一个Python版的K线合成函数

    手把手教你写一个Python版的K线合成函数 在编写.使用策略时,经常会使用一些不常用的K线周期数据.然而交易所.数据源又没有提供这些周期的数据.只能通过使用已有周期的数据进行合成.合成算法已经有一个 ...

  5. python中怎么创建一个词典_如何在Python中创建字典词典

    所以我正在学习一个自然语言处理类,我需要创建一个trigram语言模型来生成随机文本,这些文本在一定程度上基于一些样本数据看起来"逼真". 根本需要创建一个"三元组&qu ...

  6. python手写一个迭代器_搞清楚 Python 的迭代器、可迭代对象、生成器

    很多伙伴对 Python 的迭代器.可迭代对象.生成器这几个概念有点搞不清楚,我来说说我的理解,希望对需要的朋友有所帮助. 1 迭代器协议 迭代器协议是核心,搞懂了这个,上面的几个概念也就很好理解了. ...

  7. python中怎么画一个机器猫_如何用Python画一只机器猫?

    作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自信心的最好办法. 第一次学编程是在屏幕上敲出" ...

  8. 用python画六边形并填充颜色_如何用Python,画一个正多边形,长度和颜色还是任意的!...

    Python画基本形状,要用到自带的turtle库,这是个简单绘图的入门小工具. 任务设定如上,下面来一点点拆解它. 从键盘获取用户输入的边数. 画笔形状由原来的三角形,改为海龟形状. 长度随机产生, ...

  9. python猜数字游戏编程入门_如何利用Python开发一个简单的猜数字游戏

    导读热词 前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(hi ...

最新文章

  1. 基于mybatis声明SQL Session对象
  2. 02_Mybatis动态代理
  3. sql server 关联left join条件on和where条件的区别
  4. 【tensorflow】tf.reshape函数说明:重塑张量
  5. [JavaWeb-Tomcat]web服务器软件_Tomcat介绍
  6. 帆软地址栏传参,实例
  7. 为QT的Webkit 编写插件
  8. [Unity] ACT 战斗系统学习 2:从 Buff 系统开始的思考
  9. SE Springer小组之《Spring音乐播放器》可行性研究报告五、六
  10. iPadOS 14.7和macOS 11.5,以及操作系统更新的安全说明
  11. gps模拟器 matlab,基于Matlab/Simulink的数字中频GPS信号软件模拟器
  12. 计算机专业职业生涯规划书,计算机专业职业生涯规划书2000字.doc
  13. 微信公众号推送模板信息
  14. 火山安卓解析某盘直连
  15. 恢复Cisco 2960交换机密码
  16. C++实训练习册(C++之基础语法入门练习题)
  17. k8s之存储抽象nfs挂载
  18. 笔记本计算机无法打开,笔记本电脑开不了机怎么办 笔记本开不了机解决方法【详解】...
  19. CSS # 通过CSS使图片颜色反转
  20. java 使用腾讯云文字识别,识别驾驶证

热门文章

  1. C#Repeater控件的使用
  2. asp.net的10个提升性能或扩展性的秘密(二)
  3. C++之左值引用与右值引用
  4. Gstreamer之可变长参数实现(十)
  5. MT6737 Audio之TinyAlsa
  6. 多元回归模型与热力图绘制
  7. VALSE学习(一):high-resolution representation learning-高分辨率表示学习-姿态估计
  8. 关于yolov3在训练自己数据集时容易出现的bug集合,以及解决方法
  9. 海康威视监控工具-IVMS-4200不同系统兼容性问题汇总
  10. java 程序打包成jar_把Java程序打包成jar文件包并执行的方法