统计单词出现的次数,不同的单词数,单词的重复率

目的

之前在一本学习英文的书中看到成人中文常用词汇5000字,英文大概2-3万字,感到很诧异,所以就有了这两篇文章。之前的中文名著统计 统计名著中汉字出现频率,纸上得来终觉浅,绝知此事要躬行。

思路

这次统计的英文名著是以《简爱》为例,处理的方法和之前一样,就是处理单词时变了:先把一行单词大写转小写,然后根据空格分割出单词,并检查每个单词的最后一个字符是不是标点符号,是的话就去掉。

实现

代码基本和之前的一篇文章一样,只是处理文字的方法变了

public class StatisticCharacter {public static double totalCount = 0;public static double diffWord = 0;public static Map<String, Integer> characterMap = new HashMap<String, Integer>();public static ArrayList<Map.Entry<String, Integer>> sortWordList;public static void main(String[] args) throws IOException {String fileName = "/Users/gary/Documents/JaneEyre.txt";StringBuilder words = new StringBuilder();File file = new File(fileName);BufferedReader bufferedReader = new BufferedReader(new FileReader(file));String str;while ((str = bufferedReader.readLine()) != null) {//sumChineseWordNum(str);sumEnglishWordNum(str);}bufferedReader.close();System.out.println("总字数------" + totalCount);System.out.println("不同的字数------" + diffWord);sort(characterMap);FileWriter fileWriter = null;try {fileWriter = new FileWriter("/Users/gary/Documents/Study/output.txt");for (Map.Entry<String, Integer> entry : sortWordList) {
//              System.out.println(entry.getKey() + "------" + entry.getValue());words.append(entry.getKey()).append("------").append(entry.getValue()).append("\r\n");}fileWriter.write(words.toString());} catch (IOException e) {e.printStackTrace();} finally {if (fileWriter != null) {fileWriter.close();}}System.out.println("重复率-----" + ((totalCount-diffWord)/totalCount));}/*** 统计英文总字数和每个字出现的次数** 大写转小写,过滤非英文字符** @param str*/public static void sumEnglishWordNum(String str) {if(StringUtils.isBlank(str)){return;}int num;String[] strArr = str.toLowerCase().split(" ", -1);if(strArr.length < 1){return;}for (int i = 0; i < strArr.length; i++) {if (StringUtils.isBlank(strArr[i])) {continue;}char lastCharacter = strArr[i].charAt(strArr[i].length() - 1);if(!(lastCharacter >='a' && lastCharacter <= 'z')){strArr[i] = strArr[i].substring(0, strArr[i].length() - 1);}if (StringUtils.isBlank(strArr[i])) {continue;}totalCount++;if (!characterMap.containsKey(strArr[i])) {num = 1;diffWord++;characterMap.put(strArr[i], num);} else {num = characterMap.get(strArr[i]) + 1;characterMap.put(strArr[i], num);}}}/*** 按value排序hashmap,统计单词的频率从高到低* @param map*/public static void sort(Map<String, Integer> map){sortWordList  = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());Collections.sort(sortWordList,new Comparator<Map.Entry<String, Integer>>() {public int compare(Map.Entry<String, Integer> map1 , Map.Entry<String, Integer> map2){return (map2.getValue() - map1.getValue());}});}
}

结果

总字数------185684.0
不同的字数------17575.0
重复率-----0.9053499493763598

统计英文名著中单词出现频率相关推荐

  1. C语言统计文章单词出现的次数,统计英文文章中单词出现频率

    /* 运行此程序之前要将写有单词的英文文章以.txt格式保存在d:\word.txt */ #include #include #include #include #include #include ...

  2. 统计英文文件中单词出现频率

    统计一个文件里每个单词出现的次数 #1.打开指定文件 #2.删除除了单词之外所有标点符号,并将每个单词分割开 #3.统计每个单词出现次数

  3. Python练手小程序—统计英文文件中单词出现的的个数

    在GitHub上发现一些很有意思的项目,由于本人作为Python的初学者,编程代码能力相对薄弱,为了加强Python的学习,特此利用前辈们的学习知识成果,自己去亲自实现. 一周没有更新了,主要还是自己 ...

  4. Java编程之统计英文句子中单词个数、不同单词和重复单词个数

    一.题目 从键盘输入一个英文句子,统计该句子中的英文单词个数,并找出所有单词存放到一个数组中.同时,输出该句子中的不同单词和重复单词以及它们的个数. 二.实验代码 package fighting; ...

  5. python统计英文文章中单词的个数无文件_求Python统计英文文件内单词个数的思路...

    感谢微博上@刘鑫-MarsLiu的TAG每天一个小程序. 你会如何实现上述题目的要求? #!/usr/bin/env python # -*- coding: utf-8 -*- "&quo ...

  6. python统计英文文章中单词出现的次数并排序_Python实现的统计文章单词次数功能示例...

    本文实例讲述了Python实现的统计文章单词次数功能.分享给大家供大家参考,具体如下: 题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认 ...

  7. python统计英文文章中单词出现的次数并排序_Python读取英文文件并记录每个单词出现次数后降序输出示例...

    Python读取英文文件并记录每个单词出现次数后降序输出示例 发布时间:2020-09-19 23:07:12 来源:脚本之家 阅读:126 作者:菜鸟虫师 本文实例讲述了Python读取英文文件并记 ...

  8. python统计英文文章中单词出现的次数并排序_python,_关于统计某一个 单词 在 文本中 出现的次数,python - phpStudy...

    关于统计某一个 单词 在 文本中 出现的次数 人生苦短,我用Python.用了不会,来到segment. 我是一个python 初学者,想要实现一个"模块",可以让用户输入某个单词 ...

  9. python统计英文文章中单词出现的次数

    word="I'm a boby, I'm a girl. When it is true, it is ture. thit are cats, the red is red." ...

最新文章

  1. 【CSS3】CSS中的定位
  2. HttpUtility编码
  3. 【算法导论】第7章快速排序
  4. HTML5应用程序网站视差模板下载
  5. 计算机体系结构在线读,计算机体系结构new.ppt
  6. linux大一实验报告,linux实验报告
  7. 【五大常用算法】一文搞懂分治算法
  8. css3中vw/vh/vmin/vmax的含义与使用方法
  9. Redis持久化策略AOF、RDB详解及源码分析
  10. 源于《赘婿》电视剧 拼多多申请“拼刀刀”商标
  11. 2021-02-15 大数据课程笔记 day26
  12. 智慧城市产业热点板块及产业图谱
  13. 地图定位技术揭秘(一)
  14. java eden区_请说明一下eden区和survial区的含义以及工作原理?
  15. 如何在MSDN上下载操作系统
  16. IDEA最强美化插件:Material Theme UI和Atom Material Icons
  17. 我的MATLAB学习
  18. python实现topk问题
  19. RGB颜色表——在线
  20. animate.css+wow.js实现网页动画

热门文章

  1. Python自然语言处理实战(1):NLP基础
  2. python脱离pc自动化_Android手机脱离电脑直接运行UIAutomator2
  3. 排序算法稳定性和不稳定性的理解
  4. 本地的registry图形化界面harbor安装与使用--02
  5. 满满干货!送给想学生物竞赛的同学们一份入门指南
  6. 【windows下直接把文件打包成war包】
  7. IP地址中的A、B、C类地址详解
  8. 关于钢材出口关税的问题
  9. 【C#】SharpDevelop使用教程,C#写windows下第一个窗口程序,简单粗暴,初学者进,全图文,一看就明白
  10. “amp”是什么意思