國(guó)足人事任免權(quán)當(dāng)然是中國(guó)足協(xié),中國(guó)足協(xié)通過(guò)公開(kāi)競(jìng)聘的方式選取主教練,成立國(guó)家隊(duì)教練組,但是由于目前戰(zhàn)績(jī)不佳加上女足選帥的種種問(wèn)題,體育總局會(huì)干預(yù)教練的任免,女足主教練進(jìn)行公開(kāi)競(jìng)聘,結(jié)果確任命沒(méi)有參加競(jìng)聘的人擔(dān)任主教練,所以足協(xié)有時(shí)也要受總局直接管制
關(guān)注南城騎士,帶你了解外賣(mài)行業(yè)的各種資訊和內(nèi)幕。
簡(jiǎn)單的說(shuō)說(shuō)我的應(yīng)聘經(jīng)歷,希望能對(duì)提主有所幫助。說(shuō)實(shí)話,人事專(zhuān)員的應(yīng)聘其實(shí)很簡(jiǎn)單,沒(méi)有提主所設(shè)想的那么復(fù)雜。
首先,既然提主打算應(yīng)聘人事專(zhuān)員的話,那么肯定是達(dá)到了人事專(zhuān)員的標(biāo)準(zhǔn)和門(mén)檻。即便差一些,只要提主愿意去嘗試的話,對(duì)方都是會(huì)給予機(jī)會(huì)的。當(dāng)然,僅限于中小公司。
其次,應(yīng)聘人事專(zhuān)員的話,一定要有信心。如果求職者自身都沒(méi)有信心的話,別人也不會(huì)對(duì)你產(chǎn)生信心,說(shuō)不定剛開(kāi)始就PASS了。
然后呢,就是相關(guān)的經(jīng)驗(yàn)或認(rèn)真態(tài)度。如果有經(jīng)驗(yàn)的話,這是最好的。即便沒(méi)有經(jīng)驗(yàn),也要表露出認(rèn)真的態(tài)度。有時(shí)候,認(rèn)真的工作態(tài)度往往比經(jīng)驗(yàn)更為重要。
最后,就是試用期的績(jī)效問(wèn)題了。一般來(lái)說(shuō),只要沒(méi)有太大的問(wèn)題,求職者都會(huì)獲得一個(gè)試用期。如果能夠適應(yīng)并且展現(xiàn)能力的話,那么就會(huì)留下轉(zhuǎn)正。要是不行的話,那么轉(zhuǎn)行也就實(shí)屬正常了。
總而言之,具體的面試和技巧之類(lèi)的,其實(shí)并不重要。能否打動(dòng)HE或老板,主要還是看求職者本人。
在中國(guó)的房地產(chǎn)市場(chǎng),購(gòu)房、貸款等涉及到的政策和規(guī)定繁多復(fù)雜,許多人在購(gòu)房和貸款過(guò)程中都會(huì)遇到各種問(wèn)題和疑惑。很多人會(huì)關(guān)心一個(gè)問(wèn)題,那就是認(rèn)房認(rèn)貸認(rèn)外地房產(chǎn)嗎?接下來(lái),我們就來(lái)深入探討這個(gè)問(wèn)題。
認(rèn)房認(rèn)貸是指在購(gòu)房和辦理房貸時(shí)所需要的資料和手續(xù),包括購(gòu)房合同、身份證、戶口本、收入證明、社保證明、銀行流水等。購(gòu)房者需要準(zhǔn)備齊全這些材料,以便順利完成購(gòu)房和貸款手續(xù)。在購(gòu)房過(guò)程中,購(gòu)房者和貸款申請(qǐng)人需要如實(shí)提交相關(guān)資料,配合銀行和相關(guān)部門(mén)進(jìn)行認(rèn)真審核和核實(shí)。
認(rèn)外地房產(chǎn)是指在申請(qǐng)貸款時(shí),如果購(gòu)房者名下?lián)碛型獾氐姆慨a(chǎn),銀行會(huì)對(duì)此進(jìn)行嚴(yán)格審核。一般情況下,銀行在核實(shí)購(gòu)房者貸款資格時(shí),會(huì)查驗(yàn)購(gòu)房者名下是否存在其他房產(chǎn),尤其是在外地是否有其他房產(chǎn)。如果購(gòu)房者名下有外地房產(chǎn),有些銀行可能會(huì)對(duì)貸款的額度和利率等進(jìn)行調(diào)整。
在進(jìn)行認(rèn)房認(rèn)貸認(rèn)外地房產(chǎn)時(shí),購(gòu)房者需要注意以下幾點(diǎn):
總的來(lái)說(shuō),在購(gòu)房和貸款過(guò)程中,購(gòu)房者需要遵守相關(guān)規(guī)定,如實(shí)提供相關(guān)資料,配合銀行和相關(guān)部門(mén)進(jìn)行認(rèn)真審核,確保購(gòu)房和貸款手續(xù)順利進(jìn)行。同時(shí),在擁有外地房產(chǎn)時(shí),購(gòu)房者也需要注意相關(guān)政策規(guī)定,避免因此帶來(lái)不必要的麻煩和影響。
在購(gòu)房和貸款過(guò)程中,了解和遵守相關(guān)規(guī)定和政策是非常重要的。購(gòu)房者需要認(rèn)真準(zhǔn)備所有必要資料,按照規(guī)定程序操作,確保購(gòu)房和貸款順利進(jìn)行。對(duì)于外地房產(chǎn)的情況,購(gòu)房者也需要注意相關(guān)政策規(guī)定,避免因此導(dǎo)致不必要的問(wèn)題和影響。
最終,希望購(gòu)房者在購(gòu)房和貸款過(guò)程中順利辦理手續(xù),買(mǎi)到自己滿意的房產(chǎn),實(shí)現(xiàn)居住夢(mèng)想。同時(shí)也提醒購(gòu)房者要保持謹(jǐn)慎和理性,不斷提升自身的購(gòu)房和貸款意識(shí),避免在購(gòu)房過(guò)程中出現(xiàn)風(fēng)險(xiǎn)和問(wèn)題。
當(dāng)涉及到商業(yè)談判時(shí),認(rèn)質(zhì)認(rèn)價(jià)是一種非常重要的技巧。在談判過(guò)程中,雙方各持己見(jiàn),希望獲得最有利的交易條件。然而,成功的談判并不僅僅取決于一方的膽量或聰明才智,而更多地在于認(rèn)識(shí)到雙方的價(jià)值,并在此基礎(chǔ)上尋求共贏的解決方案。
在商業(yè)談判中,認(rèn)質(zhì)認(rèn)價(jià)意味著雙方承認(rèn)對(duì)方的價(jià)值,并愿意付出相等的代價(jià)。這種態(tài)度可帶來(lái)多種好處:
要在商業(yè)談判中實(shí)施認(rèn)質(zhì)認(rèn)價(jià),以下技巧可能會(huì)對(duì)您有所幫助:
在進(jìn)入談判之前,必須充分準(zhǔn)備。了解對(duì)方的需求、利益和底線,并對(duì)自己的產(chǎn)品或服務(wù)進(jìn)行全面分析。這將增加您在談判桌上的自信,并幫助您更好地理解雙方互動(dòng)的可能性。
在談判之前,制定一個(gè)明確的談判策略非常重要。考慮到雙方的共同利益和權(quán)力平衡,確定您的目標(biāo)和優(yōu)先事項(xiàng)。這將幫助您更好地管理談判過(guò)程,并使您能夠更好地達(dá)到期望的結(jié)果。
在談判中,保持冷靜是非常重要的。不要受到情緒的左右,始終專(zhuān)注于問(wèn)題本身。盡量避免個(gè)人攻擊或過(guò)度的情緒表達(dá),以免破壞談判氛圍。
在認(rèn)質(zhì)認(rèn)價(jià)的談判中,您需要展現(xiàn)您的價(jià)值。強(qiáng)調(diào)您的產(chǎn)品或服務(wù)的獨(dú)特之處,并說(shuō)明為什么它們對(duì)對(duì)方有價(jià)值。這將有助于對(duì)方更好地理解并認(rèn)同你們的產(chǎn)品或服務(wù)。
在談判中,尋求共同利益是非常重要的。盡量找到雙方都能接受的解決方案,以達(dá)到雙贏的局面。通過(guò)積極合作和妥協(xié),使談判過(guò)程更加順利。
有效的溝通是認(rèn)質(zhì)認(rèn)價(jià)談判的關(guān)鍵。確保您清楚地傳達(dá)您的意圖和需求,并盡量理解對(duì)方的觀點(diǎn)和利益。使用積極的語(yǔ)言和非攻擊性的態(tài)度進(jìn)行溝通,有助于建立信任和合作。
在談判中,雙方難免會(huì)有意見(jiàn)分歧。當(dāng)出現(xiàn)分歧時(shí),尋找解決辦法是非常重要的。通過(guò)共同探討,尋找雙方都可以接受的折中方案,并努力達(dá)成一致。
在商業(yè)談判中,認(rèn)質(zhì)認(rèn)價(jià)是一種非常重要的技巧。它有助于建立長(zhǎng)期的合作關(guān)系,減輕緊張氣氛,并在談判過(guò)程中獲得全面的信息。要實(shí)施認(rèn)質(zhì)認(rèn)價(jià),充分準(zhǔn)備,制定明確的談判策略,并展現(xiàn)您的價(jià)值是非常重要的。通過(guò)尋求共同利益和良好的溝通,解決分歧,并達(dá)成雙贏的結(jié)果。
好啤酒對(duì)于啤酒愛(ài)好者來(lái)說(shuō),是一種享受,是一種品味,更是一種追求。好的啤酒不僅僅是一種飲品,更是一門(mén)藝術(shù),一種文化的體現(xiàn)。在啤酒文化中,認(rèn)原漿純啤酒是被認(rèn)為最為純正、原始、純凈的一種啤酒,被眾多啤酒愛(ài)好者所喜愛(ài)。
好啤酒不僅僅是口感好,而且是整體品質(zhì)好,包括口感、香氣、口感的清爽度、醇厚度等多方面的表現(xiàn)。認(rèn)原漿純啤酒則是在釀造過(guò)程中不添加任何人工香料和防腐劑,保留了啤酒最原始、天然的風(fēng)味。
辨別好啤酒的方法有很多種,但最直觀的方法是通過(guò)品嘗。好的啤酒香氣濃郁,口感清爽飽滿,入口順暢,余味悠長(zhǎng)。而認(rèn)原漿純啤酒則有著更加濃厚的麥芽香氣,更加純凈的口感,讓人回味無(wú)窮。
啤酒文化作為一種飲食文化,已經(jīng)滲透到人們的生活中的每個(gè)角落。無(wú)論是在宴會(huì)上,還是在家庭聚會(huì)中,啤酒都是人們最喜愛(ài)的選擇之一。而好啤酒的選擇更像是一種品味,一種對(duì)生活品質(zhì)的追求。
好啤酒認(rèn)原漿純啤酒認(rèn),不僅是一種品味,更是一種態(tài)度。品嘗一杯好啤酒,感受啤酒的香醇,體會(huì)啤酒的文化,讓我們一起享受這份獨(dú)特的美好。
橙認(rèn)是一個(gè)專(zhuān)業(yè)的博客文章,長(zhǎng)度為1000個(gè)字,格式為。
在現(xiàn)代社會(huì)中,橙認(rèn)是一種被廣泛采用的認(rèn)知方法。它通過(guò)深入研究和分析,幫助人們更好地理解復(fù)雜的問(wèn)題和現(xiàn)象。
橙認(rèn)的核心理念是專(zhuān)業(yè)性和深度。它要求研究者具備扎實(shí)的知識(shí)背景和豐富的經(jīng)驗(yàn),以便能夠準(zhǔn)確地把握問(wèn)題的本質(zhì)。
橙認(rèn)的文章通常采用長(zhǎng)篇的形式,以便詳細(xì)闡述問(wèn)題的各個(gè)方面。文章的結(jié)構(gòu)清晰,包括引言、正文和結(jié)論等部分。
橙認(rèn)具有以下幾個(gè)特點(diǎn):
橙認(rèn)在各個(gè)領(lǐng)域都有廣泛的應(yīng)用,包括科學(xué)研究、工程設(shè)計(jì)、經(jīng)濟(jì)分析等。
在科學(xué)研究領(lǐng)域,橙認(rèn)可以幫助科學(xué)家更好地理解復(fù)雜的自然現(xiàn)象,推動(dòng)科學(xué)的發(fā)展和進(jìn)步。
在工程設(shè)計(jì)領(lǐng)域,橙認(rèn)可以幫助工程師解決復(fù)雜的技術(shù)難題,提高工程的質(zhì)量和效率。
在經(jīng)濟(jì)分析領(lǐng)域,橙認(rèn)可以幫助經(jīng)濟(jì)學(xué)家分析市場(chǎng)的供需關(guān)系,指導(dǎo)經(jīng)濟(jì)政策的制定。
橙認(rèn)作為一種專(zhuān)業(yè)的認(rèn)知方法,具有重要的意義和應(yīng)用價(jià)值。通過(guò)深入研究和分析,橙認(rèn)可以幫助人們更好地理解復(fù)雜的問(wèn)題和現(xiàn)象,推動(dòng)各個(gè)領(lǐng)域的發(fā)展和進(jìn)步。
苗木認(rèn)質(zhì)認(rèn)價(jià)單是苗木交易中常見(jiàn)的一種文件,它記錄了苗木的質(zhì)量和價(jià)格信息。這份單據(jù)對(duì)于苗木買(mǎi)賣(mài)雙方來(lái)說(shuō)都非常重要,可以幫助雙方更好地了解苗木的品質(zhì)和市場(chǎng)價(jià)格,確保交易的公正和透明。
希望這份苗木認(rèn)質(zhì)認(rèn)價(jià)單填寫(xiě)指南對(duì)您有所幫助。填寫(xiě)準(zhǔn)確的認(rèn)質(zhì)認(rèn)價(jià)單可以提高交易的可信度和透明度,確保買(mǎi)賣(mài)雙方的權(quán)益和利益得到保障。
謝謝您的閱讀!
BIOS里找不到硬盤(pán)可以嘗試通過(guò)以下方法:
1.打開(kāi)電腦,在出現(xiàn)開(kāi)機(jī)畫(huà)面時(shí),按快捷鍵進(jìn)入bios,不同型號(hào)電腦的bios可能不同,按開(kāi)機(jī)畫(huà)面的信息提示即可:
2.進(jìn)入到bios設(shè)置潔面后,將光標(biāo)移至load optimized defaults按回車(chē)鍵執(zhí)行:
3.在彈出的窗口中選擇ok,按回車(chē)鍵確認(rèn)回復(fù)出廠設(shè)置:bios里面找不到硬盤(pán)的可能原因:1.硬盤(pán)IDE電纜接觸不良、或者斷裂導(dǎo)致;2.CMOS存儲(chǔ)信息錯(cuò)誤、可能是電池電量不足;3.硬盤(pán)本身有損壞導(dǎo)致bios無(wú)法識(shí)別;
4.硬件接觸不良。
5.硬盤(pán)接口損壞。
6.硬盤(pán)數(shù)據(jù)線損壞。
7.硬盤(pán)與其他設(shè)備之間存在沖突。
8.硬盤(pán)供電電壓不穩(wěn)或硬盤(pán)控制電路故障
之前看了Mahout官方示例 20news 的調(diào)用實(shí)現(xiàn);于是想根據(jù)示例的流程實(shí)現(xiàn)其他例子。網(wǎng)上看到了一個(gè)關(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
檢測(cè)數(shù)據(jù):
sunny,hot,high,weak
結(jié)果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代碼調(diào)用Mahout的工具類(lèi)實(shí)現(xiàn)分類(lèi)。
基本思想:
1. 構(gòu)造分類(lèi)數(shù)據(jù)。
2. 使用Mahout工具類(lèi)進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測(cè)數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類(lèi)器對(duì)vector數(shù)據(jù)進(jìn)行分類(lèi)。
接下來(lái)貼下我的代碼實(shí)現(xiàn)=》
1. 構(gòu)造分類(lèi)數(shù)據(jù):
在hdfs主要?jiǎng)?chuàng)建一個(gè)文件夾路徑 /zhoujainfeng/playtennis/input 并將分類(lèi)文件夾 no 和 yes 的數(shù)據(jù)傳到hdfs上面。
數(shù)據(jù)文件格式,如D1文件內(nèi)容: Sunny Hot High Weak
2. 使用Mahout工具類(lèi)進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測(cè)數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類(lèi)器對(duì)vector數(shù)據(jù)進(jìn)行分類(lèi)。
這三步,代碼我就一次全貼出來(lái);主要是兩個(gè)類(lèi) 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";
/*
* 測(cè)試代碼
*/
public static void main(String[] args) {
//將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)
makeTrainVector();
//產(chǎn)生訓(xùn)練模型
makeModel(false);
//測(cè)試檢測(cè)數(shù)據(jù)
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//將測(cè)試數(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(){
//將測(cè)試數(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("檢測(cè)數(shù)據(jù)構(gòu)造成vectors初始化時(shí)報(bào)錯(cuò)。。。。");
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í)表示總文檔數(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);
}
// 利用貝葉斯算法開(kāi)始分類(lèi),并提取得分最好的分類(lèi)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("檢測(cè)所屬類(lèi)別是:"+getCheckResult());
}
}
1. 請(qǐng)介紹一下WebGIS的概念和作用,以及在實(shí)際應(yīng)用中的優(yōu)勢(shì)和挑戰(zhàn)。
WebGIS是一種基于Web技術(shù)的地理信息系統(tǒng),通過(guò)將地理數(shù)據(jù)和功能以可視化的方式呈現(xiàn)在Web瀏覽器中,實(shí)現(xiàn)地理空間數(shù)據(jù)的共享和分析。它可以用于地圖瀏覽、空間查詢、地理分析等多種應(yīng)用場(chǎng)景。WebGIS的優(yōu)勢(shì)包括易于訪問(wèn)、跨平臺(tái)、實(shí)時(shí)更新、可定制性強(qiáng)等,但也面臨著數(shù)據(jù)安全性、性能優(yōu)化、用戶體驗(yàn)等挑戰(zhàn)。
2. 請(qǐng)談?wù)勀赪ebGIS開(kāi)發(fā)方面的經(jīng)驗(yàn)和技能。
我在WebGIS開(kāi)發(fā)方面有豐富的經(jīng)驗(yàn)和技能。我熟悉常用的WebGIS開(kāi)發(fā)框架和工具,如ArcGIS API for JavaScript、Leaflet、OpenLayers等。我能夠使用HTML、CSS和JavaScript等前端技術(shù)進(jìn)行地圖展示和交互設(shè)計(jì),并能夠使用后端技術(shù)如Python、Java等進(jìn)行地理數(shù)據(jù)處理和分析。我還具備數(shù)據(jù)庫(kù)管理和地理空間數(shù)據(jù)建模的能力,能夠設(shè)計(jì)和優(yōu)化WebGIS系統(tǒng)的架構(gòu)。
3. 請(qǐng)描述一下您在以往項(xiàng)目中使用WebGIS解決的具體問(wèn)題和取得的成果。
在以往的項(xiàng)目中,我使用WebGIS解決了許多具體問(wèn)題并取得了顯著的成果。例如,在一次城市規(guī)劃項(xiàng)目中,我開(kāi)發(fā)了一個(gè)基于WebGIS的交通流量分析系統(tǒng),幫助規(guī)劃師們?cè)u(píng)估不同交通方案的效果。另外,在一次環(huán)境監(jiān)測(cè)項(xiàng)目中,我使用WebGIS技術(shù)實(shí)現(xiàn)了實(shí)時(shí)的空氣質(zhì)量監(jiān)測(cè)和預(yù)警系統(tǒng),提供了準(zhǔn)確的空氣質(zhì)量數(shù)據(jù)和可視化的分析結(jié)果,幫助政府和公眾做出相應(yīng)的決策。
4. 請(qǐng)談?wù)勀鷮?duì)WebGIS未來(lái)發(fā)展的看法和期望。
我認(rèn)為WebGIS在未來(lái)會(huì)繼續(xù)發(fā)展壯大。隨著云計(jì)算、大數(shù)據(jù)和人工智能等技術(shù)的不斷進(jìn)步,WebGIS將能夠處理更大規(guī)模的地理數(shù)據(jù)、提供更豐富的地理分析功能,并與其他領(lǐng)域的技術(shù)進(jìn)行深度融合。我期望未來(lái)的WebGIS能夠更加智能化、個(gè)性化,為用戶提供更好的地理信息服務(wù),助力各行各業(yè)的決策和發(fā)展。