一、序
作业【https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922】是一个关于词频统计的作业。什么叫词频统计呢?词频统计就是输入一些字符串(手动输入或者从指定的文件读取),用程序来统计这些字符串中总共有多少个单词,每个单词出现的次数是多少,单词的总数(记作Total)为不重复的单词数总和。目前只针对英文单词进行统计,不考虑中文。
二、相关博客链接
- 一些与词频统计功能要求相关的博客
博客1:邹欣老师【http://www.cnblogs.com/xinz/p/6100228.html】
博客2:14网络工程(广州商学院)【https://edu.cnblogs.com/campus/gzcc/14NetworkEngineering/homework/974】【https://edu.cnblogs.com/campus/gzcc/14NetworkEngineering/homework/948】
博客3:15信管1班(广州商学院) 【https://edu.cnblogs.com/campus/gzcc/15MIS1/homework/979】【https://edu.cnblogs.com/campus/gzcc/15MIS1/homework/959】
博客4:Java-网络工程2015(集美大学)【https://edu.cnblogs.com/campus/jmu/NE2015/homework/493】
总结:上述博客并未给出单词的明确定义,对分词的规则也没有做明确要求。 - 一些与词频统计技术实现相关的博客
博客A:【http://xinyo.org/archives/65406/】【java】
博客给出了非常详细的实现思路以及对代码分模块进行解释,提供了相关资源下载。
博客B:【http://blog.csdn.net/lyb3b3b/article/details/75098778】【python】
博客写的很详细,解题思路以及源码在博文中都叙述的非常清楚。
博客C:【http://www.iaccepted.net/algorithm/noclass/99.html】【python】
博客给出了实现思路以及源码。
博客D:【http://blog.csdn.net/hjtl1992/article/details/21572521】【c】
博客给出了实现思路以及源码。
博客E:【http://blog.csdn.net/xuqi7/article/details/51473012】【java】
博客给出了简单的分析以及源码。
博客F:【http://blog.csdn.net/xxingup/article/details/5676537】,【c++】
博客代码是用于英文词频统计,直接在博客中给出代码,未给出思路。代码能够运行,能对控制台输入的一段英文进行基础的词频统计。但是对同一单词复数、不同时态以及省略词未进行处理。
博客G:【http://www.cnblogs.com/coskaka/articles/5965091.html】【python】
博客H:【https://zhuanlan.zhihu.com/p/20892848】【python】
直接给出源码的git地址,没有详细的实现思路。
三、注意的点
(1)一个字符串满足什么样的规则才算一个单词?
常规情况下,从26个字母[a~z]的大写或者小写形式中选择N个字符组成的字符串可以称为一个单词,除此之外的字符都可以认为是不合法或者特殊字符,比如各种标点符合(,。等)、美元符号($)等都应该被程序过滤。
(2)如何对单词的大小写、单/复数、时态进行处理?
拿动词do为例子,do的不同时态有doing,done以及did,do首字母大写为Do或者所有字符都大写为DO,而名词apple的复数为apples。那么do和它不同时态的形式是算作一个单词吗?Do/DO与do算一个单词吗?名词apple的复数apples与apple算作一个单词吗?这些细节也是需要教师在布置词频统计作业时应该注意的地方。
(3)对形如she's,we're,I've这类省略写法的字符串如何处理,算一个单词,还是拆开算两个单词?
通过word对“she's a girl”进行单词统计,会得到三个单词。因此可以推测形如she's的省略词组在word中算作一个单词。当然,如果,规定she's这类省略词组应该拆开为she和is,这也是合理的。
(4)连字符“-”这类单词算一个单词,还是两个单词?
通过word对“long-distance telephone”进行单词统计,会得到两个个单词。因此可以推测在word中连字符“-”连接的N个单词算作一个单词。同样如注意点(3),如果强制要求连字符“-”连接的N个单词不能算作一个整体,同样合理。