「计算词频java」计算词频关联度的方法

博主:adminadmin 2022-11-21 14:35:06 115

今天给各位分享计算词频java的知识,其中也会对计算词频关联度的方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java程序:统计单词词频,

不多说,先看代码:

import java.util.*;

import java.io.*;

public class wordsRate {

public static void main(String[] args) throws Exception {

BufferedReader infile = new BufferedReader(new FileReader("article.txt"));

String string;

String file = null;

while ((string = infile.readLine()) != null) {

file += string;

}

file = file.toLowerCase();

file = file.replaceAll("[^A-Za-z]", " ");

file = file.replaceAll("\\s+", " ");

String words[];

words = file.split("\\s+");

MapString, Integer hashMap = new HashMapString, Integer();

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

String key = words[i];

if (hashMap.get(key) != null) {

int value = ((Integer) hashMap.get(key)).intValue();

value++;

hashMap.put(key, new Integer(value));

} else {

hashMap.put(key, new Integer(1));

}

}

MapString, Object treeMap = new TreeMapString, Object(hashMap);

MapString, Object treeMap1 = new TreeMapString, Object(hashMap);

BufferedWriter bw = new BufferedWriter(new FileWriter("result.txt"));

//下面是我改动的你的代码:

Iterator iter = treeMap.entrySet().iterator();

//定义两个新的数组ss1和ss2,数组长度就是hashMap的长度,里面放分别是hashMap的value和key

String ss1[]=new String[treeMap.size()];;

int ss2[]=new int[treeMap.size()];

int i=0;

while (iter.hasNext()) {

Map.Entry entry = (Map.Entry) iter.next();

int val = (Integer)entry.getValue();

String key =(String) entry.getKey();

ss1[i]=key;

ss2[i]=val;

i++;

}

//下面将ss1数组进行排序,并将其与ss2数组的内容相对应起来

int sValue=0;

String sKey="";

for(int j=0;jss2.length;j++){

for(int k=0;ki;k++){

if(ss2[j]ss2[k]){

sValue=ss2[j];

sKey=ss1[j];

ss2[j]=ss2[k];

ss1[j]=ss1[k];

ss2[k]=sValue;

ss1[k]=sKey;

}

}

}

for(int j=0;jss2.length;j++){

System.out.println(ss1[j]+"="+ss2[j]);

bw.write(ss1[j]+"="+ss2[j]);

bw.newLine();

bw.flush();

}

}

}

代码是本人自己写的,也经过了自己的验证,肯定没问题,希望采纳。

功能实现了,我是将其key和value值放在了数组之中,然后进行排序,将其输出到了txt文件里

排序方式不一样,实现的方式也不一样,所谓仁者见仁智者见智。

java计算一篇英文文档词频 并按出现次数从高到低输出(以下基础上补充)谢谢!

String result = sb.toString();

String[] Str = result.split("[^A-Za-z0-9]"); //quanbu

for(String string:Str){

singleSet.add(string);

if("".equals(string)){ //这里是我加的,去除空格次数的处理

singleSet.remove("");

}

}

MapString, Integer map=new HashMapString, Integer();

for (String childString : singleSet){

int count=0;

for(String fatherString : Str){

if(fatherString.equals(childString)){

count++;

}

}

map.put(childString, count); //存储在hashmap中

}

ArrayListEntryString,Integer l = new ArrayListEntryString,Integer(map.entrySet());

Collections.sort(l, new ComparatorObject(){

public int compare(Object e1, Object e2){

int v1 = Integer.parseInt(((EntryString,Integer)e1).getValue().toString());

int v2 = Integer.parseInt(((Entry)e2).getValue().toString());

return v2-v1; //改为v1-v2就是从小到大了

}

});

for (EntryString, Integer e: l){

System.out.println(e.getKey()+" "+e.getValue());

}

代码仅供参考!希望对你有用

「计算词频java」计算词频关联度的方法

java词频统计

在Java里面一个File既可以代表一个文件也可以代表一个目录(就是你所说的文件夹). 因此你可以直接把一个文件夹的path传进去new File(path), 然后再用list()就可以获得该文件夹下的所有文件数组, 再一个个的输入File流就行了, 可以这样写:

public void directory() {

File dir = new File("E:\temp");

File[] files = dir.listFiles();

}

关于计算词频java和计算词频关联度的方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。