资源简介

该程序是一个java的中文汉字字频统计,从诸如txt文件中读取语料,然后生成一个前100个高频汉字的字频统计结果的txt文件,并且还会生成前100、200、600、2000、等汉字的字频和的另一个txt文件。该程序是借用treeMap来实现数据的储存的,很方便。输入语料文件名时是要输入全名的,例如:E:\1.txt

资源截图

代码片段和文件信息

import java.util.*;
import java.io.*;
import java.math.*;

public class Tongji implements Comparatorject>
{
private static TreeMap treeMap = new TreeMap();
public static int totalNum = 0;
public static int totalKind = 0;
public static float sum1 sum20 sum100 sum600;
public static float sum2000 sum3000 sum6000;
public static float shang;
public int compare(object o1 object o2) 
{
// TODO Auto-generated method stub
return -((Map.Entry)o1).getValue()+((Map.Entry)o2).getValue();
}
public static void main(String[] args)throws Exception
{
System.out.println(“请输入文件名称:“);
Scanner sc  = new Scanner(System.in);
String fileName = sc.nextLine();

BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while((line = reader.readLine())!=null) 
{
for(int i = 0;i {
                    char c = line.charAt(i);
if((c>=0x4e00)&&(c<=0x9fbb))
{
totalNum ++;
String cStr = String.valueOf(c);
if(treeMap.containsKey(cStr))
{
treeMap.put(cStr treeMap.get(cStr)+1);
}
else
{
treeMap.put(cStr 1);
totalKind ++;
}
}
}
}
object []stats = treeMap.entrySet().toArray(); //用Arrays类的静态方法为treeMap按字频排序
Arrays.sort(statsnew Tongji());
Listject> list = Arrays.asList(stats); //转成List以便排序

FileWriter writer1 = new FileWriter(fileName+“—前100汉字统计结果.txt“); //输出前100个汉字
writer1.write(“汉字总数\t= “+totalNum+“\r\n“);
writer1.write(“汉字种数\t= “+totalKind+“\r\n“);
writer1.write(“*************************\r\n“);
writer1.write(“前100汉字高频字的频率统计结果\r\n“);
writer1.write(“序号       汉字 = 个数         字频\r\n“);
int lastFreq = -1;

评论

共有 条评论