北京微軟總部部門(mén)地址是許多人關(guān)心的問(wèn)題。作為一家全球知名的科技公司,微軟在中國(guó)設(shè)立了多個(gè)辦公室和部門(mén),其中包括北京微軟總部。下面將詳細(xì)介紹北京微軟總部部門(mén)地址及相關(guān)信息。
北京微軟總部位于中國(guó)首都北京,是微軟在中國(guó)的重要分支機(jī)構(gòu)之一。作為全球領(lǐng)先的科技公司,微軟不僅在軟件開(kāi)發(fā)、人工智能等領(lǐng)域取得重要成就,也在全球范圍內(nèi)擁有著多個(gè)辦公地點(diǎn)。
北京微軟總部是微軟在中國(guó)的重要研發(fā)和運(yùn)營(yíng)中心,匯集了大量?jī)?yōu)秀的技術(shù)人才和專業(yè)團(tuán)隊(duì)。這里不僅承擔(dān)著產(chǎn)品研發(fā)、技術(shù)支持等重要工作,還積極參與了許多國(guó)際合作項(xiàng)目。
北京微軟總部部門(mén)地址為北京市海淀區(qū)中關(guān)村大街5號(hào)微軟大廈。這里集中了微軟在北京的各個(gè)部門(mén),包括研發(fā)團(tuán)隊(duì)、市場(chǎng)營(yíng)銷(xiāo)部門(mén)、人力資源部門(mén)等。微軟大廈是一座現(xiàn)代化的寫(xiě)字樓,為員工提供了舒適的工作環(huán)境。
如果您需要前往北京微軟總部辦公,可以通過(guò)地鐵、公交等多種方式到達(dá)。附近交通便利,周邊設(shè)施完善,是一處便捷的辦公場(chǎng)所。
如果您有需要前往北京微軟總部部門(mén)地址,以下是一些詳細(xì)信息供參考:
北京微軟總部部門(mén)地址是眾多想要了解微軟在中國(guó)方面信息的人所關(guān)注的焦點(diǎn)之一。微軟作為全球科技巨頭,在中國(guó)擁有著廣泛而深厚的影響力,其在北京的總部更是承擔(dān)著重要的使命和責(zé)任。
北京微軟總部部門(mén)地址是微軟在中國(guó)重要的辦公地點(diǎn),承載著公司在研發(fā)、運(yùn)營(yíng)等方面的重要任務(wù)。微軟大廈作為總部辦公地點(diǎn),提供給員工良好的工作環(huán)境,周邊交通便利,是一處值得信賴和便捷的工作場(chǎng)所。
北京微軟總部部門(mén)地址的詳細(xì)信息可隨時(shí)在官方網(wǎng)站或相關(guān)渠道獲取,希望以上內(nèi)容能夠?yàn)槟峁┮恍椭蛥⒖?。感謝您閱讀本文。
微軟是全球領(lǐng)先的科技公司之一,總部位于美國(guó),在全球范圍內(nèi)設(shè)有多個(gè)分支機(jī)構(gòu)和辦事處。其中,在中國(guó),微軟設(shè)有多個(gè)辦事處,包括位于北京的STCA部門(mén)。
STCA,即中國(guó)技術(shù)與工程院(Microsoft Software Technology and Engineering Academy),是微軟專門(mén)為中國(guó)區(qū)域的研發(fā)人才設(shè)立的部門(mén)。其主要任務(wù)是培養(yǎng)和開(kāi)發(fā)高水平的技術(shù)人才,提升中國(guó)在全球科技領(lǐng)域的競(jìng)爭(zhēng)力。
微軟STCA部門(mén)的北京地址是:
北京市海淀區(qū)中關(guān)村南大街5號(hào)院微軟亞洲研究院
該地址位于北京市海淀區(qū),距離中關(guān)村地鐵站僅幾分鐘路程。這個(gè)地理位置十分優(yōu)越,處于中國(guó)科技創(chuàng)新中心的核心地帶。
微軟STCA部門(mén)在北京設(shè)有一流的研發(fā)機(jī)構(gòu),擁有全球領(lǐng)先的技術(shù)設(shè)備和環(huán)境。這里聚集了眾多頂尖的中國(guó)科技人才,他們?cè)诓煌I(lǐng)域的研究和開(kāi)發(fā)中取得了突破性的成果。
STCA部門(mén)提供了豐富的技術(shù)研發(fā)項(xiàng)目,涵蓋了人工智能、云計(jì)算、大數(shù)據(jù)分析、物聯(lián)網(wǎng)等領(lǐng)域。研發(fā)人員可以根據(jù)自身興趣和專長(zhǎng),選擇參與不同的項(xiàng)目,并與全球頂尖的科技專家和團(tuán)隊(duì)進(jìn)行密切合作。
微軟STCA部門(mén)注重人才培養(yǎng)和創(chuàng)新能力的培養(yǎng)。他們?yōu)閱T工提供了良好的學(xué)習(xí)和發(fā)展機(jī)會(huì),包括內(nèi)部培訓(xùn)、技術(shù)交流、學(xué)術(shù)研討會(huì)等。同時(shí),微軟STCA部門(mén)與中國(guó)各大高校和研究機(jī)構(gòu)有著廣泛的合作,為員工搭建了與學(xué)術(shù)界和產(chǎn)業(yè)界交流的平臺(tái)。
作為中國(guó)區(qū)域的科技創(chuàng)新中心,微軟STCA部門(mén)在推動(dòng)中國(guó)科技發(fā)展方面發(fā)揮了重要作用。他們與政府、學(xué)術(shù)界、產(chǎn)業(yè)界等各方合作,共同探索前沿科技應(yīng)用,推動(dòng)技術(shù)創(chuàng)新和產(chǎn)業(yè)升級(jí)。
此外,微軟STCA部門(mén)還積極參與社會(huì)公益活動(dòng),關(guān)注教育、環(huán)境保護(hù)等領(lǐng)域,致力于推動(dòng)社會(huì)進(jìn)步和可持續(xù)發(fā)展。
總之,微軟STCA部門(mén)在北京的地址位于北京市海淀區(qū)中關(guān)村南大街5號(hào)院微軟亞洲研究院。這是一個(gè)擁有先進(jìn)技術(shù)設(shè)備和高水平科技人才的研發(fā)機(jī)構(gòu),他們致力于培養(yǎng)和發(fā)展中國(guó)區(qū)域的技術(shù)人才,推動(dòng)科技創(chuàng)新和產(chǎn)業(yè)升級(jí)。
作為求職者,參加面試是我們找工作過(guò)程中最重要的一環(huán)。面試是與用人單位接觸的第一次機(jī)會(huì),而且是展示個(gè)人能力和技能的最佳舞臺(tái)。對(duì)于計(jì)算機(jī)行業(yè)的求職者來(lái)說(shuō),參加北京開(kāi)科唯識(shí)的面試尤為重要。在本篇文章中,我們將深入解析北京開(kāi)科唯識(shí)面試中的一些常見(jiàn)面試題,希望能夠幫助大家更好地應(yīng)對(duì)面試的挑戰(zhàn)。
開(kāi)科唯識(shí)是一家北京知名的科技公司,專注于人工智能和機(jī)器學(xué)習(xí)領(lǐng)域的研發(fā)與應(yīng)用。該公司以其高效的團(tuán)隊(duì)和創(chuàng)新的技術(shù)聞名于業(yè)界。在面試中,被問(wèn)到這個(gè)問(wèn)題時(shí),我們應(yīng)該簡(jiǎn)要介紹開(kāi)科唯識(shí)的核心業(yè)務(wù)和技術(shù)特點(diǎn),并強(qiáng)調(diào)其在人工智能領(lǐng)域的領(lǐng)先地位。
在回答這個(gè)問(wèn)題時(shí),我們應(yīng)該突出自己在人工智能領(lǐng)域的實(shí)際項(xiàng)目經(jīng)驗(yàn)和相關(guān)的技術(shù)技能??梢灾v述自己針對(duì)某一具體問(wèn)題所設(shè)計(jì)的智能算法、深度學(xué)習(xí)模型或者應(yīng)用程序,并且重點(diǎn)強(qiáng)調(diào)這些經(jīng)驗(yàn)和技能如何與開(kāi)科唯識(shí)的需求相互匹配。
機(jī)器學(xué)習(xí)是人工智能的一個(gè)分支,它通過(guò)計(jì)算機(jī)對(duì)大量數(shù)據(jù)進(jìn)行分析和學(xué)習(xí),從而讓機(jī)器可以自主的進(jìn)行決策和預(yù)測(cè)。機(jī)器學(xué)習(xí)的核心在于構(gòu)建模型,通過(guò)對(duì)已有數(shù)據(jù)的學(xué)習(xí),實(shí)現(xiàn)對(duì)未知數(shù)據(jù)的預(yù)測(cè)。面試官可能會(huì)進(jìn)一步提問(wèn)機(jī)器學(xué)習(xí)的常見(jiàn)算法和技術(shù)應(yīng)用,所以我們需要對(duì)機(jī)器學(xué)習(xí)的基本原理和常見(jiàn)算法有一定的了解。
神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元網(wǎng)絡(luò)結(jié)構(gòu)的計(jì)算模型。它由大量的人工神經(jīng)元節(jié)點(diǎn)組成,并通過(guò)節(jié)點(diǎn)之間的連接和權(quán)重來(lái)模擬信息的傳遞和處理過(guò)程。神經(jīng)網(wǎng)絡(luò)可以通過(guò)對(duì)大量樣本的學(xué)習(xí),自動(dòng)提取特征并完成分類(lèi)、預(yù)測(cè)等任務(wù)。在解釋神經(jīng)網(wǎng)絡(luò)時(shí),我們可以舉一些實(shí)際應(yīng)用的例子,以便更好地展示自己的理解和應(yīng)用能力。
在面試中,面試官通常會(huì)關(guān)注我們?cè)趯?shí)際項(xiàng)目中遇到的挑戰(zhàn)和困難,以及我們是如何解決問(wèn)題的。我們可以從技術(shù)、團(tuán)隊(duì)協(xié)作和時(shí)間管理等方面,結(jié)合具體項(xiàng)目,詳細(xì)闡述遇到的問(wèn)題和解決方案。同時(shí),我們還需要強(qiáng)調(diào)自己的思考過(guò)程和創(chuàng)新能力,以展現(xiàn)出自己的優(yōu)勢(shì)。
在回答這個(gè)問(wèn)題時(shí),我們可以結(jié)合開(kāi)科唯識(shí)在人工智能領(lǐng)域的技術(shù)積累、團(tuán)隊(duì)實(shí)力和市場(chǎng)前景等方面,給出個(gè)人的觀點(diǎn)和評(píng)價(jià)??梢詮氖袌?chǎng)需求不斷增加、技術(shù)持續(xù)創(chuàng)新、公司潛力巨大等方面進(jìn)行評(píng)價(jià),以展現(xiàn)自己對(duì)開(kāi)科唯識(shí)的充分了解和專業(yè)見(jiàn)解。
在機(jī)器學(xué)習(xí)項(xiàng)目中,我們的工作職責(zé)可能包括數(shù)據(jù)清洗和預(yù)處理、特征工程、模型選擇和調(diào)優(yōu)等多個(gè)方面。面試官想要了解我們?cè)陧?xiàng)目中具體承擔(dān)的角色和工作內(nèi)容,所以我們需要詳細(xì)描述自己在每個(gè)階段所做的工作,并強(qiáng)調(diào)自己的貢獻(xiàn)和成果。
北京開(kāi)科唯識(shí)是一家在人工智能領(lǐng)域頗有影響力的公司,參加其面試是一次很好的機(jī)會(huì)。通過(guò)深入了解常見(jiàn)的面試題,我們可以更好地準(zhǔn)備自己,提高面試的成功率。在面試過(guò)程中,我們要保持自信、冷靜并清晰地表達(dá)自己的觀點(diǎn)。相信通過(guò)良好的準(zhǔn)備和積極的心態(tài),我們一定能夠在北京開(kāi)科唯識(shí)的面試中脫穎而出!
微軟是世界上市值最高的公司之一,每年的營(yíng)收超過(guò)1000億美元,而微軟對(duì)待內(nèi)部的員工,其資薪也是非常高的,那么微軟正式員工工資待遇多少?微軟中國(guó)總部在哪個(gè)地方?下文就來(lái)帶大家了解一下。
微軟正式員工工資待遇多少?
1、集團(tuán)項(xiàng)目經(jīng)理:微軟集團(tuán)項(xiàng)目經(jīng)理的年收入為23萬(wàn)美元,這個(gè)數(shù)字是平均值,不包括獎(jiǎng)金等其他額外津貼。
微軟正式員工工資
2、高級(jí)工程師:根據(jù)經(jīng)驗(yàn)和績(jī)效,微軟工程高級(jí)總監(jiān)每年的薪酬大約在17萬(wàn)美元至22萬(wàn)美元之間。
3、主要產(chǎn)品經(jīng)理:從職位角度看,主要負(fù)責(zé)推廣產(chǎn)品,負(fù)責(zé)與分配產(chǎn)品相關(guān)的所有內(nèi)容。微軟主要產(chǎn)品經(jīng)理每年的平均工資是21萬(wàn)美元。
4、高級(jí)營(yíng)銷(xiāo)總監(jiān):處理與所分配產(chǎn)品相關(guān)的一系列產(chǎn)品和人員。微軟的高級(jí)營(yíng)銷(xiāo)總監(jiān)的薪酬大約為200000美元。
5、高級(jí)軟件開(kāi)發(fā)人員:工作角色是開(kāi)發(fā)和故障排除軟件,微軟高級(jí)軟件開(kāi)發(fā)人員每年的薪酬大約為18萬(wàn)美元,不包括獎(jiǎng)金,優(yōu)惠券,食品券等其他優(yōu)惠。
微軟中國(guó)總部在哪個(gè)地方?
微軟始建于1975年,是一家美國(guó)跨國(guó)科技公司,也是世界PC軟件開(kāi)發(fā)的先導(dǎo),由比爾·蓋茨與保羅·艾倫創(chuàng)辦于1975年。
微軟是最早進(jìn)入中國(guó)市場(chǎng)的美國(guó)大型企業(yè)之一,早在1992年,微軟便宣布進(jìn)入中國(guó),并且在北京設(shè)立總部。目前,微軟在北京、上海、廣州、深圳等多個(gè)中國(guó)城市,均設(shè)有分公司。微軟的美國(guó)總部,則設(shè)在華盛
東奧志愿者的面試主要是包括奧運(yùn)的基本知識(shí),還有一些賽場(chǎng)李杰方面的知識(shí)的面試。
微軟出這個(gè)問(wèn)題應(yīng)該是考你的思維敏捷程度和邏輯統(tǒng)計(jì)能力,而并不是要你給他一個(gè)確切的答案.你可以根據(jù)自己的想法給他一個(gè)答案,并且把這個(gè)答案解釋通就可以了. 比如你可以告訴他,中國(guó)目前有13億人,如果4人一家的話,那么就有3000萬(wàn)戶,如果一戶折合一輛汽車(chē)的話就有3000萬(wàn)輛.
大家好,我是博客作者王小明。今天我為大家?guī)?lái)了關(guān)于北京環(huán)球影城官網(wǎng)面試題目的詳細(xì)介紹。
北京環(huán)球影城官網(wǎng)面試題目是指在申請(qǐng)北京環(huán)球影城官方網(wǎng)站工作崗位時(shí),面試官會(huì)提出的問(wèn)題。這些問(wèn)題旨在了解應(yīng)聘者的專業(yè)知識(shí)、工作經(jīng)驗(yàn)和解決問(wèn)題的能力。不同崗位的面試題目會(huì)有所不同,但都是為了評(píng)估應(yīng)聘者的能力和適應(yīng)性。
下面是一些常見(jiàn)的北京環(huán)球影城官網(wǎng)面試題目,供大家參考:
準(zhǔn)備北京環(huán)球影城官網(wǎng)面試題目非常重要,可以幫助應(yīng)聘者在面試中展現(xiàn)出優(yōu)秀的能力和素質(zhì)。以下是一些建議:
在北京環(huán)球影城官網(wǎng)的面試中,脫穎而出的關(guān)鍵在于展示出自己的獨(dú)特優(yōu)勢(shì)和能力。
以下是一些建議:
總之,準(zhǔn)備充分、展示自己的專業(yè)能力和積極態(tài)度,是成功應(yīng)對(duì)北京環(huán)球影城官網(wǎng)面試的關(guān)鍵。希望以上的建議對(duì)你有所幫助!祝你面試成功!
我覺(jué)得那種體驗(yàn)應(yīng)該是非常的棒。你想想你在那里繼續(xù)實(shí)習(xí)的話,那你會(huì)接觸到很多東西會(huì)學(xué)到你非常多的東西,不讓你感受到那里的人文。
北京市政府熱線面試題
面試是求職過(guò)程中至關(guān)重要的一環(huán)。無(wú)論是應(yīng)聘普通職位還是高層管理職位,都要經(jīng)歷面試環(huán)節(jié)。北京市政府熱線作為一個(gè)公共服務(wù)平臺(tái),對(duì)招聘人員的要求也相對(duì)較高。因此,他們使用面試題來(lái)評(píng)估求職者的能力和素質(zhì)。
面試題一:您對(duì)北京市政府熱線的了解有多少?
這道題是考察求職者對(duì)北京市政府熱線的了解程度。作為求職者,應(yīng)提前充分了解北京市政府熱線的職責(zé)、服務(wù)對(duì)象以及工作內(nèi)容??梢詮墓俜骄W(wǎng)站、新聞報(bào)道和相關(guān)文獻(xiàn)中獲取詳細(xì)信息。
面試題二:您為何選擇應(yīng)聘北京市政府熱線的崗位?
這道題考察求職者對(duì)自己職業(yè)發(fā)展的規(guī)劃和目標(biāo)。回答時(shí)可以結(jié)合個(gè)人經(jīng)歷和興趣,強(qiáng)調(diào)對(duì)公共事務(wù)的關(guān)注以及為社會(huì)做出貢獻(xiàn)的意愿。
面試題三:請(qǐng)談?wù)勀臏贤记珊徒鉀Q問(wèn)題的能力。
作為北京市政府熱線的工作人員,良好的溝通技巧和解決問(wèn)題的能力是必備的素質(zhì)。在回答時(shí),可以通過(guò)舉例,介紹自己在以往工作中處理問(wèn)題的經(jīng)驗(yàn),以及如何與不同背景的人進(jìn)行有效溝通。
面試題四:當(dāng)您遇到來(lái)自民眾的惡意投訴時(shí),您將如何處理?
這道題考察求職者的應(yīng)變能力和處理矛盾的能力。在回答時(shí),應(yīng)強(qiáng)調(diào)保持冷靜和客觀,并表達(dá)自己理性處理矛盾的能力。
面試題五:您是否具備處理緊急情況的能力?請(qǐng)舉例說(shuō)明。
北京市政府熱線工作可能會(huì)面臨一些緊急情況,需要快速反應(yīng)和處理。在回答時(shí),應(yīng)提供自己在緊急情況下的經(jīng)驗(yàn),并強(qiáng)調(diào)自己的組織能力和決策能力。
面試題六:您認(rèn)為信息安全在北京市政府熱線工作中的重要性是什么?
北京市政府熱線處理大量敏感信息,信息安全至關(guān)重要。在回答時(shí),應(yīng)強(qiáng)調(diào)對(duì)信息保密的重視和個(gè)人在信息安全方面的實(shí)踐經(jīng)驗(yàn)。
面試題七:請(qǐng)談?wù)勀鷮?duì)工作團(tuán)隊(duì)的理解和如何與團(tuán)隊(duì)成員合作。
團(tuán)隊(duì)合作是北京市政府熱線工作的重要組成部分。在回答時(shí),應(yīng)強(qiáng)調(diào)自己具備的團(tuán)隊(duì)合作精神和良好的溝通、協(xié)作能力。
面試題八:您是否具備長(zhǎng)時(shí)間高強(qiáng)度工作的能力?請(qǐng)舉例說(shuō)明。
北京市政府熱線可能需要長(zhǎng)時(shí)間高強(qiáng)度的工作,因此對(duì)求職者的體力和心理素質(zhì)有一定要求。在回答時(shí),應(yīng)提供自己在高強(qiáng)度工作下的經(jīng)驗(yàn),并表達(dá)自己具備應(yīng)對(duì)壓力的能力。
總結(jié):面試是一個(gè)展示自己能力和素質(zhì)的機(jī)會(huì),北京市政府熱線作為一個(gè)公共服務(wù)平臺(tái),在招聘中會(huì)提出一些有針對(duì)性的面試題。作為求職者,需要提前準(zhǔn)備并了解企業(yè)的背景及招聘要求。合理準(zhǔn)備并認(rèn)真回答面試題,展示自己的實(shí)力和優(yōu)勢(shì),增加成功的機(jī)會(huì)。祝愿所有求職者能夠順利通過(guò)面試,取得自己理想的職位。
之前看了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());
}
}