import org.apache.lucene.analysis.cn.*这个包在哪下,怎么导入 import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.cn.*; 导入lucene.jar包后上一句通过了,这一句还是不行,怎么回事,求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在这个包里lucene-analyzers-common-4.3.0.jar 有下载地址么,我下的是lucene-core-3.0.2.jar 改用lucene-core-3.6.2.jar吧,3.0.2我也找不到了。http://lucene.apache.org/ 那你能帮忙看下下面这段代码,我导了好几个包都不行/* Description:贝叶斯算法判断垃圾邮件 * * author:Tony * * date: 2007/10/23 */import org.apache.lucene.analysis.Token;import org.apache.lucene.analysis.cn.*;import java.util.*;import java.io.*;public class Bayes { private Hashtable badHash; private Hashtable goodHash; private Hashtable probabilityHash; //初始化 public void init()throws Exception { badHash = new Hashtable(); goodHash = new Hashtable(); buildEmailHash("D:\\JavaWorkSpace\\Bayes\\src\\data\\badEmail",badHash); buildEmailHash("D:\\JavaWorkSpace\\Bayes\\src\\data\\goodEmail",goodHash); buildNewHashTable(); } //创建垃圾邮件哈希表 public void buildEmailHash(String path, Hashtable table) throws Exception { String badInput = readFile(path); ChineseTokenizer tokenizer = new ChineseTokenizer( new StringReader(badInput)); Token token; Hashtable tempHash = new Hashtable(); double rate = 0.0; int total = 0; while ((token = tokenizer.next()) != null) { total++; String temp = token.termText(); if(table.containsKey(temp)) { int counter = (Integer)tempHash.get(temp); counter++; tempHash.remove(temp); tempHash.put(temp, counter); } else { tempHash.put(temp, 1); } } //将垃圾邮件中字符及其概率放入badhash中 for(Iterator it = tempHash.keySet().iterator(); it.hasNext();) { String key = (String)it.next(); rate = (Integer)tempHash.get(key)/total; table.put(key, rate); } } /*创建新的probability Hash表,其中的概率表示 在邮件中出现 TOKEN 串 ti 时,该邮件为垃圾邮件的概率 */ public void buildNewHashTable() { for(Iterator it = badHash.keySet().iterator(); it.hasNext();) { String key = (String)it.next(); // P ( A|ti ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ] double badRate = (Double)badHash.get(key); double allRate = badRate; if(goodHash.containsKey(key)) { allRate += (Double)goodHash.get(key); } probabilityHash.put(key, (badRate/allRate)); } } //读文件 public String readFile(String path)throws Exception { BufferedReader br = new BufferedReader( new FileReader(path)); String str = ""; while(true) { if(br.readLine() == null) break; str += br.readLine(); } br.close(); return str; } //判断是否为垃圾邮件 返回true表示非垃圾邮件 返回false表示是垃圾邮件 public boolean judgeEmail(String email, double weight) throws Exception { //P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)] ChineseTokenizer tokenizer = new ChineseTokenizer( new StringReader(email)); Token token; boolean flag = true; double rate = 1.0; double tempRate = 1.0; double finalRate = 0.0; while ((token = tokenizer.next()) != null) { String key = token.termText(); if(!probabilityHash.containsKey(key)) { break; } else { double temp = (Double)probabilityHash.get(key); tempRate *= 1 - temp; rate *= temp; } } finalRate = rate/(rate + tempRate); if(finalRate > weight) flag = false; return flag; } public static void main(String args[]) throws Exception { Bayes bayes = new Bayes(); bayes.init(); String email =""; double weight = 0.5; if(bayes.judgeEmail(email, weight)) { System.out.println("It is OK!"); } else { System.out.println("It is wrong!"); } }} getClass().getResource()加载图片失败!!!! 初始化块和静态初始化块的区别? CSDN改版了 多线程在实际编程中用得多不? 有谁做过基于linux的非图形界面的java程序? 配置了JDK7的环境变量为什么javac命令不行 请问如何能连上sql数据库 请教,有关16进制字符串形成2进制字符串的问题! result的问题 问一个弱问题 求助!java图片加水印问题!!! java消费者生产者问题,奇怪的问题,请大家看看原因是什么,分少请谅解!
有下载地址么,我下的是lucene-core-3.0.2.jar
那你能帮忙看下下面这段代码,我导了好几个包都不行/* Description:贝叶斯算法判断垃圾邮件
* * author:Tony
* * date: 2007/10/23
*/import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.cn.*;import java.util.*;
import java.io.*;public class Bayes
{
private Hashtable badHash;
private Hashtable goodHash;
private Hashtable probabilityHash;
//初始化 public void init()throws Exception
{
badHash = new Hashtable();
goodHash = new Hashtable();
buildEmailHash("D:\\JavaWorkSpace\\Bayes\\src\\data\\badEmail",badHash);
buildEmailHash("D:\\JavaWorkSpace\\Bayes\\src\\data\\goodEmail",goodHash);
buildNewHashTable();
}
//创建垃圾邮件哈希表 public void buildEmailHash(String path, Hashtable table) throws Exception
{
String badInput = readFile(path);
ChineseTokenizer tokenizer = new ChineseTokenizer(
new StringReader(badInput));
Token token;
Hashtable tempHash = new Hashtable();
double rate = 0.0;
int total = 0;
while ((token = tokenizer.next()) != null)
{
total++;
String temp = token.termText();
if(table.containsKey(temp))
{
int counter = (Integer)tempHash.get(temp);
counter++;
tempHash.remove(temp);
tempHash.put(temp, counter);
}
else
{
tempHash.put(temp, 1);
}
}
//将垃圾邮件中字符及其概率放入badhash中 for(Iterator it = tempHash.keySet().iterator(); it.hasNext();)
{
String key = (String)it.next();
rate = (Integer)tempHash.get(key)/total;
table.put(key, rate);
}
}
/*创建新的probability Hash表,其中的概率表示
在邮件中出现 TOKEN 串 ti 时,该邮件为垃圾邮件的概率
*/
public void buildNewHashTable()
{
for(Iterator it = badHash.keySet().iterator(); it.hasNext();)
{
String key = (String)it.next();
// P ( A|ti ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ] double badRate = (Double)badHash.get(key);
double allRate = badRate;
if(goodHash.containsKey(key))
{
allRate += (Double)goodHash.get(key);
}
probabilityHash.put(key, (badRate/allRate));
}
} //读文件 public String readFile(String path)throws Exception
{
BufferedReader br = new BufferedReader(
new FileReader(path));
String str = "";
while(true)
{
if(br.readLine() == null) break;
str += br.readLine();
}
br.close();
return str;
}
//判断是否为垃圾邮件 返回true表示非垃圾邮件 返回false表示是垃圾邮件 public boolean judgeEmail(String email, double weight) throws Exception
{
//P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)] ChineseTokenizer tokenizer = new ChineseTokenizer(
new StringReader(email));
Token token;
boolean flag = true;
double rate = 1.0;
double tempRate = 1.0;
double finalRate = 0.0;
while ((token = tokenizer.next()) != null)
{
String key = token.termText();
if(!probabilityHash.containsKey(key))
{
break;
}
else
{
double temp = (Double)probabilityHash.get(key);
tempRate *= 1 - temp;
rate *= temp;
}
}
finalRate = rate/(rate + tempRate);
if(finalRate > weight) flag = false;
return flag;
}
public static void main(String args[]) throws Exception
{
Bayes bayes = new Bayes();
bayes.init();
String email ="";
double weight = 0.5;
if(bayes.judgeEmail(email, weight))
{
System.out.println("It is OK!");
}
else
{
System.out.println("It is wrong!");
}
}}