第一次作业----词频统计
2016-09-06 16:14
274 查看
一 实现主要功能:
统计一篇英文文章的单词出现的频数并输出到文件。
二 处理流程:
1. 读入要分析的文件,从给定文件中获取单词信息,并存储到字串中。
2. 对字串进行预处理,包括标点符号的处理,多空格的处理。
3. 对处理后的字串进行分割,遍历,统计词频。
4. 将词频统计结果写入到指定的文件中。
三 代码实现(JAVA语言实现)
四 执行效果
1. 输入:要统计的文件word.txt,如下:
2. 输出:保存到result.txt,result.txt内容如下:
统计一篇英文文章的单词出现的频数并输出到文件。
二 处理流程:
1. 读入要分析的文件,从给定文件中获取单词信息,并存储到字串中。
2. 对字串进行预处理,包括标点符号的处理,多空格的处理。
3. 对处理后的字串进行分割,遍历,统计词频。
4. 将词频统计结果写入到指定的文件中。
三 代码实现(JAVA语言实现)
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class WordStatistics { public void getWordRate(String sourceFileName) { try { // 从给定文件中获取单词信息,并存储到字串中 String allWords = getFileWords(sourceFileName); // 将字符串转换成小写 allWords = allWords.toLowerCase(); allWords = allWords.replaceAll("[^A-Za-z]", " "); allWords = allWords.substring(4); allWords = allWords.replaceAll("\\s+", " "); // 将字串进行分割,存储到字符串数组 String[] singleWord = allWords.split("\\s+"); // 进行词频统计,将统计结果放到Map里,key为单词,value为单词出现的次数 Map<String, Integer> wordsMap = new HashMap<String, Integer>(); for (int i = 0; i < singleWord.length; i++) { String key = singleWord[i]; if (wordsMap.get(key) != null) { // 如果该单词已经存在map中,则对应的单词次数加1 int value = ((Integer) wordsMap.get(key)).intValue(); value++; wordsMap.put(key, new Integer(value)); } else { // 如果单词不在map中,则将该单词放入,初始化词频次数为1 wordsMap.put(key, new Integer(1)); } } // 将词频统计结果写入到指定的result.txt中 BufferedWriter bw = new BufferedWriter(new FileWriter(new File( System.getProperty("user.dir") + "//result.txt"))); for (String key : wordsMap.keySet()) { bw.append((key + " : " + wordsMap.get(key))); // 追加换行 bw.newLine(); } bw.close(); } catch (IOException e) { e.printStackTrace(); } } private String getFileWords(String sourceFileName) { // 从给定文件中获取单词信息,并存储到字串中 String allWords = null; try { BufferedReader br = new BufferedReader(new FileReader(new File( System.getProperty("user.dir") + "//" + sourceFileName))); String tmp = null; while ((tmp = br.readLine()) != null) { // 读出每一行,并加入到allWords allWords += tmp; } br.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return allWords; } public static void main(String[] args) { WordStatistics ws = new WordStatistics(); ws.getWordRate("word.txt"); } }
四 执行效果
1. 输入:要统计的文件word.txt,如下:
2. 输出:保存到result.txt,result.txt内容如下:
相关文章推荐
- 第一次作业 词频统计
- 第一次作业词频统计
- 软件工程第一次作业词频统计
- 词频统计作业--第一次软工作业
- 第一次作业词频分析之王熹篇
- 作业4:结对编程—词频统计
- 软件工程作业--词频统计
- 个人作业——词频统计
- 作业3-个人项目<词频统计>
- 作业4:结对项目—— 词频统计
- 第一次作业词频分析之王泓洋篇
- 软件工程第二次作业 - 词频统计
- 第二周作业-词频统计
- 作业4.2:结对项目—— 词频统计(第二阶段)
- 作业4 词频统计2
- 成电UNIX编程作业三部曲---第二曲多进程协同的词频统计
- 作业3:个人项目-词频统计
- 作业三:词频统计
- 【week2】 词频统计第一次更新
- 【第二周】【作业八】个人项目词频统计++