Java实现词频统计(Wordcount)-Map或Hashtable的value排序
我们在文本操作时,经常需要用到词频统计,并对统计后的词频进行排序,然后输出。
以下是我写的一个供大家参考:
package com.qian;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/** author:合肥工业大学 管院学院 钱洋 * email:1563178220@qq.com
*/
public class WordCount {public static void main(String args []) throws IOException {Hashtable<String, Integer> wordCount = new Hashtable<String, Integer>();BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( new File("E:\\钱洋个人\\预测数据\\文本合并\\user_content_combine")),"utf-8"));BufferedWriter Writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( new File("E:\\钱洋个人\\预测数据\\wordcount\\user_content_count.txt")),"utf-8"));String s=null;int c=0;while ((s=reader.readLine())!=null) {String arry[] =s.split(" ");for (int i = 0; i < arry.length; i++) {if (!wordCount.containsKey(arry[i])) {wordCount.put(arry[i], Integer.valueOf(1));} else {wordCount.put(arry[i], Integer.valueOf(wordCount.get(arry[i]).intValue() + 1));}}}for (java.util.Map.Entry<String, Integer> j : wordCount.entrySet()) {String key = j.getKey();int value = j.getValue();Writer.append(key+" "+value+"\r\n");}//if the number of the word is 1,output the word and the number//将map.entrySet()转换成list List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(wordCount.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { //降序排序 public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { //return o1.getValue().compareTo(o2.getValue()); return o2.getValue().compareTo(o1.getValue()); } }); for (Map.Entry<String, Integer> mapping : list) { System.out.println(mapping.getKey() + ":" + mapping.getValue()); } }}
Java实现词频统计(Wordcount)-Map或Hashtable的value排序相关推荐
- Java:词频统计程序
词频统计程序(Java) 题目描述: 做一个词频统计程序,该程序具有以下功能: 基本要求: (1)可导入任意英文文本文件 (2)统计该英文文件中单词数 ...
- java 文本词频统计_Java实现中文词频统计
昨日有个中文词频统计的需求, 百度一番后, 发现一大堆标题党文章, 讲的与内容严重不符, 这里就简单记录下自己实现的流程吧! 与英文单词的词频统计不同, 中文的难点在于如何分词, 不过好在有许多优秀的 ...
- python词频统计完整步骤_python实现词频统计(wordcount)函数
作为字典(key-value)的经典应用题目,单词统计几乎出现在每一种语言键值对学习后的必练题目,主要需求: 写一个函数wordcount统计一篇文章的每个单词出现的次数(词频统计).统计完成后,对该 ...
- 【Java】java测试--词频统计 ----IO流操作
(1).新建文本文件data.txt (2) 随便输入一些英文单词,单词之间用 "空格"隔开 (3) 统计各个单词出现的次数. (4)对结果进行排序 a.按照次数进行降序 ...
- java 文本词频统计_java实现文本词频统计
File f=new File(path); Mapmap=new HashMap<>(); Version matchVersion = Version.LUCENE_31; Analy ...
- 【作业】python——小说Walden的词频统计,并从高到低排序
本文章环境为Pychram-python3.8 一·确定文件位置 确定Walden.txt文件位置 例如: 将Walden.txt与py代码文件放至同一文件夹 二·逐步前进 1. 打开文件 f=ope ...
- MapReduce实现改进版WordCount词频统计
新手入门MapReduce实现改进版WordCount词频统计 一.实验任务要求 本实验是为了实现改进版的词频统计WordCount.要求根据所给的英文名著数据集和停用词表,统计英文名著数据集中词频, ...
- Java案例:词频统计
目录 一.功能需求 二.实现思路 三.实现步骤 1.创建Java项目 - Java版词频统计
- 词频统计的java实现方法——第一次改进
需求概要 原需求 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 新需求: 1.小文件输入. 为表明程序能跑 ...
最新文章
- Android Studio 1.0 苹果电脑安装配置
- 2018 中国准独角兽 TOP 50 夏榜发布!146 家投资机构、227 家企业参与
- 详解django三种文件下载方式
- HBase的列族式存储介绍
- Google Webmaster Tools 结构化数据标记使用入门指南
- tomcat ---- web.xml
- python爬取京东数据加载失败_Python爬取京东商品数据
- php+不要科学记数,php怎么设置不用科学计数法?
- CVPR 2022数据集汇总|包含目标检测、多模态等方向
- C#如何实现一个简单的流程图设计器
- 畅聊Java异步编程
- 直播平台,直播TV介绍,对比,下载等相关信息
- sql 2005 用户 sa 登录失败
- 卷积神经网络 —— 图像识别与深度学习
- TI AWR1642学习笔记7 TSW1400采集原始数据
- 数据分析师基本技能——SQL
- 坐标西安 面试中电后端Java岗 被面试官狂问mybatis
- 麒麟V10SP1高级服务器版本操作系统离线安装docker容器技术
- 入手评测 海信65e7g pro和雷鸟65r645c 选哪个
- 有一篇文章,共有3行文字,每行有最多80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
热门文章
- Mac OSX 下高效安装 homebrew 及完美避坑姿势
- TypeScript入门教程 之 箭头函数
- TypeScript入门教程 之 for ... of 与 for ... in
- 仿微信选取图片发表朋友圈功能
- 函数式编程 -- 函数是一等公民、高阶函数、闭包
- 【Java】百钱买百鸡问题
- 漫画 |《程序员十二时辰》,内容过于真实 ...
- 【安卓开发】Webview简单使用
- C#LeetCode刷题-排序
- Linux中SDIO命令,Linux MMC/SD/SDIO体系结构