java统计词频算法_Java实现的词频统计——功能改进

该博客介绍了对Java实现的词频统计算法的改进,包括从控制台输入、命令行参数支持、批量统计目录下的文件,以及按词频降序排列和同频率单词升序排列。还解决了大文件统计时的输出问题,并提供了代码实现。
摘要由CSDN通过智能技术生成

本次改进是在原有功能需求及代码基础上额外做的修改,保证了原有的基础需求之外添加了新需求的功能。

功能:

1. 小文件输入——从控制台由用户输入到文件中,再对文件进行统计;

2.支持命令行输入英文作品的文件名;

3.支持命令行输入存储有英文作品文件的目录名,批量统计;

4.从控制台读入英文单篇作品,重定向输入流。

实现:

1.判断输入方式,如果从命令行传递参数则直接对文件进行统计;如果未传递参数,其方式同控制台相同,由用户从标准输入流输入到文件,再对文件进行词频统计。这里如果传入文件路径时会对其是否是文件夹进行判断,如果是文件夹,则对其目录中的文件进行统计。

if (args.length == 0) {

Scanner in = new Scanner(System.in);

FileWriter out = new FileWriter("Content.txt");

System.out.println("请输入内容,最后以Q结束:");

while (in.hasNext()) {

out.write(in.nextLine()+"\r\n");

}

out.close();

in.close();

new FileProccessing("Content.txt");

}

for (int i = 0; i < args.length; i++) {

String FileName = args[i];

File fs = new File(FileName);

if (fs.isDirectory()) {

File[] filelist = fs.listFiles();

for (int n = 0; n < filelist.length; n++) {

new FileProccessing(filelist[n].getAbsolutePath());

}

} else {

new FileProccessing(FileName);

}

}

2.对ByValueComparator类做了修改,使其能够按词频降序排列的同时,对同频率的单词进行升序排列。

public class ByValueComparator implements Comparator> {

Map hashmap;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值