Java实现的一个词频统计程序
2016-10-24 19:56
507 查看
[java] view
plain copy
import java.util.HashMap;
import java.util.Iterator;
public class WordCount {
public static void main(String[] args) {
String[] text=new String[]{"the weather is good ","today is good","today has good weather","good weather is good"};
HashMap<String, Integer> hashMap=new HashMap<String, Integer>();
for (int i=0;i<text.length;i++){
String temp=text[i];
String[] words=temp.split("\\s");
for(int j=0;j<words.length;j++){
if(!hashMap.containsKey(words[j])){
hashMap.put(words[j], new Integer(1));
}else{
int k=hashMap.get(words[j]).intValue()+1;
hashMap.put(words[j], new Integer(k));
}
}
}
Iterator iterator=hashMap.keySet().iterator();
while(iterator.hasNext()){
String word=(String) iterator.next();
System.out.println(word+":"+hashMap.get(word));
}
}
}
[java] view
plain copy
改进版:
[java] view
plain copy
<pre name="code" class="java">package jdbcExc;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;
public class WordCount1 {
public static void main(String[] args) {
//用HashMap存放<单词:词频>这样一个映射关系
HashMap<String, Integer> hashMap=new HashMap<String, Integer>();
//用正则表达式来过滤字符串中的所有标点符号
String regex = "[【】、.。,\"!--;:?\'\\]]";
try {
//读取要处理的文件
BufferedReader br=new BufferedReader(new FileReader("F:\\file80.txt"));
String value;
while((value=br.readLine())!=null){
value=value.replaceAll(regex, " ");
//使用StringTokenizer来分词(StringTokenizer详见JDK文档)
StringTokenizer tokenizer = new StringTokenizer(value);
while(tokenizer.hasMoreTokens()){
String word=tokenizer.nextToken();
if(!hashMap.containsKey(word)){
hashMap.put(word, new Integer(1));
}else{
int k=hashMap.get(word).intValue()+1;
hashMap.put(word, new Integer(k));
}
}
}
//遍历HashMap,输出结果
Iterator iterator=hashMap.keySet().iterator();
while(iterator.hasNext()){
String word=(String) iterator.next();
System.out.println(word+":\t"+hashMap.get(word));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
plain copy
import java.util.HashMap;
import java.util.Iterator;
public class WordCount {
public static void main(String[] args) {
String[] text=new String[]{"the weather is good ","today is good","today has good weather","good weather is good"};
HashMap<String, Integer> hashMap=new HashMap<String, Integer>();
for (int i=0;i<text.length;i++){
String temp=text[i];
String[] words=temp.split("\\s");
for(int j=0;j<words.length;j++){
if(!hashMap.containsKey(words[j])){
hashMap.put(words[j], new Integer(1));
}else{
int k=hashMap.get(words[j]).intValue()+1;
hashMap.put(words[j], new Integer(k));
}
}
}
Iterator iterator=hashMap.keySet().iterator();
while(iterator.hasNext()){
String word=(String) iterator.next();
System.out.println(word+":"+hashMap.get(word));
}
}
}
[java] view
plain copy
改进版:
[java] view
plain copy
<pre name="code" class="java">package jdbcExc;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;
public class WordCount1 {
public static void main(String[] args) {
//用HashMap存放<单词:词频>这样一个映射关系
HashMap<String, Integer> hashMap=new HashMap<String, Integer>();
//用正则表达式来过滤字符串中的所有标点符号
String regex = "[【】、.。,\"!--;:?\'\\]]";
try {
//读取要处理的文件
BufferedReader br=new BufferedReader(new FileReader("F:\\file80.txt"));
String value;
while((value=br.readLine())!=null){
value=value.replaceAll(regex, " ");
//使用StringTokenizer来分词(StringTokenizer详见JDK文档)
StringTokenizer tokenizer = new StringTokenizer(value);
while(tokenizer.hasMoreTokens()){
String word=tokenizer.nextToken();
if(!hashMap.containsKey(word)){
hashMap.put(word, new Integer(1));
}else{
int k=hashMap.get(word).intValue()+1;
hashMap.put(word, new Integer(k));
}
}
}
//遍历HashMap,输出结果
Iterator iterator=hashMap.keySet().iterator();
while(iterator.hasNext()){
String word=(String) iterator.next();
System.out.println(word+":\t"+hashMap.get(word));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- Java实现的一个词频统计程序
- java实现词频统计程序
- 一个用Dijkstra算法实现的路由算法的java程序——9 图信息文件示例
- 一个java实现的简单文件下载程序
- 求助 用java写一个实现键盘功能按钮的小程序
- 用java实现的一个简单的定时报警程序
- 一个用Dijkstra算法实现的路由算法的java程序——5 GraphShow类
- 一个用Dijkstra算法实现的路由算法的java程序——1 GraphAdjList类
- JAVA实现的一个冒泡程序(面试常考)
- 一个Java实现的图像用户界面小程序,文本域,滚动条,按钮,问本行,看截图
- java 程序里如何实现从一个列表中拖动一个元素到另一个列表中?
- 一个用Dijkstra算法实现的路由算法的java程序——8 GraphMain类
- 利用IO的知识,实现一个程序列出某个目录下的所有的”.java”文件。
- 一个用Dijkstra算法实现的路由算法的java程序——6 STDijkstraAdv类
- 用Java实现一个简单的服务器与客户端程序
- 用Java Swing程序实现的一个中药信息查询程序
- 用java实现的一个简单web服务器程序
- 一个用Dijkstra算法实现的路由算法的java程序——4 MapCanvas类
- 复制一个文件夹中的所有文件和文件夹的java程序实现
- Java程序,一个实现Enumeration的组合类