统计英文名著中单词出现频率
统计单词出现的次数,不同的单词数,单词的重复率
目的
之前在一本学习英文的书中看到成人中文常用词汇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
统计英文名著中单词出现频率相关推荐
- C语言统计文章单词出现的次数,统计英文文章中单词出现频率
/* 运行此程序之前要将写有单词的英文文章以.txt格式保存在d:\word.txt */ #include #include #include #include #include #include ...
- 统计英文文件中单词出现频率
统计一个文件里每个单词出现的次数 #1.打开指定文件 #2.删除除了单词之外所有标点符号,并将每个单词分割开 #3.统计每个单词出现次数
- Python练手小程序—统计英文文件中单词出现的的个数
在GitHub上发现一些很有意思的项目,由于本人作为Python的初学者,编程代码能力相对薄弱,为了加强Python的学习,特此利用前辈们的学习知识成果,自己去亲自实现. 一周没有更新了,主要还是自己 ...
- Java编程之统计英文句子中单词个数、不同单词和重复单词个数
一.题目 从键盘输入一个英文句子,统计该句子中的英文单词个数,并找出所有单词存放到一个数组中.同时,输出该句子中的不同单词和重复单词以及它们的个数. 二.实验代码 package fighting; ...
- python统计英文文章中单词的个数无文件_求Python统计英文文件内单词个数的思路...
感谢微博上@刘鑫-MarsLiu的TAG每天一个小程序. 你会如何实现上述题目的要求? #!/usr/bin/env python # -*- coding: utf-8 -*- "&quo ...
- python统计英文文章中单词出现的次数并排序_Python实现的统计文章单词次数功能示例...
本文实例讲述了Python实现的统计文章单词次数功能.分享给大家供大家参考,具体如下: 题目是这样的:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认 ...
- python统计英文文章中单词出现的次数并排序_Python读取英文文件并记录每个单词出现次数后降序输出示例...
Python读取英文文件并记录每个单词出现次数后降序输出示例 发布时间:2020-09-19 23:07:12 来源:脚本之家 阅读:126 作者:菜鸟虫师 本文实例讲述了Python读取英文文件并记 ...
- python统计英文文章中单词出现的次数并排序_python,_关于统计某一个 单词 在 文本中 出现的次数,python - phpStudy...
关于统计某一个 单词 在 文本中 出现的次数 人生苦短,我用Python.用了不会,来到segment. 我是一个python 初学者,想要实现一个"模块",可以让用户输入某个单词 ...
- python统计英文文章中单词出现的次数
word="I'm a boby, I'm a girl. When it is true, it is ture. thit are cats, the red is red." ...
最新文章
- 【CSS3】CSS中的定位
- HttpUtility编码
- 【算法导论】第7章快速排序
- HTML5应用程序网站视差模板下载
- 计算机体系结构在线读,计算机体系结构new.ppt
- linux大一实验报告,linux实验报告
- 【五大常用算法】一文搞懂分治算法
- css3中vw/vh/vmin/vmax的含义与使用方法
- Redis持久化策略AOF、RDB详解及源码分析
- 源于《赘婿》电视剧 拼多多申请“拼刀刀”商标
- 2021-02-15 大数据课程笔记 day26
- 智慧城市产业热点板块及产业图谱
- 地图定位技术揭秘(一)
- java eden区_请说明一下eden区和survial区的含义以及工作原理?
- 如何在MSDN上下载操作系统
- IDEA最强美化插件:Material Theme UI和Atom Material Icons
- 我的MATLAB学习
- python实现topk问题
- RGB颜色表——在线
- animate.css+wow.js实现网页动画