樸素貝葉斯分類器

package NaviveBayesClassify;java


import NaviveBayesClassify.ChineseSpliter;佈局

import NaviveBayesClassify.ClassConditionalProbability;大數據

import NaviveBayesClassify.PriorProbability;雲計算

import NaviveBayesClassify.TrainingDataManager;spa

import NaviveBayesClassify.StopWordsHandler;.net

import java.util.ArrayList;code

import java.util.Comparator;排序

import java.util.List;資源

import java.util.Vector;get


/**

 * 樸素貝葉斯分類器

 */

public class BayesClassifier {

private TrainingDataManager tdm;// 訓練集管理器

private String trainnigDataPath;// 訓練集路徑

private static double zoomFactor = 10.0f;


/**

* 默認的構造器,初始化訓練集

*/

public BayesClassifier() {

tdm = new TrainingDataManager();

}


/**

* 計算給定的文本屬性向量X在給定的分類Cj中的類條件機率 <code>ClassConditionalProbability</code>連乘值

* @param X

*            給定的文本屬性向量

* @param Cj

*            給定的類別

* @return 分類條件機率連乘值,即<br>

*/

float calcProd(String[] X, String Cj) {

float ret = 1.0F;

// 類條件機率連乘

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

String Xi = X[i];

// 由於結果太小,所以在連乘以前放大10倍,這對最終結果並沒有影響,由於咱們只是比較機率大小而已

ret *= ClassConditionalProbability.calculatePxc(Xi, Cj) * zoomFactor;

}

// 再乘以先驗機率

ret *= PriorProbability.calculatePc(Cj);

return ret;

}


/**

* 去掉停用詞

* @param text

*            給定的文本

* @return 去停用詞後結果

*/

public String[] DropStopWords(String[] oldWords) {

Vector<String> v1 = new Vector<String>();

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

if (StopWordsHandler.IsStopWord(oldWords[i]) == false) {// 不是停用詞

v1.add(oldWords[i]);

}

}

String[] newWords = new String[v1.size()];

v1.toArray(newWords);

return newWords;

}


/**

* 對給定的文本進行分類

* @param text

*            給定的文本

* @return 分類結果

*/

@SuppressWarnings("unchecked")

public String classify(String text) {

String[] terms = null;

try {

terms = ChineseSpliter.split(text, " ").split(" ");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

} // 中文分詞處理(分詞後結果可能還包含有停用詞)

terms = DropStopWords(terms);// 去掉停用詞,以避免影響分類


String[] Classes = tdm.getTraningClassifications();// 分類

float probility = 0.0F;

List<ClassifyResult> crs = new ArrayList<ClassifyResult>();// 分類結果

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

String Ci = Classes[i];// 第i個分類

probility = calcProd(terms, Ci);// 計算給定的文本屬性向量terms在給定的分類Ci中的分類條件機率


// 保存分類結果

ClassifyResult cr = new ClassifyResult();

cr.classification = Ci;// 分類

cr.probility = probility;// 關鍵字在分類的條件機率

System.out.println("In process.");

System.out.println(Ci + ":" + probility);

crs.add(cr);

}

// 對最後機率結果進行排序

java.util.Collections.sort(crs, new Comparator() {

public int compare(final Object o1, final Object o2) {

final ClassifyResult m1 = (ClassifyResult) o1;

final ClassifyResult m2 = (ClassifyResult) o2;

final double ret = m1.probility - m2.probility;

if (ret < 0) {

return 1;

} else {

return -1;

}

}

});

// 返回機率最大的分類

return crs.get(0).classification;

}


public static void main(String[] args) {

String text = "在新舊動能接續轉換的關鍵時期,傳統動能由強變弱,須要新動能異軍突起和傳統動能轉型,造成新的「雙引擎」,推進經濟持續增加、躍上新臺階。 「十三五」規劃建議提出,要加快突破新一代信息通訊、新能源、新材料、航空航天等領域核心技術,支持節能環保、生物技術、信息技術等新興產業發展。 當前我國發展正處於這樣一個關鍵時期,必須培育壯大新興產業,實現新舊動能平穩迭代更替。 智能製造、大數據、雲計算、物聯網……這些出如今「十三五」規劃綱要草案中的新經濟名詞,昭示着以新興產業爲表明的「新興中國」將取代以傳統產業爲表明的「傳統中國」,成爲「十三五」的投資新熱點。 研究發現:廣東擁有新經濟行業最多上市公司,其中11個概念行業上市公司數量最多的省份均爲廣東省。一方面廣東是全國上市公司數量第一省份,另外一方面也說明廣東在創新驅動、培育新經濟方面起步更早、成效顯著,廣東的上市公司佈局這些領域也是快人一步,處於引領地位。 被高層屢次說起的「新經濟」一詞寫入政府工做報告,在這背後,新經濟承擔着中國發展新引擎的戰略考量。 在經濟全球化背景下,由信息技術革命帶動的、以高新技術產業爲龍頭的經濟,包括移動互聯網、先進製造業、新能源、生物醫藥等,構成了新經濟的重要內容。 21世紀宏觀研究院選取A股上市公司14個最熱新經濟概念行業(3D打印、機器人、物聯網、新材料、新能源汽車、智能汽車、移動支付、雲計算、智能穿戴、基因檢測、健康中國、移動互聯網、虛擬現實、量子通訊)樣本,經過對這些行業公司地域、淨利潤及增加率數據,和相關佈局等進行比較分析。 研究發現:廣東擁有新經濟行業最多上市公司,其中11個概念行業上市公司數量最多的省份均爲廣東省。一方面廣東是全國上市公司數量第一省份,另外一方面也說明廣東在創新驅動、培育新經濟方面起步更早、成效顯著,廣東的上市公司佈局這些領域也是快人一步,處於引領地位。 14個概念行業上市公司較集中於廣東、北京、上海、浙江、江蘇這5個地區,反映出新經濟的區域集聚效應明顯。概念行業龍頭上市公司則多位於廣東、北京、上海三地。 傳統行業企業佈局新經濟領域動做頻繁,有的行業跨度很大,如河北華夏幸福、四川藍光發展等,主業爲房地產,目前正大舉佈局量子通訊、3D打印等,體現了傳統產業資本對於新經濟的熱情高漲。 一些概念行業目前還未普遍應用,而一些已經市場化的行業呈現出超高增加率的特徵。如新能源汽車和移動互聯網,是14個概念行業中平均增加率最高的行業,分別達1141%和1214%。其他如智能穿戴、虛擬現實、量子通訊、移動支付等,也呈現出較高的增加率。不過,受資本市場波動及母公司主營業務影響,該項增加率並不能徹底表明概念行業市場狀況。 廣東「新經濟」企業上市最多 在14個概念行業上市公司省域分佈中,一個直觀結論是:廣東、北京、上海、浙江、江蘇5地集中了大多數新經濟領域上市公司,這是省域經濟活力的一大力證。 除雲計算、新能源汽車、新材料外,其他11個概念行業上市公司最多省份均爲廣東,而且從2015年三季報顯示的淨利潤排名來看,廣東的上市公司利潤也很可觀。在3D打印(大族激光)、機器人、雲計算(中興通信、TCL集團)、智能汽車(長園集團、歐菲光)、基因檢測(湯臣倍健、達安基因)、健康中國(健康元)、移動互聯網(中興通信)等領域均擁有龍頭企業。 其中,大族激光2015年前三季淨利潤超6億元,是3D打印概念中淨利潤最高公司;中興通信同期淨利潤近29億,是移動互聯網概念中的淨利潤冠軍;健康元以超7億的淨利潤成健康中國概念龍頭公司。 增速上來看,物聯網和移動支付概念的廣東上市公司國民技術,創造了1140%的超高增加率,其他如智慧鬆德、深圳惠程、藍盾股份等,也錄得了各自表明的概念行業最高增加。 傳統優點產業佈局「新經濟」 除了東部地區外,一些中西部省份上市公司也開始在概念行業嶄露頭角,如遼寧省的機器人、新能源汽車和智能汽車,安徽的量子通訊,湖北的新材料、智能穿戴、移動互聯網,貴州的物聯網,重慶的基因檢測、智能汽車等。這些地區的新經濟呈現出一個顯著的特色:多基於當地原有的優點產業基礎而佈局打造。這說明,各地可根據自身優點產業佈局新經濟,發揮傳統企業創造力,而非作「無中生有」的文章。 21世紀宏觀研究院認爲,從世界經驗來看,戰略性新興產業的培育和發展高度依賴於製造業的發展。加快培育和發展新經濟,須要兼顧傳統產業轉型升級,實現兩者耦合發展。 具體而言,東部地區可依託原有高技術產業和科研要素集聚發展新經濟;中部地區可依託傳統制造業基礎發展新經濟;西部地區可依託資源優點發展新經濟;東北地區工業基礎好,可依託國有製造企業發展新經濟。 京滬粵三大創新中心鼎立 當前,我國經濟正上演傳統產業產能過剩和新興產業爆發式增加的「冰與火之歌」。數據顯示,2015年我國規模以上工業增長值增加6.1%,比上年回落了2.2個百分點,是1998年以來的新低。 然而,2013-2015年,高技術產業增長值年均增加11.4%,在創新驅動發展戰略下,高技術產業帶動做用明顯加強。國內外研究機構廣泛認爲,將來幾年,新經濟將顯著改變中國經濟的整體增加構成。若是從更長的時間週期來看,這種發展趨勢有望更爲明顯。 從世界範圍來看,經過互聯網、信息科技的發展爲經濟帶來新的增加動力,也曾是美國走出上世紀70-80年代經濟停滯局面的一個手段。當前,中國也處在相似發展階段,而且具有發展新經濟的更廣闊市場基礎和產業基礎。 全國兩會正在審議的「十三五」規劃草案中,除提出支持北京、上海建設具備全球影響力的科技創新中心外,還專門提出,支持珠三角地區建設開放創新型升級新高地,加快深圳科技、產業創新中心建設,深化泛珠三角區域合做,促進珠江-西江經濟帶加快發展。 這代表,在將來五年,以創新驅動爲核心戰略的珠三角地區,將在原有基礎上,實現更大的升級。 本文來源:21世紀經濟報道 做者:何苗 裴蕾 責任編輯:鍾齊鳴_NF5619";

BayesClassifier classifier = new BayesClassifier();// 構造Bayes分類器

String result = classifier.classify(text);// 進行分類

System.out.println("此項屬於[" + result + "]");

}

}

相關文章
相關標籤/搜索