久久精品日韩无码|61伊人久久绿帽|最新国产浮力网站|亚州aV无码国产|明星一二三区av|超碰人人在线成人|澳门无码福利av

多媒體編輯和網(wǎng)絡(luò)編輯的區(qū)別?

時間:2025-03-20 23:52 人氣:0 編輯:招聘街

一、多媒體編輯和網(wǎng)絡(luò)編輯的區(qū)別?

多媒體編輯需要掌握采、編、播等各種媒體應用,而網(wǎng)編則只需掌握一兩個技能就能工作。

二、媒體記者編輯面試題

媒體記者編輯面試題一直是備受關(guān)注的話題,無論是從媒體行業(yè)內(nèi)部還是外部,對于這一崗位的面試一直備受關(guān)注。媒體記者編輯是一項高度專業(yè)性的工作,需要具備扎實的寫作能力、豐富的新聞敏感度以及較強的溝通能力和團隊合作精神。在這篇文章中,我們將討論一些常見的媒體記者編輯面試題,幫助準備應聘者更好地準備面試。

1. 請簡要介紹一下自己的個人背景和對媒體記者編輯這一職業(yè)的理解。

這是一道常見的開放性問題,通過應聘者的回答可以了解其對媒體記者編輯這一職業(yè)的認知程度以及個人背景情況。應聘者可以從自己的教育經(jīng)歷、工作經(jīng)驗和興趣愛好等方面進行介紹,同時要突出自己對新聞行業(yè)的熱愛和認識。

2. 請談?wù)勀J為一個優(yōu)秀的媒體記者編輯應該具備哪些素質(zhì)和技能?

一個優(yōu)秀的媒體記者編輯應該具備較強的寫作能力、極高的新聞敏感度、良好的溝通能力和卓越的團隊合作精神。此外,他們還應該具備廣泛的知識面、快速學習的能力和扎實的調(diào)研技巧,能夠迅速準確地獲取信息并撰寫出高質(zhì)量的新聞稿件。

3. 在處理新聞報道時,您認為什么樣的原則是最重要的?

在處理新聞報道時,最重要的原則是客觀、公正、真實和準確。媒體記者編輯在進行報道時應該堅守事實真相,避免主觀色彩和誤導性言論,確保新聞報道的公正性和客觀性,以此來維護新聞傳播的專業(yè)性和道德規(guī)范。

4. 您認為新聞報道中的公信力是如何建立和維護的?

新聞報道的公信力是通過媒體的信譽、報道的準確性和客觀性來建立和維護的。媒體記者編輯應該保持敬業(yè)精神,嚴謹?shù)墓ぷ鲬B(tài)度和高質(zhì)量的編輯能力,嚴格遵守報道規(guī)范和職業(yè)倫理,確保新聞報道的真實可信,從而贏得公眾的信任和尊重。

5. 請舉例說明您在以往的工作中如何處理過一些困難的新聞報道?

應聘者可以通過舉例說明自己在以往工作中遇到的一些困難新聞報道,如何應對和處理這些挑戰(zhàn),以及最終取得的成果。能夠展示自己的應變能力、解決問題的能力和團隊合作精神,讓面試官對自己的能力有更深入的了解。

三、全媒體編輯記者面試題

在當今數(shù)字化時代,新聞行業(yè)也隨之發(fā)生了翻天覆地的變化。全媒體編輯記者面試題正日益受到關(guān)注,成為評判一個求職者是否具備綜合能力和專業(yè)素養(yǎng)的重要標準。全媒體編輯記者面試題不僅考察了應聘者對新聞行業(yè)的了解程度,還能夠測試其在數(shù)字化媒體環(huán)境下的適應能力。

全媒體編輯記者面試題的分類

一般情況下,全媒體編輯記者面試題可以分為多個方面,包括但不限于:

  • 新聞基礎(chǔ)知識:評估應聘者對新聞行業(yè)的了解程度,包括新聞價值觀念、新聞報道原則、新聞倫理道德等方面。
  • 數(shù)字化媒體能力:考察應聘者在數(shù)字化媒體環(huán)境下的實際操作能力,如社交媒體運營、內(nèi)容生產(chǎn)能力等。
  • 創(chuàng)新創(chuàng)意能力:了解應聘者的創(chuàng)新意識和創(chuàng)意能力,是否能夠脫穎而出,在新聞生產(chǎn)中帶來新的視角和方式。
  • 應變能力:檢驗應聘者在新聞報道中面對突發(fā)事件時的反應能力和處理問題的能力。

全媒體編輯記者面試題示例

下面是一些常見的全媒體編輯記者面試題示例,供應聘者參考:

  1. 請談?wù)勀銓?shù)字化媒體的理解,以及在新聞報道中如何運用數(shù)字化媒體工具?
  2. 舉例說明一次你如何應對新聞報道中的突發(fā)事件,并介紹事件處理過程中的思考和決策?
  3. 你認為未來新聞行業(yè)的發(fā)展趨勢是什么?作為一名全媒體編輯記者,如何應對這些挑戰(zhàn)?
  4. 請分享一次你在數(shù)字化媒體平臺上進行內(nèi)容推廣的經(jīng)歷,以及最終的效果和反饋?

通過以上的例題,應聘者不僅可以準備充分應對全媒體編輯記者面試,還能夠在面試中展現(xiàn)出自己的優(yōu)勢和特長,從而提升成功的機會。

全媒體編輯記者面試的重要性

在當今新聞業(yè)競爭激烈的環(huán)境下,全媒體編輯記者的角色變得愈發(fā)關(guān)鍵。他們不僅需要具備傳統(tǒng)編輯記者的專業(yè)素養(yǎng),還需要具備數(shù)字化媒體操作能力和創(chuàng)新思維。因此,全媒體編輯記者面試成為了雇主篩選優(yōu)秀人才的重要環(huán)節(jié)。

通過全媒體編輯記者面試,能夠有效評估應聘者的綜合能力和專業(yè)素養(yǎng),篩選出最適合數(shù)字化媒體環(huán)境的人才。同時,對于應聘者而言,通過面試也能夠更加深入地了解未來工作的挑戰(zhàn)和機遇,為自己的職業(yè)發(fā)展做好準備。

因此,全媒體編輯記者面試不僅僅是一次簡單的面試過程,更是一次雙向選擇的機會,能夠讓企業(yè)找到最適合自己的人才,也能讓應聘者找到最適合自己發(fā)展的平臺。

結(jié)語

全媒體編輯記者面試題的重要性不言而喻,它代表了一個人在新聞行業(yè)中的未來發(fā)展?jié)摿蜋C會。應聘者應當充分準備,展現(xiàn)出自己的專業(yè)素養(yǎng)和優(yōu)勢,從而在激烈的競爭中脫穎而出,贏得理想的工作機會。

四、全媒體記者編輯面試題

全媒體記者編輯面試題

介紹

在當今數(shù)字化時代,全媒體記者編輯扮演著至關(guān)重要的角色,他們負責撰寫新聞內(nèi)容、編輯視頻素材、管理社交媒體賬號等諸多任務(wù)。由于這一職業(yè)的多樣性和挑戰(zhàn)性,面試成為了評估候選人能力和技能的重要環(huán)節(jié)。

面試題示例

  • 1. 請介紹一下你的編輯經(jīng)驗和記者背景。
  • 2. 如何看待全媒體時代對新聞行業(yè)的影響?
  • 3. 你是如何保持對新聞素材的敏感性和獨立性的?
  • 4. 如何處理新聞報道中的道德困境?
  • 5. 請描述一次你成功完成的全媒體項目經(jīng)歷。
  • 6. 如何利用社交媒體平臺進行新聞傳播和互動?
  • 7. 你對未來全媒體發(fā)展趨勢有何看法?
  • 8. 請描述一下你的工作方式和處理壓力的能力。

面試技巧

在回答這些面試題時,記得突出你的獨特經(jīng)驗和技能,強調(diào)與全媒體工作相關(guān)的成就和挑戰(zhàn)。同時,展現(xiàn)你對新聞行業(yè)發(fā)展的理解和對未來發(fā)展的思考,這將給面試官留下深刻印象。

總結(jié)

全媒體記者編輯是一個需要綜合能力的職業(yè),不僅需要具備新聞敏感性和寫作能力,還需要熟悉多種數(shù)字工具和社交媒體平臺。通過準備和思考上述面試題,可以幫助你更好地展現(xiàn)自己的優(yōu)勢,贏得心儀工作的機會。

五、融媒體編輯記者面試題

融媒體編輯記者面試題是許多求職者在進入媒體行業(yè)時都會面對的挑戰(zhàn)性考驗。在競爭激烈的行業(yè)當中,如何應對這些面試題目,展現(xiàn)自己的專業(yè)素養(yǎng)和能力,成為每位求職者都需要認真準備的重要環(huán)節(jié)。

面試題一:請介紹一下您對融媒體編輯工作的理解以及您的相關(guān)經(jīng)歷。

對于這個問題,應聘者可以從融媒體編輯的定義、工作內(nèi)容、以及自身在相關(guān)領(lǐng)域的經(jīng)驗等方面入手,展現(xiàn)自己對于這個職位的熟悉程度和自信心。

面試題二:請談?wù)勀鷮π侣剝r值與內(nèi)容策劃的看法,舉例說明您的工作思路。

這個問題可以考察應聘者對于新聞敏感度和策劃能力。可以結(jié)合實際案例,闡述自己在發(fā)掘新聞價值、策劃內(nèi)容方面的經(jīng)驗和理念,展示自己的專業(yè)素養(yǎng)。

面試題三:您是如何處理工作中的時間管理與多任務(wù)處理的挑戰(zhàn)?

這個問題考察了應聘者的工作效率和應變能力??梢越Y(jié)合時間管理方法、工作優(yōu)先級的設(shè)定以及應對多任務(wù)處理的經(jīng)驗,展示自己面對挑戰(zhàn)時的沉著與應對能力。

面試題四:請分享一次您在采訪中遇到的挑戰(zhàn)及解決方案。

應聘者可以結(jié)合具體案例,描述自己在采訪過程中遇到的困難,以及如何應對和解決這些挑戰(zhàn),展現(xiàn)自己的應變能力和處理問題的能力。

面試題五:談?wù)勀鷮?nèi)容營銷與媒體融合發(fā)展的看法,您認為融媒體編輯在其中扮演的角色是什么?

這個問題考察了應聘者對于行業(yè)未來發(fā)展的了解和思考。應聘者可以從內(nèi)容營銷和媒體融合的發(fā)展趨勢、自身在這個領(lǐng)域的實踐經(jīng)驗以及融媒體編輯在其中的作用等方面入手,展示自己對行業(yè)發(fā)展的洞察力和前瞻性。

總結(jié)

在應對融媒體編輯記者面試題時,應聘者需要充分準備,結(jié)合自身的經(jīng)驗和能力,展示出對職位的理解與熱情,同時展現(xiàn)出自己的專業(yè)素養(yǎng)和應變能力。通過深入思考和實際案例的舉證,可以讓面試官更好地了解應聘者的能力和潛力,從而增加成功應聘的機會。

六、ledshowyq多媒體編輯軟件怎么用?

這個是第一屏控制軟件,打開軟件,先要設(shè)置參數(shù),然后就可以使用了

七、記事本程序可以編輯多媒體文檔嗎?

對,都是文本編輯器。為過后者的功能更強大。打開一個3M大小的TXT格式小說,用記事本需要幾秒10來秒鐘,而寫字板幾乎是瞬間;打開后,把主角的名字全部替換成別的,用記事本會造成系統(tǒng)假死,CPU差不多100%,而且N分鐘后都沒有完成。而寫字板里面同樣的操作卻是秒秒鐘就搞定了。“寫字板”是一個使用簡單,但卻功能強大的文字處理程序,用戶可以利用它進行日常工作中文件的編輯。

它不僅可以進行中英文文檔的編輯,而且還可以圖文混排,插入圖片、聲音、視頻剪輯等多媒體資料。

記事本用于純文本文檔的編輯,功能沒有寫字板強大,適于編寫一些篇幅短小的文件,由于它使用方便、快捷,應用也是比較多的,比如一些程序的README文件通常是以記事本的形式打開的。

八、如何成為一個合格的多媒體編輯?

如何做好一個新媒體編輯,其實熱點時事的敏感度和文章的質(zhì)量都很重要,因為只有文章的閱讀量上來了,粉絲漲了,你運營的公眾號才能賺錢?,F(xiàn)在很多人會選擇用一些公眾號輔助工具,來幫助公眾號運營。我親測過幾個,感覺總體來說西瓜助手會相對好一些,素材也會比較多,還能根據(jù)公眾號定位推薦專享素材,這是我比較喜歡地方。

九、PE影音軟件:提供高質(zhì)量的多媒體播放和編輯功能

PE影音軟件:助您暢享高品質(zhì)多媒體體驗

如今,多媒體在我們的生活中扮演著越來越重要的角色。我們希望能夠觀看高清視頻、收聽高音質(zhì)音樂,并且具備強大的編輯功能,以滿足自身的個性化需求。PE影音軟件正是以這樣的目標而誕生,為用戶提供了一站式解決方案,讓您暢享高品質(zhì)的多媒體體驗。

PE影音軟件憑借其卓越的性能和出色的功能一直備受用戶喜愛。無論是從播放質(zhì)量還是編輯功能方面來看,PE影音軟件都能輕松滿足您的要求。

多媒體播放:讓畫面和聲音更加震撼

PE影音軟件提供了強大的多媒體播放功能,兼容幾乎所有常見的音視頻格式。不管是高清視頻還是無損音頻,PE影音軟件都能以出色的畫質(zhì)和音質(zhì)呈現(xiàn),帶給您身臨其境的觀影和音樂體驗。

此外,PE影音軟件還支持4K、8K超高清內(nèi)容播放,讓您可以盡情享受細膩逼真的影像效果。無論是在家中的大屏幕電視上,還是在移動設(shè)備上觀看,PE影音軟件都能為您呈現(xiàn)最優(yōu)質(zhì)的多媒體內(nèi)容。

靈活的編輯功能:個性化定制您的多媒體作品

PE影音軟件不僅提供了卓越的播放功能,還擁有強大的編輯能力,讓您能夠定制化您的多媒體作品。您可以剪輯視頻、調(diào)整畫面效果、添加字幕和特效,以及調(diào)音等等。不論您是專業(yè)的視頻制作人員還是普通用戶,PE影音軟件都能滿足您的編輯需求。

除此之外,PE影音軟件還提供了豐富的音頻特效,如均衡器、混響和時鐘等功能,以及視頻特效,如馬賽克、顛倒和快慢放等。這些功能的存在,使得您的多媒體作品更加生動豐富,充滿個性。

用戶友好的界面和操作:操作簡便快捷

除了強大的功能,PE影音軟件還注重用戶體驗,通過簡潔直觀的界面設(shè)計和易于操作的功能布局,讓用戶能夠輕松上手。無論您是初學者還是資深用戶,都能夠快速上手使用PE影音軟件,并發(fā)揮其最大潛力。

此外,PE影音軟件還提供了多語言界面選擇,以滿足用戶的地域和語言需求。無論您身在何處,PE影音軟件都能夠為您提供舒適的使用體驗。

結(jié)語

PE影音軟件通過其出色的多媒體播放和編輯功能,為用戶提供了全方位、高品質(zhì)的多媒體體驗。不論您是追求高清視頻、高音質(zhì)音頻,還是希望將多媒體作品進行個性化定制,PE影音軟件都能滿足您的需求。它的用戶友好界面和操作方式,使得使用起來更加簡單快捷。無論是聆聽音樂還是觀看視頻,PE影音軟件都將給您帶來非凡的享受。

感謝您閱讀本文,希望通過本文您能夠了解到PE影音軟件所提供的優(yōu)異功能和特點,并且能夠為您的多媒體體驗帶來幫助。

十、mahout面試題?

之前看了Mahout官方示例 20news 的調(diào)用實現(xiàn);于是想根據(jù)示例的流程實現(xiàn)其他例子。網(wǎng)上看到了一個關(guā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工具類進行訓練,得到訓練模型。

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工具類進行訓練,得到訓練模型。

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) {

//將訓練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)

makeTrainVector();

//產(chǎ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("生成訓練模型失??!");

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());

}

}

相關(guān)資訊
熱門頻道

Copyright © 2024 招聘街 滇ICP備2024020316號-38