词频统计工程部分心得

 

纠结了这么多天,终于能写点字出来了,我是有多不会写东西啊。。。

一、工程开始之前

  没有着手开始码代码之前,我一直都很怀疑自己能不能在规定时间内把工程完成。在仔细思考过整个工程的实现方法后,我大致预计的使用时间为:

  ①一个主类,仅包含一个Main方法,处理和输出结果;(半小时)

  ②一个fileoperate类,顾名思义,用作文件处理,包括findallfiles方法--用队列查找出目录文件夹下的所有文件;和findwords方法--处理每个文件里的词频统计;以及output--输出结果;(主要工作,四小时——五小时)

  ③一个word类,每个词是一个word对象。(半小时)

  算上一定的debug时间,预计总共耗时会在七小时左右。

 

二、工程完成之后的时间统计

  完成之后感觉实际耗时应该比原计划少一些,主要时间当然还是花在了fileoperate类上,查找相关方法,比如说GetFiles和GetDirectory之类的。不过感觉C#还是相对比较容易上手的,有这么多可以直接调用的方法。这一部分大概用时三个半小时。

  其他部分的工作用时与预计没有太大差距。

  最省时间的是程序没有出现太大问题,所以大大减少了debug时间。

 

三、性能

  因为暂时没有装上vs2012,就不贴那个性能分析图了。

  在查找目录下所有文件的算法中,用了一个队列,个人感觉应该不会是影响性能的主要原因。。

  词频统计,用的是Split分词,目测有遗漏某些分隔符,毕竟没有状态机或者正则表达式可能做到的那么完善,但是效率应该还是能介于前两者之间的。

  至于word类,在新的需求更改以后借鉴了一下同学的方法,endword用来记录出现的单词的最小形式。

 

四、十组测试数据

  正好前几天下了一个547本英文原版名著的txt集合,就分别弄成了十组测试数据,出来的结果还是比较让人满意的,只是效率确实不高。

 

五、收获

  C#真的比较容易上手,即使原来没用过C#的人写这样一个程序也不是太困难的事,C#自带的很多方法可以帮coder解决不少问题。

  正则表达式和自动机是不错的东西,貌似应该是等价的,但是不懂为什么自动机比正则的效率高很多。

转载于:https://www.cnblogs.com/freestyle-sn/archive/2012/09/28/2703825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值