码迷,mamicode.com
首页 > 其他好文 > 详细

201671030119 词频统计软件项目报告

时间:2019-03-20 01:08:30      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:develop   src   style   文本文件   ++   基本   名称   roc   ali   

项目名称:词频统计软件

源码

需求分析

- 使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发
- 软件基本功能要求如下:
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。
3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。
4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt

功能设计

基本功能:  
1.指定单词词频统计功能;
2.高频词统计功能;
3.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt
扩展功能:无

测试运行

  • 将单词及词频数按字典顺序输出到文件result.txt
    技术图片

  • result.txt:
    技术图片

  • 指定单词词频统计
    技术图片

  • .高频词统计功能
    技术图片

部分代码

循环Map使用set接受返回的值,后遍历查询与输入单词相同的单词,输出单词以及词频。

for(int i=0;i<n;i++)
{
    System.out.println("单词 "+(i+1));
    String word = in.next();
    Set<StringBuffer> ks1 = ts.keySet();
    for(StringBuffer s2:ks1) 
    {
        if(word.equals(s2.toString()))
        {
            System.out.println("单词:"+s2.toString()+"            出现次数:"+ts.get(s2));
            num++;
            if(num==n)
                break;
        }   
    }
}

将文本文件中的单词存于lists,遍历lists将单词存放在treeMap ts与hashMap之中。借助treeMap特性完成单词的排序和 词频的统计,而hashMap是关于最高词频的统计。

Map<String, Integer> hashMap = new HashMap<String, Integer>();
        for(String str: lists) 
        {
            StringBuffer s2 = new StringBuffer( str);
            
            if (ts.containsKey(s2)) {
                count=Integer.parseInt(Integer.toString(count));;
                count++;
                ts.put(s2,Integer.toString(count));
                hashMap.put(str,count);
            }
            else {
                count=1;
                ts.put(s2, Integer.toString(count));
                hashMap.put(str,count);
            }    
        }

总结

此次软件项目个人开发项目让我对软件开发有了更深刻的理解,一个完整的软件开发过程中,任何一个步骤都是不可缺少的。在开始此次软件开发后,我先是进行了软件的需求分析,将老师的要求全部理解以后开始设计,完成设计后我才知道原来一个好的设计可以将一个软件所有的东西都呈现在我们的眼前。在之后开始了代码的编写,毕竟不是老练的的程序员,代码的编写还是没有流程中说的那么简单,在经过挺长时间的编程后,软件呈现了出来,经过测试,实现了大部分功能,还有柱状图功能因为编码能力差了点没有实现。经过这一个完整的个人开发流程,我发现虽然编码前花费了很多时间进行一些前期设计,但因为它们的存在,编程世没有花费时间去想功能、数量、数据结构以及算法,在所有的一切准备好之后开始写代码,真的会很舒心,这大概是我这一次设计最重要的收获了。

PSP:

PSP 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 10 5
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 5 5
Development 开发 80 100
Analysis 需求分析(包括学习新技术) 6 8
Design Spec 生成设计文档 10 20
Design Review 设计复审 5 5
Coding Standard 代码规范(为目前的开发制定合适的规范) 5 5
Design 具体设计 10 20
Coding 具体编码 60 90
Code Review 代码复审 5 10
Test 测试(自我测试,修改代码,提交修改) 10 20
Reporting 报告 5 5
Test Report 测试报告 5 5
Size Measurement 计算工作量 0 0
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 5

201671030119 词频统计软件项目报告

标签:develop   src   style   文本文件   ++   基本   名称   roc   ali   

原文地址:https://www.cnblogs.com/tanggq/p/10558080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!