Java实现的词频统计——单元测试

  前言:本次测试过程中发现了几个未知字符,这里将其转化为十六进制码对其加以区分。

    1)保存统计结果的Result文件中显示如图:

      

    2)将其复制到eclipse环境下的切分方法StringTokenizer中却没有显示;

      复制前:

      

      复制后:

      

      前后看似没有任何变化;

    3)改动后的统计结果:

      

    因此为了检测这个字符做了一个将其转化为十六进制码的小程序:

 1         String t = "\0";
 2         String s = "\0";
 3         byte[] bbb = t.getBytes();
 4         int[] n = new int[bbb.length];
 5         for (int i = 0; i < n.length; i++) {
 6             n[i] = bbb[i] & 0xff;
 7         }
 8         for (int j = 0; j < n.length; j++) {
 9             System.out.println(Integer.toString(n[j], 0x10));
10         }
11         System.out.println("-----------------");
12         byte[] b = s.getBytes();
13         int[] in = new int[b.length];
14         for (int i = 0; i < in.length; i++) {
15             in[i] = b[i] & 0xff;
16         }
17         for (int j = 0; j < in.length; j++) {
18             System.out.println(Integer.toString(in[j], 0x10));
19         }

    运行结果如下:

    

    从结果可以看出,这个未知字符是由三个字符组成,而类似的难以识别的字符还有很多。

    此外,在做单元测试之前还做了一项额外的测试——read()方法读取文件时单次读取的字符数量对效率的影响:

    选取了从1-128、129-256、257-384、385-512四个范围,分别进行了测试。

    总测试次数2560次,耗时10min左右,统计结果:

    当取值在200左右时运行速率最快,平均值在210ms左右.

单元测试

  1.

  

时间: 2024-11-03 22:37:10

Java实现的词频统计——单元测试的相关文章

Java实现的词频统计——Web迁移

本次将原本控制台工程迁移到了web工程上,依旧保留原本控制台的版本. 需求: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件: 2.在页面上给出链接 (如果有封皮.作者.字数.页数等信息更佳)或表格,展示经典英文小说词频统计结果: 3.支持用户自定义单词分隔符: 4.词汇范围对比(额外项). 实现: 1.迁移至web工程中,支持用户手动选择txt文件上传: 2.用户提交之后,会在后台运行词频统计函数,并且将统计结果的前10项打印到屏幕上: 3.统计结果文件Result.txt可以进

词频统计单元测试

我这次用构造单词树的形式进行词频统计,此次的任务是对已有的程序进行单元测试.选用的工具是JUnit.它是基于测试驱动开发(TDD)原理的. 此次词频统计的主体思想是,每次读入文章中的128(自己设定)个字符(目的是防止溢出),将这些字符存储到一颗树中,树中的节点有一个存储词频的变量和一个指向子节点的数组(类似于c语言中的指针).最后遍历整棵树,按照词频进行排序. 下面是我的片段代码 下面这段代码是定义的节点的结构 class CharTreeNode{ int count=0; CharTree

Java实现的词频统计——功能改进

本次改进是在原有功能需求及代码基础上额外做的修改,保证了原有的基础需求之外添加了新需求的功能. 功能: 1. 小文件输入——从控制台由用户输入到文件中,再对文件进行统计: 2.支持命令行输入英文作品的文件名: 3.支持命令行输入存储有英文作品文件的目录名,批量统计: 4.从控制台读入英文单篇作品,重定向输入流. 实现: 1.判断输入方式,如果从命令行传递参数则直接对文件进行统计:如果未传递参数,其方式同控制台相同,由用户从标准输入流输入到文件,再对文件进行词频统计.这里如果传入文件路径时会对其是

Java实现的词频统计

要求: 1.读取文件: 2.记录出现的词汇及出现频率: 3.按照频率降序排列: 4.输出结果. 概要: 1.读取的文件路径是默认的,为了方便调试,将要统计的文章.段落复制到文本中即可:2.只支持英文:3.会按照词汇出现的频率降序排列. 实现: 1.使用FileReader.BufferedReader读取文件: 2.采用StringTokenizer进行字符分割: 3.用hashmap保存统计数据: 4.自定义一个类用来实现按value排序: 5.输出结果. 默认路径文件: 1 String f

【week3】词频统计 单元测试

使用Eclipse 集成的Junit进行单元测试.单元测试的核心包括断言.注解. 测试代码如下: @BeforeClass // 针对所有测试,只执行一次,且必须为static void public static void setUpBeforeClass() throws Exception { System.out.println("in BeforeClass================"); } @AfterClass // 针对所有测试,只执行一次,且必须为static

词频统计单元测试--------第二版

在上一次的单元测试的基础上,我单独写了一个测试类对 单词树进行遍历的方法sortAndOutput() 进行测试,下图是这个方法的展示,他返回的是一个Map,Map里面存的是对应的单词以及其出现的次数. /* * 对文章用generateCharTree()函数生成单词树,在对生成的单词树进行排序并且输出 */ public Map sortAndOutput(String filePath) throws IOException { reader = new FileReader(filePa

java实现文本词频统计

File f=new File(path); Map<String,Integer>map=new HashMap<>(); Version matchVersion = Version.LUCENE_31; Analyzer analyzer = new StopAnalyzer(matchVersion); BufferedReader br = new BufferedReader(new FileReader(f));//读取文件 TokenStream ts = anal

java词频统计——改进后的单元测试

测试项目 博客文章地址:[http://www.cnblogs.com/jx8zjs/p/5862269.html] 工程地址:https://coding.net/u/jx8zjs/p/wordCount/git ssh://[email protected]:jx8zjs/wordCount.git 测试用例: 1. 1 My English is very very pool 2.地址 [http://www.gutenberg.org/files/2600/2600-0.txt] 待测单

词频统计-单元测试

我自己的单元测试没有弄出来,我用c编的,在visual studio中貌似实现不了单元测试,而李俞寰同学是用c#编写的词频统计,在vs2015中实现单元测试无比的方便,所以我请教了他并借鉴了一下. [TestMethod()] public void DictionarySortTest() { Dictionary<string,int>input=new Dictionary<string,int>() { {"you,1}, {"are",1},