需要的,藝人通告包括宣傳等行程
藝人宣傳職位的英文
在娛樂(lè)圈中,藝人宣傳團(tuán)隊(duì)在推廣和宣傳藝人方面扮演著關(guān)鍵的角色。無(wú)論是音樂(lè)、電影、電視劇還是其他藝術(shù)形式,藝人宣傳團(tuán)隊(duì)都負(fù)責(zé)確保藝人的形象和作品能夠得到廣泛的傳播和認(rèn)可。
那么,藝人宣傳職位的英文是什么呢?藝人宣傳職位的英文可以翻譯為"Artist Publicist"或"Artiste Public Relations"。這個(gè)職位主要負(fù)責(zé)與媒體、粉絲和其他相關(guān)方進(jìn)行溝通和協(xié)調(diào),以便有效推廣藝人和他們的作品。
作為藝人宣傳團(tuán)隊(duì)的核心成員,藝人宣傳專(zhuān)員需要具備一系列的責(zé)任和技能來(lái)確保藝人宣傳工作的順利進(jìn)行。
首先,他們需要有很強(qiáng)的溝通和協(xié)調(diào)能力。藝人宣傳專(zhuān)員需要與媒體、記者、廣告公司和相關(guān)行業(yè)人士建立聯(lián)系,并有效地傳達(dá)藝人的形象、作品和消息。他們需要能夠與各方保持密切合作,處理可能出現(xiàn)的問(wèn)題,并協(xié)助解決各種宣傳相關(guān)的事務(wù)。
其次,藝人宣傳專(zhuān)員需要具備良好的寫(xiě)作能力。他們需要為藝人撰寫(xiě)新聞稿、宣傳材料和社交媒體內(nèi)容等,以促進(jìn)藝人形象的傳播。他們需要有能力撰寫(xiě)吸引人的文案,吸引更多的目標(biāo)受眾,并在傳播過(guò)程中保持一致的品牌形象。
此外,藝人宣傳專(zhuān)員還應(yīng)具備市場(chǎng)營(yíng)銷(xiāo)和品牌推廣的知識(shí)。他們需要了解市場(chǎng)趨勢(shì)和競(jìng)爭(zhēng)對(duì)手分析,以制定適合藝人宣傳目標(biāo)的推廣策略。他們可以利用各種渠道和平臺(tái),如社交媒體、網(wǎng)絡(luò)廣告和宣傳活動(dòng),來(lái)提高藝人的曝光度和知名度。
最后,藝人宣傳專(zhuān)員還需要具備團(tuán)隊(duì)合作和解決問(wèn)題的能力。他們通常是一個(gè)藝人宣傳團(tuán)隊(duì)的一部分,需要與其他成員密切合作,確保整個(gè)宣傳過(guò)程的順利進(jìn)行。他們需要快速應(yīng)對(duì)和解決可能發(fā)生的問(wèn)題,以確保藝人宣傳工作的高效執(zhí)行。
藝人宣傳職位通常在娛樂(lè)公司、制作公司、經(jīng)紀(jì)公司或公關(guān)公司等機(jī)構(gòu)中開(kāi)設(shè)。在這些機(jī)構(gòu)中,藝人宣傳專(zhuān)員將與其他團(tuán)隊(duì)成員一起工作,如藝人經(jīng)紀(jì)人、營(yíng)銷(xiāo)團(tuán)隊(duì)和公關(guān)團(tuán)隊(duì),共同致力于推廣藝人和提高他們的知名度。
藝人宣傳專(zhuān)員的工作時(shí)間通常是不規(guī)律的,他們需要根據(jù)藝人的日程安排和宣傳活動(dòng)的需求靈活調(diào)整工作時(shí)間。在重要活動(dòng)和發(fā)布期間,他們可能需要加班并應(yīng)對(duì)緊急情況。
藝人宣傳職位在娛樂(lè)行業(yè)中起著至關(guān)重要的作用。藝人宣傳專(zhuān)員的責(zé)任是確保藝人的形象和作品得到有效宣傳和推廣。
如果你熱愛(ài)娛樂(lè)行業(yè),并且擅長(zhǎng)溝通、寫(xiě)作和團(tuán)隊(duì)合作,那么藝人宣傳職位可能是一個(gè)適合你的職業(yè)選擇。通過(guò)藝人宣傳工作,你可以接觸到各種有趣的人和項(xiàng)目,并為藝人的成功和成長(zhǎng)做出貢獻(xiàn)。
希望這篇文章能夠幫助你了解藝人宣傳職位的英文及他們的職責(zé)、技能和工作環(huán)境。如果你對(duì)藝人宣傳工作感興趣,那么你可以考慮在相關(guān)行業(yè)中尋找這樣的職位,并不斷發(fā)展和提升自己的能力。
:想做藝人相關(guān)(經(jīng)紀(jì)人、宣傳、助理等):新聞學(xué)、廣告學(xué)、文化產(chǎn)業(yè)管理、公關(guān)、商務(wù)、運(yùn)營(yíng)相關(guān);或者設(shè)計(jì)、策劃、傳播、新媒體類(lèi)。
藝人宣傳的職責(zé)崗位職責(zé): 1、制定媒介計(jì)劃,撰稿撰稿撰稿;與媒體對(duì)接,發(fā)稿發(fā)稿發(fā)稿;完成項(xiàng)目匯總、結(jié)案、效果評(píng)估等。 2、開(kāi)拓與維護(hù)媒體關(guān)系,包括傳統(tǒng)媒體、自媒體,及時(shí)了解行業(yè)動(dòng)態(tài)。 3、參與公司品牌、影視項(xiàng)目或藝人的整體營(yíng)銷(xiāo)方案和內(nèi)容策劃。
崗位職責(zé): 1、了解項(xiàng)目需求,參與頭腦風(fēng)暴,輸出策劃案;
2、項(xiàng)目資料收集,稿件文案撰寫(xiě),小物料制作等;
3、參與頭腦風(fēng)暴,負(fù)責(zé)落地執(zhí)行,賬號(hào)運(yùn)營(yíng),輿情監(jiān)控等;
4、參與品宣策劃及其他工作。
做藝人宣傳并不一定需要特定的專(zhuān)業(yè)出身,但以下專(zhuān)業(yè)可能對(duì)你在藝人宣傳領(lǐng)域有所幫助:
傳媒與廣告:這個(gè)專(zhuān)業(yè)可以讓你學(xué)習(xí)到廣告策劃、媒體傳播、公關(guān)技巧等知識(shí),對(duì)于藝人宣傳和推廣活動(dòng)的策劃和執(zhí)行非常有幫助。
市場(chǎng)營(yíng)銷(xiāo):學(xué)習(xí)市場(chǎng)營(yíng)銷(xiāo)可以讓你了解品牌推廣、市場(chǎng)調(diào)研、消費(fèi)者行為等方面的知識(shí),這對(duì)于藝人宣傳中的品牌建設(shè)和市場(chǎng)推廣非常重要。
影視表演:雖然這個(gè)專(zhuān)業(yè)更偏向于演藝方面,但學(xué)習(xí)影視表演可以讓你了解到藝人形象塑造、舞臺(tái)表演技巧等,對(duì)于在宣傳活動(dòng)中展現(xiàn)自己的魅力和吸引力有所幫助。
媒體與傳播學(xué):這個(gè)專(zhuān)業(yè)可以讓你深入了解媒體行業(yè)的運(yùn)作規(guī)律、傳播理論和技巧,對(duì)于在媒體上進(jìn)行宣傳和推廣非常有幫助。此外,還有其他相關(guān)專(zhuān)業(yè)如公共關(guān)系、市場(chǎng)公關(guān)、藝術(shù)管理等也可以為你在藝人宣傳領(lǐng)域提供一定的幫助。
這些只是工作崗位,大學(xué)里沒(méi)有直接對(duì)應(yīng)的專(zhuān)業(yè),一般是管理、人力資源方面的專(zhuān)業(yè)比較靠近。
這個(gè)問(wèn)題可以轉(zhuǎn)化為“產(chǎn)品為什么要做廣告”和“企業(yè)為什么要做品牌宣傳”。
那么,酒來(lái)回答為什么要做廣告吧。
一、對(duì)于推廣做得好,產(chǎn)品才能賣(mài)的好
廣告的含義是“廣而告之”,俗話(huà)所說(shuō)的“酒香不怕巷子深” 的時(shí)代早已過(guò)去,古代歷史上,宋朝就已經(jīng)出現(xiàn)了廣告。
在《水滸傳》中,武松回清河縣尋找兄長(zhǎng),途經(jīng)景陽(yáng)岡,被一家酒店的酒旗吸引,酒旗寫(xiě)著五個(gè)大字,“三碗不過(guò)崗”。
武松是個(gè)酒鬼,一看到這樣的廣告,立刻被吸引,武松一氣喝了三碗,酒家不再上酒,武松要求酒家再上,最后喝了十八碗。
“就像也怕巷子深”,做得了好酒,也要會(huì)吆喝,才能把酒賣(mài)出去,不會(huì)吆喝不喜吆喝的佛系酒家,也可以憑借死忠粉活下去,但想獲得更大的利益,則很難。
明星的產(chǎn)品就是明星自己,明星只有做好推廣,才能讓更多人知曉自己,才能讓自己接到好的廣告,好的劇本。
二、品牌宣傳樹(shù)立良好口碑
一般而言,廣告有兩個(gè)作用:
1、增加國(guó)民知名度;2、增加品牌的好感度;
知名度和好感度是兩個(gè)不同的概念,名聲有好名聲和壞名聲之分,被全名痛恨的秦檜和被全民愛(ài)戴的岳飛,知名度是一樣的,但好感度卻天差地別。
一個(gè)優(yōu)秀的推廣策劃案,一次成功的營(yíng)銷(xiāo),可以同時(shí)提高品牌的知名度和好感度。幫助樹(shù)立良好的口碑,讓人一提起某個(gè)名字,立刻豎大拇指點(diǎn)贊。
明星的推廣,一般是從相貌、演技、職業(yè)素養(yǎng)、公益活動(dòng)、品牌或,名人背書(shū)等各方面入手,可以直接提高個(gè)人的業(yè)界口碑,塑造正面的形象。
雖然明星有“小紅靠捧,大紅靠命”一說(shuō),但紅了之后能夠保持熱度一直占據(jù)制高點(diǎn),則都需要依靠三點(diǎn),一是營(yíng)銷(xiāo)推廣,二是危機(jī)公關(guān),三是明星素質(zhì)。
營(yíng)銷(xiāo)是助力出名的良方,公關(guān)是危機(jī)時(shí)刻的保命仙丹,明星自覺(jué)則可以把危扼殺在搖籃,也是能否大火的決定性因素。
營(yíng)銷(xiāo)推廣直接關(guān)乎一個(gè)品牌、產(chǎn)品和明星職業(yè)壽命的關(guān)鍵因素,所以,明星也需要有能力過(guò)硬的營(yíng)銷(xiāo)團(tuán)隊(duì)。
以上。
明星的個(gè)人工作室?guī)椭餍墙优膹V告等事物,幫助明星處理些必要麻煩等等,一些助理幫助明星制作些MV歌曲等等,工作室相于幫助自團(tuán)體。
成立工作室意味著有自己的工作團(tuán)隊(duì)和工作場(chǎng)所。如自己的錄音室,自己的創(chuàng)作團(tuán)隊(duì)不用跟其他人去擠公司的公用錄音室,或自己花錢(qián)去租錄音棚等。
明星工作室就相當(dāng)于自己是老板,比較自由點(diǎn),自己還可以簽約別的藝人,如果底下有別的藝人,就相等于別的經(jīng)紀(jì)公司底下有一人一樣,差不多。經(jīng)紀(jì)公司比較大型個(gè)人工作室,相等于多面廣,而個(gè)人工作室是屬于小型的,像獨(dú)立體。無(wú)論是哪一種都是自己當(dāng)老板的,只不過(guò)是大的跟小的區(qū)別。
是叫企宣 和統(tǒng)籌也有些關(guān)系吧
大學(xué)里除了要學(xué)營(yíng)銷(xiāo)與策劃專(zhuān)業(yè)外,還應(yīng)該學(xué)一些傳媒方面的專(zhuān)業(yè),以及公關(guān)(公共關(guān)系)方面的專(zhuān)業(yè)
當(dāng)然學(xué)的越多懂的越多越好,最好的話(huà),電視編導(dǎo)等一些方面的專(zhuān)業(yè)也自已學(xué)一些,以后也會(huì)應(yīng)該有用得到的地方
是過(guò)氣藝人。
沒(méi)有過(guò)期的藝人,人不是物品不能拿來(lái)形容。
過(guò)氣藝人就是指人氣大不如前,現(xiàn)在市場(chǎng)影響力不再,不再有人捧著,這種明星稱(chēng)為過(guò)氣。如果這種明星不愿認(rèn)清現(xiàn)實(shí),或是想再重新搏一把,亦或是想再站在聚光燈下,過(guò)著眾星捧月的生活,但很快被現(xiàn)實(shí)抽打,收獲的不是榮耀,而是市場(chǎng)的奚落。
之前看了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("文件序列化失?。?#34;);
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());
}
}