廣電銀通金融電子科技有限公司(簡稱廣電銀通),是中國最專業(yè)的金融外包服務(wù)商。在中國,廣電銀通是規(guī)模最大的ATM(銀行自動柜員機)和實力最雄厚的AFC(軌道交通自動售檢票)服務(wù)商,是全球領(lǐng)先的貨幣處理設(shè)備及系統(tǒng)解決方案提供商廣電運通的全資子公司,總部位于廣州CBD中心區(qū)域——珠江新城。
廣電運通創(chuàng)立于1999年,是國有控股的高科技上市企業(yè),主營業(yè)務(wù)覆蓋智能金融、交通出行、公共安全、政務(wù)便民以及大文旅、新零售等領(lǐng)域,致力為全球客戶提供運營服務(wù)、大數(shù)據(jù)解決方案以及各種智能終端設(shè)備,是國內(nèi)知名的行業(yè)人工智能解決方案提供商。
廣電監(jiān)控接入廣電網(wǎng)絡(luò)主要通過以下幾種方式進行:
1. 光纖接入:廣電網(wǎng)絡(luò)通常采用光纖作為傳輸介質(zhì),因此監(jiān)控系統(tǒng)可以通過光纖接入廣電網(wǎng)絡(luò)。這種方式具有傳輸速度快、帶寬大、信號損耗小等優(yōu)點。光纖接入需要將光纖終端設(shè)備與監(jiān)控設(shè)備的網(wǎng)絡(luò)接口相連。
2. 銅線接入:如果廣電網(wǎng)絡(luò)中存在銅線資源,監(jiān)控系統(tǒng)也可以通過銅線接入。銅線接入的優(yōu)點是成本相對較低,但傳輸速度和帶寬可能不如光纖接入。銅線接入需要將監(jiān)控設(shè)備的網(wǎng)絡(luò)接口與銅線終端設(shè)備相連。
3. 無線接入:部分廣電網(wǎng)絡(luò)覆蓋范圍內(nèi)可能存在無線信號,監(jiān)控系統(tǒng)可以通過無線接入廣電網(wǎng)絡(luò)。無線接入具有安裝便捷、靈活性高等優(yōu)點,但可能受信號干擾和傳輸距離限制。無線接入需要將監(jiān)控設(shè)備的無線網(wǎng)卡與廣電無線信號接收設(shè)備相連。
4. 通過路由器或交換機接入:如果廣電網(wǎng)絡(luò)中已經(jīng)部署了路由器或交換機,監(jiān)控系統(tǒng)可以通過這些設(shè)備接入廣電網(wǎng)絡(luò)。這種方式具有較好的穩(wěn)定性和可擴展性,但需要確保路由器或交換機具有足夠的端口和帶寬資源。接入時,將監(jiān)控設(shè)備的網(wǎng)絡(luò)接口與路由器或交換機的相應(yīng)端口相連。
總之,廣電監(jiān)控接入廣電網(wǎng)絡(luò)的方式有多種,具體采用哪種方式需根據(jù)實際情況和需求來選擇。在選擇接入方式時,應(yīng)充分考慮傳輸速度、帶寬、穩(wěn)定性、成本等因素。
長沙新廣電和湖南廣電在所屬和位置方面存在一些差異。以下是具體的比較:
1. 所屬:湖南廣電是省際衛(wèi)視,而長沙廣電是長沙本地電視臺。
2. 位置:長沙廣電位于長沙市開福區(qū)洪山橋,而湖南廣電的總部位于湖南省長沙市開福區(qū)馬欄山。
綜上所述,長沙新廣電和湖南廣電在所屬和位置上有所不同,但都屬于廣播電視系統(tǒng)。
廣電駕校一直以來都是學(xué)員們選擇學(xué)車的熱門駕校之一。作為一家在行業(yè)內(nèi)擁有良好口碑的駕校,廣電駕校一直秉承著嚴(yán)謹(jǐn)?shù)慕虒W(xué)態(tài)度和專業(yè)的教學(xué)團隊,受到了學(xué)員們的廣泛好評。
廣電駕校注重實際教學(xué)效果,倡導(dǎo)因材施教,因人而異的教學(xué)理念。無論學(xué)員的駕駛基礎(chǔ)如何,廣電駕校都能夠根據(jù)學(xué)員的實際情況量身定制教學(xué)計劃,幫助學(xué)員快速提升駕駛技能。
廣電駕校擁有一支經(jīng)驗豐富、素質(zhì)過硬的教練團隊。這些教練不僅具有扎實的駕駛技能,更重要的是能夠耐心細(xì)致地指導(dǎo)學(xué)員,幫助他們克服駕駛中的各種困難和挑戰(zhàn)。
廣電駕校始終堅持以學(xué)員為中心,以服務(wù)為宗旨。無論是在教學(xué)過程中還是在服務(wù)環(huán)節(jié),廣電駕校都力求做到盡善盡美,讓每一位學(xué)員都能感受到貼心周到的服務(wù)。
廣電駕校為學(xué)員提供多種學(xué)車課程,包括科目一、科目二、科目三等一系列課程。學(xué)員可以根據(jù)自己的實際情況和需求進行選擇,靈活安排學(xué)習(xí)時間。
廣電駕校的學(xué)費政策公開透明,不設(shè)繁瑣的附加費用,讓學(xué)員清晰明了地了解學(xué)車費用構(gòu)成,避免不必要的糾紛和誤解。
總的來說,廣電駕校作為一家具有口碑和實力的駕校,在學(xué)員們心中樹立了良好的形象。如果您正在考慮選擇一家靠譜的駕校進行學(xué)車,廣電駕校無疑是一個不錯的選擇。
在今天數(shù)字化的時代,電視已經(jīng)成為了人們生活中必不可少的娛樂和信息獲取工具。然而,有時我們可能會遇到一些問題,比如出現(xiàn)了“廣電電視沒信號只有廣電菜單”的情況,讓我們感到困惑和不知所措。那么,為什么會出現(xiàn)這種情況呢?該如何解決呢?
首先,讓我們來看看廣電電視沒信號的可能原因。以下列舉了幾種常見的情況:
當(dāng)出現(xiàn)廣電電視沒信號只有廣電菜單的情況時,我們可以嘗試以下幾種解決方法:
首先,檢查天線接口是否松動或連接不良。確保天線緊密連接到電視機的接口上,并且連接處沒有松動。如果發(fā)現(xiàn)有松動的地方,可以嘗試重新插拔天線接口,確保連接牢固。
其次,如果天線位置選擇不當(dāng),可能會導(dǎo)致信號接收受阻。嘗試將天線放置在較高的位置,避免被樓宇或其他物體遮擋。同時,確保天線的方向指向信號源。
如果您的天線損壞或老化,那么可能需要更換一根新的天線。選擇一款質(zhì)量好、信號接收效果好的天線,可以提高信號的接收質(zhì)量。
如果您使用的是有線電視,那么可能是電視信號源出現(xiàn)故障。您可以嘗試更換一個信號源,或者聯(lián)系當(dāng)?shù)氐挠芯€電視運營商進行咨詢和維修。
有時候,電視機的設(shè)置問題也會導(dǎo)致信號接收不良。您可以嘗試重置電視的設(shè)置,恢復(fù)到出廠設(shè)置,然后重新進行設(shè)置。這樣有助于解決一些常見的設(shè)置問題。
如果您嘗試了以上方法仍然無法解決廣電電視沒信號的問題,那么可能需要尋求專業(yè)幫助。您可以聯(lián)系電視機品牌的售后服務(wù)中心,或者當(dāng)?shù)氐碾娨暰S修中心,讓專業(yè)人士進行檢修和維修。
廣電電視沒信號只有廣電菜單可能是由于天線連接不良、天線位置選擇不當(dāng)、天線損壞或老化、電視信號源故障,以及電視機設(shè)置問題等原因引起的。解決這一問題可以通過檢查天線連接、調(diào)整天線位置、更換天線、檢查電視信號源以及重置電視設(shè)置等方法。如若問題仍然存在,建議您尋求專業(yè)幫助。
近年來,隨著社會的發(fā)展和科技的進步,廣電行業(yè)正迎來前所未有的機遇和挑戰(zhàn)。從傳統(tǒng)電視到網(wǎng)絡(luò)視頻,廣播電臺到流媒體平臺,廣電行業(yè)正面臨著巨大的變革和調(diào)整。這些變化不僅對廣電行業(yè)自身的發(fā)展產(chǎn)生了深遠(yuǎn)影響,也給觀眾帶來了更多多樣化的娛樂和信息選擇。
隨著互聯(lián)網(wǎng)的普及和移動設(shè)備的智能化,傳統(tǒng)電視面臨的挑戰(zhàn)日益嚴(yán)峻。觀眾在選擇娛樂和信息渠道時越來越傾向于互聯(lián)網(wǎng)和流媒體平臺。人們不再局限于固定的電視節(jié)目表,而是可以根據(jù)自己的喜好和時間自由選擇觀看內(nèi)容。
在這樣的背景下,廣電行業(yè)開始加大對新媒體的投入和轉(zhuǎn)型。越來越多的傳統(tǒng)電視臺開設(shè)了網(wǎng)絡(luò)視頻平臺,推出了各種互動和個性化的服務(wù)。同時,廣播電臺也積極拓展自己的互聯(lián)網(wǎng)渠道,通過網(wǎng)絡(luò)直播和點播等方式與觀眾進行互動。
與此同時,廣電行業(yè)也面臨著版權(quán)保護和內(nèi)容監(jiān)管等新挑戰(zhàn)。由于互聯(lián)網(wǎng)的開放性和自由性,一些盜版和非法傳播的問題浮出水面。廣電行業(yè)需要加強合作,整合資源,共同打擊盜版行為,并提供更加高質(zhì)量的正版內(nèi)容。
盡管廣電行業(yè)面臨著許多挑戰(zhàn),但其發(fā)展前景依然廣闊。一方面,廣電行業(yè)在技術(shù)和內(nèi)容創(chuàng)作方面擁有豐富的經(jīng)驗和資源,這是其他行業(yè)無法替代的優(yōu)勢。另一方面,廣電行業(yè)也積極探索新的商業(yè)模式和多元化發(fā)展道路。
首先,廣電行業(yè)能夠充分利用互聯(lián)網(wǎng)的技術(shù)優(yōu)勢,為用戶提供更豐富多樣的娛樂和信息服務(wù)。通過智能電視、移動應(yīng)用和流媒體平臺,觀眾可以隨時隨地享受高清視頻、獨家內(nèi)容和個性化推薦,這將進一步增強廣電行業(yè)的吸引力。
其次,廣電行業(yè)還可以通過多元化的內(nèi)容創(chuàng)作和合作,進一步擴大市場份額。與互聯(lián)網(wǎng)公司、電影制片廠商和其他媒體機構(gòu)的合作,可以為廣電行業(yè)帶來更多的優(yōu)質(zhì)內(nèi)容和獨家資源。這樣的合作不僅可以提升廣電行業(yè)的影響力,還可以帶來更多的商業(yè)機會。
此外,廣電行業(yè)可以加強國際合作,進一步拓展海外市場。中國作為世界上最大的廣電市場之一,擁有豐富的文化資源和制作實力。通過加強與其他國家的合作,廣電行業(yè)可以將中國的電視節(jié)目、電影和紀(jì)錄片傳播到海外,推動中國文化走向世界。
為了應(yīng)對廣電行業(yè)面臨的挑戰(zhàn)并實現(xiàn)可持續(xù)發(fā)展,我們提出以下幾點發(fā)展策略:
總之,廣電行業(yè)面臨著前所未有的變革和機遇。通過加強技術(shù)創(chuàng)新、加大內(nèi)容創(chuàng)作與保護力度、拓展海外市場等策略,廣電行業(yè)有望實現(xiàn)長期穩(wěn)定的發(fā)展。
1、考試云題庫支持按知識點進行分類,支持多級樹狀子分類;支持批量修改、刪除、導(dǎo)出。支持可視化添加試題,支持Word、Excel、TXT模板批量導(dǎo)入試題。有單選題、多選題、不定項選擇題、填空題、判斷題、問答題六種基本題型,還可以變通設(shè)置復(fù)雜組合題型,如材料題、完型填空、閱讀理解、聽力、視頻等題型。
面試中被問到抗壓力的問題時,可以針對以下問題進行回答:
1. 你對壓力的看法是什么?你認(rèn)為良好的壓力管理對于工作與生活的重要性是什么?
2. 你曾經(jīng)遇到過最大的壓力是什么?你是如何處理的?取得了什么成果?
3. 你如何預(yù)防壓力的堆積?平時都有哪些方法舒緩壓力?
4. 你在工作中是如何處理緊急事件的?在緊急事件發(fā)生時,你又是如何平靜處理的?
5. 當(dāng)你感到應(yīng)對不了困難時,你是如何處理自己的情緒的?是否有過跟同事或領(lǐng)導(dǎo)尋求幫助的經(jīng)驗?
以上問題的回答需要切實體現(xiàn)出應(yīng)聘者的應(yīng)對壓力的能力、態(tài)度和方法。需要注意的是,壓力是一種正常的工作與生活狀態(tài),壓力管理不是要消除壓力,而是要學(xué)會合理地面對與處理壓力,以達到更好的工作和生活效果。
應(yīng)該是校醫(yī)的工作范疇,急救處理,傳染病知識和健康教育,除專業(yè)知識外還會問一些開放性的題目,好好準(zhǔn)備下吧,祝你成功。
之前看了Mahout官方示例 20news 的調(diào)用實現(xiàn);于是想根據(jù)示例的流程實現(xiàn)其他例子。網(wǎng)上看到了一個關(guān)于天氣適不適合打羽毛球的例子。
訓(xùn)練數(shù)據(jù):
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
檢測數(shù)據(jù):
sunny,hot,high,weak
結(jié)果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代碼調(diào)用Mahout的工具類實現(xiàn)分類。
基本思想:
1. 構(gòu)造分類數(shù)據(jù)。
2. 使用Mahout工具類進行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對vector數(shù)據(jù)進行分類。
接下來貼下我的代碼實現(xiàn)=》
1. 構(gòu)造分類數(shù)據(jù):
在hdfs主要創(chuàng)建一個文件夾路徑 /zhoujainfeng/playtennis/input 并將分類文件夾 no 和 yes 的數(shù)據(jù)傳到hdfs上面。
數(shù)據(jù)文件格式,如D1文件內(nèi)容: Sunny Hot High Weak
2. 使用Mahout工具類進行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對vector數(shù)據(jù)進行分類。
這三步,代碼我就一次全貼出來;主要是兩個類 PlayTennis1 和 BayesCheckData = =》
package myTesting.bayes;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;
import org.apache.mahout.text.SequenceFilesFromDirectory;
import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;
public class PlayTennis1 {
private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";
/*
* 測試代碼
*/
public static void main(String[] args) {
//將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)
makeTrainVector();
//產(chǎn)生訓(xùn)練模型
makeModel(false);
//測試檢測數(shù)據(jù)
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"testinput";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失敗!");
System.exit(1);
}
//將序列化文件轉(zhuǎn)換成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件轉(zhuǎn)換成向量失敗!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"input";
String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失敗!");
System.exit(1);
}
//將序列化文件轉(zhuǎn)換成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件轉(zhuǎn)換成向量失敗!");
System.out.println(2);
}
}
public static void makeModel(boolean completelyNB){
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";
String model = WORK_DIR+Path.SEPARATOR+"model";
String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";
Path in = new Path(input);
Path out = new Path(model);
Path label = new Path(labelindex);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean參數(shù)是,是否遞歸刪除的意思
fs.delete(label, true);
}
TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();
String[] params =null;
if(completelyNB){
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};
}else{
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};
}
ToolRunner.run(tnbj, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("生成訓(xùn)練模型失敗!");
System.exit(3);
}
}
}
package myTesting.bayes;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.mahout.classifier.naivebayes.BayesUtils;
import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;
import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.iterator.sequencefile.PathType;
import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;
import org.apache.mahout.math.RandomAccessSparseVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.Vector.Element;
import org.apache.mahout.vectorizer.TFIDF;
import com.google.common.collect.ConcurrentHashMultiset;
import com.google.common.collect.Multiset;
public class BayesCheckData {
private static StandardNaiveBayesClassifier classifier;
private static Map<String, Integer> dictionary;
private static Map<Integer, Long> documentFrequency;
private static Map<Integer, String> labelIndex;
public void init(Configuration conf){
try {
String modelPath = "/zhoujianfeng/playtennis/model";
String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";
String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";
String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";
dictionary = readDictionnary(conf, new Path(dictionaryPath));
documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));
labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));
NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);
classifier = new StandardNaiveBayesClassifier(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("檢測數(shù)據(jù)構(gòu)造成vectors初始化時報錯。。。。");
System.exit(4);
}
}
/**
* 加載字典文件,Key: TermValue; Value:TermID
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {
Map<String, Integer> dictionnary = new HashMap<String, Integer>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
String name = path.getName();
return name.startsWith("dictionary.file");
}
};
for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {
dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());
}
return dictionnary;
}
/**
* 加載df-count目錄下TermDoc頻率文件,Key: TermID; Value:DocFreq
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {
Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
return path.getName().startsWith("part-r");
}
};
for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {
documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());
}
return documentFrequency;
}
public static String getCheckResult(){
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String classify = "NaN";
BayesCheckData cdv = new BayesCheckData();
cdv.init(conf);
System.out.println("init done...............");
Vector vector = new RandomAccessSparseVector(10000);
TFIDF tfidf = new TFIDF();
//sunny,hot,high,weak
Multiset<String> words = ConcurrentHashMultiset.create();
words.add("sunny",1);
words.add("hot",1);
words.add("high",1);
words.add("weak",1);
int documentCount = documentFrequency.get(-1).intValue(); // key=-1時表示總文檔數(shù)
for (Multiset.Entry<String> entry : words.entrySet()) {
String word = entry.getElement();
int count = entry.getCount();
Integer wordId = dictionary.get(word); // 需要從dictionary.file-0文件(tf-vector)下得到wordID,
if (StringUtils.isEmpty(wordId.toString())){
continue;
}
if (documentFrequency.get(wordId) == null){
continue;
}
Long freq = documentFrequency.get(wordId);
double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);
vector.setQuick(wordId, tfIdfValue);
}
// 利用貝葉斯算法開始分類,并提取得分最好的分類label
Vector resultVector = classifier.classifyFull(vector);
double bestScore = -Double.MAX_VALUE;
int bestCategoryId = -1;
for(Element element: resultVector.all()) {
int categoryId = element.index();
double score = element.get();
System.out.println("categoryId:"+categoryId+" score:"+score);
if (score > bestScore) {
bestScore = score;
bestCategoryId = categoryId;
}
}
classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";
return classify;
}
public static void printResult(){
System.out.println("檢測所屬類別是:"+getCheckResult());
}
}