365菠菜中文

词频统计

1)
回顾过去的一天,我写了这份设计报告。
在我开始编写项目之前,我做了一些主要与C ++语言相关的修复和测试。我以前学过它,但我没有使用过该机器的经验,但使用它并不熟悉。
第二个是算法的设计。计算单词的频率并不困难。虽然可以使用地图来完成,但计算句子很麻烦。您可以应用单词的统计频率方法,但由于只需要所需的单词,因此存储空间和时间的成本将非常大。
因此,需要进行一些优化。我的优化方法是预先删除一些短语。
具体而言,有序集按外观的降序绘制。每次添加一个新的句子的时间,2(或3)句子的频率最小值minFreq字首先被验证,验证第10个字组中的,短语tenthFreq的出现次数进行比较。在minFreqtenthFreq的情况下,新发现的短语(短语targetFreqminFreq的出现次数)不是最常用的短语。
该项目分为以下子过程,括号中的时间是假定您熟悉C / C ++所需的时间。
1
它跟随给定目录并返回一个字符串数组(10m)18_findFirst_findNext2,它匹配所需文本文件的绝对路径。
获得了这个词,通过设定词频统计图(20米)17ifstream +函数getline,读取每个文本文件中的字频率映射统计的每行按顺序由一对向量的实现由字??频率3分拣。
获取短语并设置一组有序的短语出现(60 m)120对+列表4。
具有关键功能(30米)的线程在完整的程序5中进行了总结。
测试和调试(120米)创建10个测试用例6。
性能分析(60米)
2)
每个功能模块的功能实时为1。
参观目录:18平方米。
获取单词并设置单词频率统计图。
获取一个句子并设置一组有序的短语120 m(未实现)
每个子过程都组装有一个60米的完整程序。由于统计短语的设计不正确,很多时间都会丢失,最后,它的使用方式与统计单词相同。
测试和调试:创建十个测试用例需要很长时间,因为算法经常被调整,并且几天的C ++类被误用于一天的测试。
性能分析(2小时)
3)
就在上面,VS11安装目录中的Common7统计信息
第一版分析的结果如下图所示。
没有性能分析功能,我不知道瓶颈是否真的包含在正则表达式中。
所以我写了一堂课来阅读我自己的文字,结果的速度提高了几个数量级。第二版 - 分析下一个
我修正了瓶颈。
但是,Add可以重新优化。我在C ++中使用地图。在此地图中,没有改进的余地,因为使用了红黑树结构而不是高速哈希。
4)
我使用了所有其他测试用例,因为时间很累。
我稍后会添加它。
5)
丰收
首先,我练习用C ++编写项目。我在学期学习了C ++,但是我并没有安排很多。他们忘了许多理论上的东西学习语言的最佳方法是自己编写。
第二个用于VS的使用,我从一年级开始使用VS,但直到现在我已经知道如何使用性能分析而我正在等待很多强大的我认为有一个功能。
当然,我记录了这个项目中发现的许多问题。
问题1类型A包含根据构造函数的最后一个字符串参数s构造r的方法,正则表达式r的成员。在目前的做法中,替换以下内容。regextemp(s); r =温度。类对象问题2A需要调用类BLa。该方法的当前实践如下。您将类B对象称为类A的成员,并在调用类A构造函数时传递类B对象问题3无法在头文件中定义函数。发生重新定义错误。4在调试期间发出了一些建议。调试后,这些输出语句将批量注释掉。有没有可以实现此功能的宏?

浏览过本文章的用户还浏览过