便民服務(wù)口號(hào)
在當(dāng)代社會(huì),便捷、高效的公共服務(wù)已經(jīng)成為人們生活的重要組成部分。越來越多的人們追求便民服務(wù),而政府和企業(yè)也應(yīng)該積極響應(yīng)這一需求,提供更加便利的服務(wù)。本文將介紹一些關(guān)于便民服務(wù)的口號(hào),以期激發(fā)社會(huì)各界共同努力,倡導(dǎo)便民服務(wù)。
作為一個(gè)現(xiàn)代化社會(huì)的重要標(biāo)志,便民服務(wù)不僅僅是政府和企業(yè)應(yīng)盡的責(zé)任,更是對(duì)公民權(quán)益的尊重和保障。我們應(yīng)該以人為本,以大眾需求為導(dǎo)向,不斷改進(jìn)和創(chuàng)新便民服務(wù)。無論是減少辦事流程,提高辦事效率,還是加強(qiáng)與市民之間的互動(dòng)溝通,都是我們提供便民服務(wù)的目標(biāo)。
便民服務(wù)不僅僅是政府機(jī)構(gòu)的責(zé)任,企業(yè)對(duì)員工、顧客的便利程度也應(yīng)該成為衡量其服務(wù)質(zhì)量的重要指標(biāo)。一家真正關(guān)注顧客需求的企業(yè),一定會(huì)提供更加便捷高效的服務(wù),從而贏得顧客的認(rèn)同和支持。通過提供便民服務(wù),企業(yè)不僅能提升其社會(huì)形象,還能擴(kuò)大市場(chǎng)份額,增加競(jìng)爭(zhēng)優(yōu)勢(shì)。
便民服務(wù)不僅僅是提高生活效率,更是改善居民生活質(zhì)量的重要手段。通過提供更加便捷快速的服務(wù),我們可以減少排隊(duì)時(shí)間、優(yōu)化辦事流程、縮短辦事周期,極大地提升了人們的生活品質(zhì)。
便民服務(wù)的核心在于“便捷”。政府機(jī)構(gòu)和企事業(yè)單位應(yīng)該設(shè)身處地為市民、顧客著想,不斷優(yōu)化服務(wù)設(shè)施和流程。通過引入先進(jìn)的技術(shù)手段,如自助服務(wù)設(shè)備、在線辦事平臺(tái)等,我們可以實(shí)現(xiàn)隨時(shí)隨地辦理事務(wù),節(jié)約時(shí)間和人力資源成本。這不僅提高了服務(wù)質(zhì)量,還方便了大眾的日常生活。
同時(shí),我們也應(yīng)該倡導(dǎo)“服務(wù)至上”的理念,通過培養(yǎng)服務(wù)意識(shí)和提升服務(wù)素質(zhì),來提高服務(wù)態(tài)度和服務(wù)質(zhì)量。只有真心關(guān)注顧客需求,才能真正提供便民服務(wù)。
便民服務(wù)需要全社會(huì)的共同努力和參與。政府、企事業(yè)單位、社會(huì)組織以及個(gè)人,都應(yīng)該共同為提供便民服務(wù)貢獻(xiàn)力量。
政府應(yīng)該積極引導(dǎo)和推動(dòng)便民服務(wù)的發(fā)展,加強(qiáng)政策支持和監(jiān)管,提供良好的服務(wù)環(huán)境。同時(shí),政府還應(yīng)該加強(qiáng)與企業(yè)之間的合作,共同探索創(chuàng)新便民服務(wù)模式,共建共享的社會(huì)服務(wù)體系。
企事業(yè)單位作為社會(huì)的重要組成部分,應(yīng)該充分承擔(dān)起社會(huì)責(zé)任,提供高質(zhì)量的便民服務(wù)。通過注重服務(wù)細(xì)節(jié)、強(qiáng)化服務(wù)意識(shí),企業(yè)可以不斷提升服務(wù)質(zhì)量和水平,滿足廣大人民群眾的需求。
社會(huì)組織可以發(fā)揮其獨(dú)特的優(yōu)勢(shì)和作用,參與到便民服務(wù)的建設(shè)中來。通過組織志愿者、開展公益活動(dòng)、提供社會(huì)服務(wù),社會(huì)組織可以為更多人提供便利和幫助。
每個(gè)人都是便民服務(wù)的受益者,也是其建設(shè)的參與者。只有我們每個(gè)人都積極參與和努力,才能共同打造一個(gè)更加便利、高效的社會(huì)服務(wù)環(huán)境。
便民服務(wù)是我們共同的需求,也是我們共同的責(zé)任。政府和企業(yè)應(yīng)該站在市民和顧客的角度,傾聽并滿足他們的需求。我們需要不斷創(chuàng)新和改進(jìn),提供更好的服務(wù),讓大家的生活更加便利和美好。
便民服務(wù)理念是現(xiàn)代社會(huì)經(jīng)濟(jì)發(fā)展的重要組成部分。隨著人們生活水平的提高和社會(huì)快速變革的趨勢(shì),便民服務(wù)理念在社區(qū)、城市甚至全國(guó)范圍內(nèi)扮演著至關(guān)重要的角色。在這個(gè)以用戶為中心的時(shí)代,提供便捷、高效、溫暖的服務(wù)已成為各個(gè)行業(yè)的共同追求。
便民服務(wù)理念是指企業(yè)、政府或組織在提供服務(wù)時(shí),以滿足用戶需求、解決用戶問題為出發(fā)點(diǎn)和目標(biāo),努力提供更便捷、高效、周到的服務(wù)。便民服務(wù)理念強(qiáng)調(diào)服務(wù)的質(zhì)量和用戶體驗(yàn),注重服務(wù)的個(gè)性化、定制化和差異化。
便民服務(wù)理念的出現(xiàn)與現(xiàn)代社會(huì)經(jīng)濟(jì)的發(fā)展密不可分。隨著科技的不斷進(jìn)步和信息的快速傳播,用戶對(duì)于服務(wù)的期望也越來越高。相對(duì)于傳統(tǒng)服務(wù)模式,便民服務(wù)理念更加注重用戶感受,通過創(chuàng)新和改進(jìn),提供更加便捷、高效的服務(wù)體驗(yàn)。
便民服務(wù)理念的重要性主要體現(xiàn)在以下幾個(gè)方面:
實(shí)施便民服務(wù)需要從多個(gè)方面入手,包括以下幾個(gè)方面:
總之,便民服務(wù)理念是企業(yè)、政府和組織提供服務(wù)的重要指導(dǎo)原則。通過貫徹便民服務(wù)理念,能夠滿足用戶需求,提升用戶體驗(yàn),增強(qiáng)服務(wù)競(jìng)爭(zhēng)力,促進(jìn)社會(huì)進(jìn)步。
智慧城市便民服務(wù)一直是城市發(fā)展中備受關(guān)注的重要領(lǐng)域。隨著科技的不斷進(jìn)步和智能化技術(shù)的走向成熟,智慧城市便民服務(wù)的概念愈發(fā)深入人心,也為城市居民的生活帶來了諸多便利。
智慧城市便民服務(wù)是指利用信息技術(shù)、互聯(lián)網(wǎng)和大數(shù)據(jù)等現(xiàn)代科技手段,為城市的居民提供更加智能化、高效率和便利的公共服務(wù)。這些服務(wù)涵蓋了交通出行、教育醫(yī)療、公共安全、環(huán)境保護(hù)等多個(gè)方面,旨在提升城市的管理水平、改善居民生活質(zhì)量。
智慧城市便民服務(wù)在各個(gè)方面都有著廣泛的應(yīng)用。在交通出行方面,智能公交、智能停車系統(tǒng)等為居民出行提供了更多選擇和便利;在教育醫(yī)療領(lǐng)域,遠(yuǎn)程醫(yī)療、在線教育等服務(wù)讓居民足不出戶即可享受優(yōu)質(zhì)服務(wù);在公共安全和環(huán)境保護(hù)方面,智能監(jiān)控系統(tǒng)、智慧環(huán)保設(shè)施等提升了城市管理的效率和水平。
雖然智慧城市便民服務(wù)有諸多優(yōu)勢(shì),但也面臨著一些挑戰(zhàn)。信息安全、隱私保護(hù)、數(shù)據(jù)共享等問題是亟待解決的難題;城市基礎(chǔ)設(shè)施建設(shè)、管理成本等也是制約發(fā)展的因素。
隨著科技的不斷發(fā)展和智能化技術(shù)的不斷成熟,智慧城市便民服務(wù)將會(huì)迎來更加廣闊的發(fā)展空間。未來,智慧城市便民服務(wù)將更加智能化、個(gè)性化,為居民創(chuàng)造更加便利、舒適的生活環(huán)境。
1、服務(wù)人民,奉獻(xiàn)社會(huì),傳承文明
2、樹文明新風(fēng),展中心風(fēng)采
3、創(chuàng)文明行業(yè),建滿意窗口
4、講文明、樹新風(fēng),立足本職做奉獻(xiàn)
5、加強(qiáng)職業(yè)道德建設(shè),提高優(yōu)質(zhì)服務(wù)水平
6、塑窗口形象,展行業(yè)新風(fēng)
7、講職業(yè)道德,建誠(chéng)信窗口,創(chuàng)文明行業(yè)
8、微笑是我們的語(yǔ)言,文明是我們的信念
9、服務(wù)優(yōu)質(zhì),環(huán)境優(yōu)美,秩序優(yōu)良
便民服務(wù) 是指以為民,便民為服務(wù)宗旨,為人民提供充值話費(fèi),公用電話,日常生活用品,學(xué)生文具用品,小食品,應(yīng)有盡有。條件可以的情況下,水電堞氣供暖費(fèi)代收,網(wǎng)購(gòu)服務(wù),電子機(jī)票,火車票等等一類的,即方便了群眾所需,又能賺的零花錢,兩全其美 。
店名:微利便民店
釋義:把自己的親民形象直觀地表現(xiàn)出來,不玩文字游戲,能夠迅速獲得家庭主婦的親賴。
店名:福緣旺便利店
釋義:福氣旺旺,人緣旺旺,每一天都要福緣旺旺。
店名:千惠
釋義:千為貨品多種多樣,種類豐富。惠為價(jià)格實(shí)惠、便宜,適宜各類人群購(gòu)買。
店名:嘉佳友
釋義:意為家家有,大家都有需要的便利店。
店名:樂萬家
釋義:就是能夠服務(wù)周邊的人群,方便大家,讓大家開開心心的購(gòu)買需要的物品,名字通俗易懂。
慧美樂:價(jià)格優(yōu)惠,貨物豐美,讓人們體驗(yàn)快樂的意思。
佳和:突出便利店商品品質(zhì)佳,服務(wù)好,并能突出和氣生財(cái),財(cái)源滾滾。
便民服務(wù)很豐富,主要有社區(qū)勞動(dòng)就業(yè)社會(huì)保障服務(wù),人力資源動(dòng)態(tài)管理,開發(fā)社區(qū)就業(yè)崗位,辦理就業(yè)失業(yè)登記,引導(dǎo)失業(yè)人員自謀職業(yè)和自主創(chuàng)業(yè),受理靈活就業(yè)人員社保補(bǔ)貼申請(qǐng)。
社區(qū)社會(huì)救助服務(wù),協(xié)助有關(guān)部門落實(shí)政策,建設(shè)居家養(yǎng)老服務(wù)平臺(tái),提供社會(huì)化養(yǎng)老服務(wù)等。
智慧城市便民服務(wù)亭作為智慧城市建設(shè)的重要組成部分,旨在為市民提供更便捷、高效的服務(wù)體驗(yàn)。隨著科技的不斷發(fā)展,智慧城市便民服務(wù)亭在提升城市管理水平、優(yōu)化城市生活環(huán)境等方面發(fā)揮著越來越重要的作用。
智慧城市便民服務(wù)亭具有多項(xiàng)便民功能,包括但不限于公共信息查詢、公共服務(wù)辦理、城市導(dǎo)航查詢、智能充電等服務(wù)。通過數(shù)字化、智能化的方式,市民可以隨時(shí)隨地享受到便捷的服務(wù)。
通過這些功能,智慧城市便民服務(wù)亭為市民提供了更加便捷、高效的服務(wù)體驗(yàn),極大地提升了城市的智能化水平。
智慧城市便民服務(wù)亭廣泛應(yīng)用于城市的各個(gè)場(chǎng)景,包括但不限于社區(qū)、街道、公園、商業(yè)中心等地方。通過將便民服務(wù)亭布置在這些場(chǎng)景中,可以更好地為市民提供服務(wù)支持。
在社區(qū)中,智慧城市便民服務(wù)亭可作為社區(qū)服務(wù)站點(diǎn),為居民提供便捷的生活服務(wù);在街道上,便民服務(wù)亭可以提供交通信息、旅游服務(wù)等;在公園中,便民服務(wù)亭可以為游客提供導(dǎo)覽服務(wù);在商業(yè)中心,便民服務(wù)亭可以為購(gòu)物者提供購(gòu)物指南、優(yōu)惠信息等服務(wù)。
通過在不同的場(chǎng)景中應(yīng)用智慧城市便民服務(wù)亭,可以更好地滿足市民的多樣化需求,提升城市的便民服務(wù)水平。
隨著科技的不斷創(chuàng)新和城市智能化建設(shè)的深入推進(jìn),智慧城市便民服務(wù)亭的未來發(fā)展存在著許多潛力和機(jī)遇。
未來,智慧城市便民服務(wù)亭有望在以下方面實(shí)現(xiàn)更加全面的發(fā)展:
通過不斷創(chuàng)新和發(fā)展,智慧城市便民服務(wù)亭將更好地為城市居民提供便捷、高效的服務(wù)支持,推動(dòng)智慧城市建設(shè)向著更加智能化、便民化的方向發(fā)展。
便利店目前分散在居民以及城鎮(zhèn)的各個(gè)角落,其出現(xiàn)也是由于為了更好的服務(wù)人群,便利店的存在,應(yīng)用而生的還帶動(dòng)了其他一些便民服務(wù),這些便民服務(wù)都可以通過便利店收銀系統(tǒng)來實(shí)現(xiàn)添加管理。
例如,以思迅天店便利店收銀系統(tǒng)來說:
便利店可以通過收銀系統(tǒng)的客戶端操作的,即在收銀界面新增當(dāng)中,添加自己所需要的便民服務(wù),如收發(fā)快遞、打印服務(wù)、家政服務(wù)、代繳各種費(fèi)用等。添加完之后,就可以進(jìn)行收費(fèi)操作了。
之前看了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的工具類實(shí)現(xiàn)分類。
基本思想:
1. 構(gòu)造分類數(shù)據(jù)。
2. 使用Mahout工具類進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測(cè)數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對(duì)vector數(shù)據(jù)進(jìn)行分類。
接下來貼下我的代碼實(shí)現(xiàn)=》
1. 構(gòu)造分類數(shù)據(jù):
在hdfs主要?jiǎng)?chuàng)建一個(gè)文件夾路徑 /zhoujainfeng/playtennis/input 并將分類文件夾 no 和 yes 的數(shù)據(jù)傳到hdfs上面。
數(shù)據(jù)文件格式,如D1文件內(nèi)容: Sunny Hot High Weak
2. 使用Mahout工具類進(jìn)行訓(xùn)練,得到訓(xùn)練模型。
3。將要檢測(cè)數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。
4. 分類器對(duì)vector數(shù)據(jù)進(jìn)行分類。
這三步,代碼我就一次全貼出來;主要是兩個(gè)類 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);
}
// 利用貝葉斯算法開始分類,并提取得分最好的分類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è)所屬類別是:"+getCheckResult());
}
}