# Word Frequency Statistics **Repository Path**: satelliter63/experiment_01 ## Basic Information - **Project Name**: Word Frequency Statistics - **Description**: 实现文章字词统计,支持停用词,不同英文单词形式的归一化,支持多文件处理,控制台进度提示等功能 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-19 - **Last Updated**: 2022-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java ## README # 个人项目作业 - 实验01 ![Java](https://img.shields.io/badge/Java-OpenJDK_15-green) ![ID_CODE](https://img.shields.io/badge/学号-2019166103-blue) ------ ## 项目功能 (Word Frequency) ​ 统计一个txt文档中的字母频率,单词频率,以及词组频率 ### 目前支持的功能有: - 结果输出至 `Results` 文件夹下保存为txt,便于查看 - 支持指定词组长度的统计,例如只统计3单词组成的词组 - 支持指定文档下所有文件,例如指定路径 '/myPath' - 支持输出排名靠前的前n个数据,例如只输出单词频率最大的前100个单词 - 支持去除指定的单词,比如去除"a","an", "the"等(需要去除的单词请先填写入停词表中) - 支持对动词不同形态的归一化,比如"have" "has" "had"将会被视作同一个单词进行统计 - 支持控制终端输出当前任务进度,对于较大文档,可在控制终端查看任务进行百分比 ------ ## 项目依赖 ### 关于动词形式的变化功能 - 对于不规则动词的变化,采用对 `irregularVerbs.txt` 文件内容构建哈希Map的方法,进行动词变化形式的还原 - 对于规则变化的动词,采用第三方jar包:`EnglishConvert_fat.jar` 来进行自动转换,包目录为`lib` ------ ## 使用样例 ### 对单词进行统计 - 指定某个txt文件,并输出单词频率统计 ``` WF -f one.txt WF -f testPath test1.txt ``` - 对指定的文件输出频率前10高的单词 ``` WF -f one.txt -n 10 ``` ### 对目录下的文件进行统计 - 对指定目录下的所有文件进行单词频率统计 ``` WF -d testPath ``` - 对指定目录下的所有文件(包括子目录) ``` WF -d testPath -s ``` - 也可以对目录下的每个文件指定输出前n个频率较高的单词 ``` WF -d testPath -n 3 -s ``` ### 使用停词表 - 可以添加-x参数,此时参考根目录下的 `stopwords_en.txt` 文件,在该文件中添加需要排除的单词,-x支持-f 或者 -d命令 ``` WF -f testPath/next/one/one.txt -x WF -d testPath -s -x ``` ### 对于词组的统计 - (注意:需要指定筛选词组的单词组成个数 n ) 对某个文件进行包含 n 个单词组成的词组的统计,下例中可以筛选出 `the front of` 而排除` go ahead`等词组 ``` WF -f test.txt -p 3 ``` ### 动词归一化 - 由于英文中动词拥有多种时态的变形,所以-v参数可以让所有变形的动词归一化为原形再统计 对某一个文件中所有单词进行动词归一化后再统计 ``` WF -f one.txt -v ``` - 对某个文件中,所有长度为3个单词组成的词组,进行归一化后,再排出前两个的高频词组参数样例 ``` WF -f verb_phrase_test.txt -p 3 -n 2 -v ``` - 对某个文件夹下的所有文件(不包括子目录),进行归一化动词操作后,输出使用率前10高的高频单词 ``` WF -d testPath -n 10 -v ``` ------ ## 进度记录 ### 9月21日: > 1. 完善对于词组的切割与统计,支持对词组进行排序,以及输出前n个高频词组功能 > 2. 完成对动词的归一化,并且对接到对单个文件的操作,对文件目录的操作,以及对词组中动词的归一化 ### 9月20日: > 1. 实现输出结果保存至默认工程下的"WF_XXX_result.txt"文件,而不是控制台 > 2. 实现对指定文件的单词频率统计, 即 -f 功能,暂且不支持目录,只能访问默认工程目录下的.txt文件 > 3. 实验指定前n个最常出现的英语单词功能 > 4. 完成对于指定目录或者子目录的遍历 即 -d 以及 -d -s操作,并且将处理后的频率文件统一保存至 `Results` 文件夹下 > 5. 支持使用停词表,可以去除英文中不需要统计的'a','an'等词汇,但是不支持指定任意停词表,请查看根目录下文件 "stopwords_en.txt" > 6. 初步完成词组的切割与统计(但是今天这个版本存在多余非字母字符被错误统计问题!) ### 9月19日: > 1. 初步完成 WF -c功能,不支持 -f 自定义文件,默认以one.txt为对象