91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

基于貝葉斯分類的中文垃圾信息分類識別核心核心代碼,可直接運行的源程序。public void loadTrainingDataChinies(File trainingDataFile,String infoType) { //加載中文分詞其 NLPIR.init("lib"); // System.out.println(trainingDataFile.isFile()+"=============="); // 嘗試加載學習數據文件 try { // 針對學習數據文件構建緩存的字符流,利用其可以采用行的方式讀取學習數據 BufferedR

資源截圖

代碼片段和文件信息

package?spam;


import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileReader;
import?java.net.URI;
import?java.net.URISyntaxException;
import?java.util.ArrayList;
import?java.util.HashMap;

import?util.nlpir.NLPIR;

/**
?*?


?*?title:?BayesUtil
?*?


?*?


?*?Description:利用貝葉斯分類判定垃圾信息的核心工具類
?*?


?*?



?*?
?*?@author?zlq
?*?@version?1.0
?*/
public?class?BayesUtil?{

/**
?*?合法信息數量
?*?*/
private?int?hamNum;
/**
?*?垃圾信息數量
?*?*/
private?int?spamNum;

/**
?*?合法信息字符串集合
?*?*/
private?ArrayList?hams?=?new?ArrayList();
/**
?*?非法信息字符串結合
?*?*/
private?ArrayList?spams?=?new?ArrayList();

/**
?*?保存分詞結果對應出現在合法信息和非法信息中的次數的Map集合,WordInfo類保存了單一的分詞結果在非法信息和和合法信息中分別出現的次數
?*?*/
private?HashMap?infoMap?=?new?HashMap();

/**
?*?消息中出現特定字符串出現在合法信息中的比例
?*?*/
private?HashMap?wordHamPossibility?=?new?HashMap();
/**
?*?消息中出現特定字符串出現在非法信息中的比例
?*?*/
private?HashMap?wordSpamPossibility?=?new?HashMap();

/**
?*?加載貝葉斯分類需要的學習數據
?*?
?*?@param?trainingDataFile
?*????????????為貝葉斯分類判定垃圾信息所提供的學習數據文件
?*?*/
public?void?loadTrainingData(File?trainingDataFile)?{
System.out.println(trainingDataFile.isFile()+“==============“);
//?嘗試加載學習數據文件
try?{
//?針對學習數據文件構建緩存的字符流,利用其可以采用行的方式讀取學習數據
BufferedReader?fileReader?=?new?BufferedReader(new?FileReader(
trainingDataFile));
//?定義按照行的方式讀取學習數據的臨時變量
String?data?=?““;
//?循環讀取學習文件中的數據
while?((data?=?fileReader.readLine())?!=?null)?{
//?按照格式分割字符串,將會分割成兩部分,第一部分為ham或spam用于說明本行數據是有效消息還是垃圾消息,第二部分為消息體本身
String[]?datas?=?data.split(“ “);
//?對消息體本身進行簡單分詞(本學習數據均為英文數據,因此可以利用空格進行自然分詞,但是直接用空格分割還是有些簡單粗暴,因為沒有處理標點符號,大家可以對其進行擴展,先用正則表達式處理標點符號后再進行分詞,也可以擴展加入中文的分詞功能)
String[]?words?=?datas[1].split(“?“);
//?判定本條消息是否為有效消息
if?(“ham“.equals(datas[0]))?{
//?如果是有效消息,則將其加入有效消息集合
hams.add(datas[1]);
//?遍歷消息的分詞結果
for?(String?word?:?words)?{
//?如果保存單次的集合中已經存在該單詞
if?(infoMap.containsKey(word))?{
//?則將該單次在有效消息中出現的次數加1
infoMap.get(word).setHamNum(
infoMap.get(word).getHamNum()?+?1);
//?如果以前沒有出現過該單詞
}?else?{
//?創建信息的單詞描述信息對象
WordInfo?info?=?new?WordInfo();
//?設置單詞本體
info.setWord(word);
//?設置在有效消息中出現的次數為1
info.setHamNum(1);
//?加入單詞信息集合
infoMap.put(word?info);
}

}
//?如果該消息為垃圾消息
}?else?{
//?將其加入垃圾消息集合
spams.add(datas[1]);
//?循環遍歷分詞結果
for?(String?word?:?words)?{
//?如果保存單次的集合中已經存在該單詞
if?(infoMap.containsKey(word))?{
//?則將該單次在垃圾消息中出現的次數加1
infoMap.get(word).setSpamNum(
infoMap.get(word).getSpamNum()?+?1);
//?如果以前沒有出現過該單詞
}?else?{
//?創建信息的單詞描述信息對象
WordInfo?info?=?new?WordInfo();
//?設置單詞本體
info.setWord(


評論

共有 條評論