第五次作业 - 结对作业2
具体分工##
我:代码撰写与解释,流程图设计
队友: 撰写文档,代码测试与改进
PSP表格##
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) | |||||||||
Planning | 计划 | 60 | 50 | |||||||||
·Estimate | ·估计这个任务需要多少时间 | 60 | 50 | |||||||||
Development | 开发 | 800 | 710 | |||||||||
·Analysis | ·需求分析 (包括学习新技术) | 240 | 260 | |||||||||
·Design Spec | ·生成设计文档 | 120 | 80 | |||||||||
·Design Review | ·设计复审 | 60 | 40 | |||||||||
·Coding Standard | ·代码规范 (为目前的开发制定合适的规范) | 60 | 40 | |||||||||
·Design | ·具体设计 | 60 | 70 | |||||||||
·Coding | ·具体编码 | 160 | 120 | |||||||||
·Code Review | ·代码复审 | 40 | 50 | |||||||||
·Test | ·测试(自我测试,修改代码,提交修改 | 60 | 50 | |||||||||
Reporting | 报告 | 220 | 210 | |||||||||
·Test Repor | ·测试报告 | 60 | 60 | |||||||||
·Size Measurement | ·计算工作量 | 40 | 50 | |||||||||
·Postmortem & Process Improvement Plan | ·事后总结, 并提出过程改进计划 | 120 | 100 | |||||||||
合计 | 1080 | 970 |
解题思路描述与设计实现说明##
1.先识别参数,将输入的参数分类
2.进行热刺匹配,应用matcher识别热词以及不合法的词
3.将热词输出
-
爬虫使用
爬虫工具:这次爬取使用的是“八爪鱼采集器”。
进入工具页面进行爬取
输入论文网址进行爬取即可 -
代码组织与内部实现设计(类图)
-
说明算法的关键与关键实现部分流程图
关键代码解释##
for(i=1;i<args.length;i+=2)
{
String s=args[i-1];
if("-i".equals(s))fileIn=args[i];
else if("-o".equals(s))fileOut=args[i];
else if("-w".equals(s))weight=Integer.parseInt(args[i]);
else if("-m".equals(s))m=Integer.parseInt(args[i]);
else if("-n".equals(s))n=Integer.parseInt(args[i]);
}
进行识别参数
matcher=Pattern.compile("(.*?)[a-z]{0,3}[0-9]+.*?[^a-z0-9]").matcher(str+" 1 ");
while(matcher.find())
{
Matcher matcher2=Pattern.compile("([a-z]{4}[a-z0-9]*)([^a-z0-9]+)").matcher(matcher.group(1));
List<String>list=new ArrayList<String>(),list2=new ArrayList<String>();
while(matcher2.find())
{
list.add(matcher2.group(1));
list2.add(matcher2.group(2));
words++;
}
进行词语的识别和分类
性能分析与改进##
- 描述你改进的思路
- 展示性能分析图和程序中消耗最大的函数
显然消耗最大的是mat()函数,在进行识别字符串花费太大时间。后续采用map关键字查找,比顺序查找快速较多。
单元测试##
- 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路
贴出Github的代码签入记录##
- 请合理记录commit信息
遇到的代码模块异常或结对困难及解决方法##
- 问题描述
一开始在计算词频的时候选择顺序查找浪费太多时间。无效字符串识别也不知如何下手 - 做过哪些尝试
采用map关键字查找快速许多。 - 是否解决
已解决 - 有何收获
Java里有许多方便的函数可以适应于实际情况,要多了解,实践时才可以得心应手。
评价你的队友##
- 值得学习的地方
队友在做作业的时候非常的认真,可以注意到一些小细节,对于我这个粗枝大叶的人来说,遇到一个细心的队友真的非常nice。我们都渴望学习新知识,尤其是代码方面的,可以相互鼓励。 - 需要改进的地方
对于我们俩来说,代码都是一个难关,希望通过这门课可以改进这个弱点。
学习进度条
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 | |||||||
1 | 100 | 100 | 4.5 | 4.5 | 复习C++,学习java,学习git | |||||||
2 | 0 | 300 | 8 | 3 | 学习前端设计 |