国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Hadoop和Paoding的中文詞頻統(tǒng)計(jì)的實(shí)現(xiàn)

2017-10-26 15:30:49關(guān)輝
電腦知識(shí)與技術(shù) 2017年22期
關(guān)鍵詞:大數(shù)據(jù)分析

關(guān)輝

摘要:大數(shù)據(jù)分析技術(shù)近年來發(fā)展非常迅速,已經(jīng)成功應(yīng)用在多個(gè)行業(yè)和領(lǐng)域,詞頻統(tǒng)計(jì)是大數(shù)據(jù)分析中經(jīng)常要實(shí)現(xiàn)的一個(gè)功能。目前最為熱門的開源大數(shù)據(jù)框架Hadoop中提供的經(jīng)典案例WordCount僅能進(jìn)行英文詞頻分析。通過對(duì)Ha-doop相關(guān)技術(shù)的研究,對(duì)WordCount進(jìn)行了改寫,利用中文分詞器Paoding對(duì)中文語(yǔ)句進(jìn)行分詞,實(shí)現(xiàn)了中文詞頻統(tǒng)計(jì)的功能。

關(guān)鍵詞:大數(shù)據(jù)分析;詞頻統(tǒng)計(jì);Hadoop;MapReduce;Paoding

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)22-0007-03

1背景

近年來伴隨著互聯(lián)網(wǎng)、云計(jì)算、移動(dòng)互聯(lián)和物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,帶動(dòng)了電子商務(wù)、網(wǎng)絡(luò)金融等相關(guān)產(chǎn)業(yè)的發(fā)展,這些新一代信息技術(shù)正成為各行各業(yè)運(yùn)營(yíng)和發(fā)展的重要推動(dòng)力。但無(wú)處不在的移動(dòng)設(shè)備、RFID、無(wú)線傳感器等每時(shí)每刻都在產(chǎn)生數(shù)據(jù),數(shù)以億計(jì)用戶的互聯(lián)網(wǎng)服務(wù)每分每秒都在產(chǎn)生巨量的交互,要處理的數(shù)據(jù)量以幾何級(jí)數(shù)的形式增長(zhǎng),而業(yè)務(wù)需求和競(jìng)爭(zhēng)壓力對(duì)數(shù)據(jù)處理的實(shí)時(shí)性、有效性又提出了更高的要求,傳統(tǒng)的信息處理手段難以應(yīng)對(duì)。從2009年開始,“大數(shù)據(jù)”成為互聯(lián)網(wǎng)信息技術(shù)行業(yè)的熱門詞匯,各種大數(shù)據(jù)處理技術(shù)紛至沓來,為解決上述問題提供了新的方案。隨著大數(shù)據(jù)時(shí)代的來臨,大數(shù)據(jù)分析也應(yīng)運(yùn)而生。大數(shù)據(jù)分析帶給我們最直接的視覺感受就是利用圖形或者表格來展示大數(shù)據(jù)背后所隱藏的內(nèi)容,既真實(shí)又直觀。比如我們?cè)诟鞣N媒體上經(jīng)??吹降摹霸~云”、“新聞熱詞”等實(shí)際上就是利用大數(shù)據(jù)分析技術(shù)實(shí)現(xiàn)的詞頻統(tǒng)計(jì)的一種形式。

當(dāng)前最為炙手可熱的開源大數(shù)據(jù)框架Hadoop可以幫助我們來實(shí)現(xiàn)詞頻統(tǒng)計(jì)的功能。Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,它以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理。WordCount就是Hadoop中的一個(gè)經(jīng)典案例,它可以對(duì)以空格劃分的英文進(jìn)行詞頻統(tǒng)計(jì),初學(xué)Hadoop的人都是從理解WordCount這個(gè)案例開始的。相比于英文,中文的詞頻統(tǒng)計(jì)通常要復(fù)雜得多,因?yàn)橹形纳婕昂芏嗾Z(yǔ)義及分詞的不同。就像大家經(jīng)常用的Word軟件中的檢查拼寫和語(yǔ)法的功能,檢查英文往往很準(zhǔn)確,而它檢查出的中文錯(cuò)誤往往根本就沒有錯(cuò)誤。不過,現(xiàn)在也出現(xiàn)了很多中文分詞的工具組件,Pa-oding(庖?。┚褪且豢罘浅:糜酶咝У拈_源中文分詞組件,填補(bǔ)了國(guó)內(nèi)中文分詞方面開源組件的空白。我們可以結(jié)合Hadoop和Paoding這兩種技術(shù),利用Hadoop來實(shí)現(xiàn)分布式的數(shù)據(jù)處理,利用Paoding進(jìn)行中文分詞,仿照WordCount案例來實(shí)現(xiàn)中文詞頻統(tǒng)計(jì)的功能。

2開源大數(shù)據(jù)框架Hadoop和中文分詞組件Paoding

Hadoop是一個(gè)開發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件平臺(tái),是Apache基金會(huì)所開發(fā)的一個(gè)用Java語(yǔ)言實(shí)現(xiàn)的開源分布式系統(tǒng)基礎(chǔ)框架,實(shí)現(xiàn)在大量計(jì)算機(jī)組成的集群中對(duì)海量數(shù)據(jù)進(jìn)行分布式計(jì)算的功能。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序,充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop DistributedFile svstem),簡(jiǎn)稱HDFS,HDFS為海量的數(shù)據(jù)提供了存儲(chǔ)。另外還實(shí)現(xiàn)了一個(gè)并行計(jì)算的編程模型MapReduce,用戶只要繼承MapReduceBase,提供分別實(shí)現(xiàn)Map和Reduce的兩個(gè)類,并注冊(cè)Job即可自動(dòng)分布式運(yùn)行。MapReduce為海量的數(shù)據(jù)提供了計(jì)算。

Paoding(庖丁)中文分詞庫(kù)是一個(gè)使用Java開發(fā)的,可結(jié)合到Lucene應(yīng)用中的,為互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)使用的中文搜索引擎分詞組件。它采用完全的面向?qū)ο笤O(shè)計(jì),具有極高的效率和擴(kuò)展性。它采用基于不限制個(gè)數(shù)的詞典文件對(duì)文章進(jìn)行有效切分,能夠?qū)υ~匯進(jìn)行分類定義,并能對(duì)未知的詞匯進(jìn)行合理解析。

3中文詞頻統(tǒng)計(jì)的實(shí)現(xiàn)

3.1Hadoop開發(fā)環(huán)境配置

首先在用于開發(fā)的PC機(jī)上安裝hadoop 2.7.0,并將hadoop-2.7.0/bin目錄下的hadoop.dll文件拷貝到系統(tǒng)路徑C:\Win-dows\System32下,還需在系統(tǒng)環(huán)境變量的path中添加hadoop的bin目錄路徑,如圖1所示。接著就需要在Java開發(fā)平臺(tái)Eclipse中配置Hadoop開發(fā)環(huán)境。在網(wǎng)上下載Hadoop插件hadoop-eclipse-kepler-plugin-2.2.0.iar,將文件拷貝到Eclipse的pl-ugins目錄下。然后進(jìn)人Eclipse,依次打開Window→Preferenc-es,選中左邊的Hadoop Map/Reduce標(biāo)簽,在右邊的文本框中指定到hadoop-2.7.0目錄,點(diǎn)擊OK按鈕,如圖2所示。至此Ha-doop的開發(fā)環(huán)境準(zhǔn)備完畢。

3.2中文分詞組件Paoding的配置

從Paoding官網(wǎng)下載paoding-analysis壓縮包,解壓后找到四個(gè)jar包:lucene-analyzers,iar、lucene-core.jar、paoding-analy-sis.iar和commons-logging.jar,拷貝到項(xiàng)目的WEB-INF/lib目錄。從paoding-analysis壓縮包解壓后的文件中找到dic文件夾,拷貝到Hadoop的安裝目錄E:/pub/hadoop-2.7.0中。然后停止HDFS,再在hadoop-env.sh文件末尾配置Paoding字典的環(huán)境變量:添加export PAODING_DIC_HOME=E:/pub/hadoop-2.7.0/dic,添加完后重啟HDFS。

3.3中文詞頻統(tǒng)計(jì)的原理

首先利用中文分詞組件Paoding對(duì)HDFS中的輸入數(shù)據(jù)進(jìn)行切片,再通過Map方法將鍵值映射,最后通過Reduce方法進(jìn)行歸約。為了減少Reduce的壓力,有時(shí)還會(huì)在Map結(jié)束后在每個(gè)Hadoop節(jié)點(diǎn)進(jìn)行排序以及合并,如圖3所示。

3.4中文詞頻統(tǒng)計(jì)的實(shí)現(xiàn)

將需要進(jìn)行分析的文件拷貝到指定的臨時(shí)目錄temp中,并調(diào)用文檔轉(zhuǎn)換的方法對(duì)文件格式進(jìn)行轉(zhuǎn)換,將各種常見類型的文檔(如:pdf、doc等)轉(zhuǎn)換為純文本txt形式的文檔。通過運(yùn)行MapReduce,對(duì)temp目錄中需要分析的文件進(jìn)行映射(M印)和歸約(Reduce)。Map和Reduce的輸入、輸出都采用鍵值對(duì)的形式進(jìn)行傳遞。Map對(duì)輸入的鍵值(鍵:偏移量,值:一行文本)調(diào)用中文分詞器Paoding進(jìn)行切片分詞,將每個(gè)單詞作為鍵、單詞標(biāo)記(定值1)作為值進(jìn)行輸出。Map的輸出內(nèi)容(鍵:?jiǎn)卧~,值:?jiǎn)卧~標(biāo)記1)會(huì)作為Reduce的輸入內(nèi)容進(jìn)行歸約處理,對(duì)相同鍵的列表進(jìn)行累加,Reduce結(jié)束后返回整個(gè)MapReduce的輸出內(nèi)容,即每個(gè)單詞的計(jì)數(shù)。這些可以通過改寫Hadoop的經(jīng)典案例WordCount中的Mapper類和Reducer類來實(shí)現(xiàn)。改寫后的Mapper類和Reducer類的關(guān)鍵代碼如下:

當(dāng)MapReduce結(jié)束后,每個(gè)單詞以及該單詞在文件中出現(xiàn)的次數(shù)會(huì)以Json的形式傳遞給前端,前端會(huì)調(diào)用d3js大數(shù)據(jù)可視化引擎對(duì)傳遞的Json數(shù)據(jù)進(jìn)行各種形式的展示(如:詞云、柱形圖、餅狀圖等)。例如:對(duì)中國(guó)古代四大名著之一的《紅樓夢(mèng)》進(jìn)行詞頻統(tǒng)計(jì)并把結(jié)果以“詞云”形式展示出來的效果如圖4所示。

4結(jié)束語(yǔ)

大數(shù)據(jù)分析技術(shù)近年來得到了飛速發(fā)展和快速應(yīng)用,詞頻統(tǒng)計(jì)功能在大數(shù)據(jù)分析中經(jīng)常用到。利用開源大數(shù)據(jù)框架Ha-doop實(shí)現(xiàn)分布式數(shù)據(jù)處理,利用中文分詞組件Paoding進(jìn)行中文分詞,成功實(shí)現(xiàn)了中文詞頻統(tǒng)計(jì)的功能,并可以調(diào)用d3js大數(shù)據(jù)可視化引擎對(duì)統(tǒng)計(jì)結(jié)果進(jìn)行圖形化展示。endprint

猜你喜歡
大數(shù)據(jù)分析
面向大數(shù)據(jù)遠(yuǎn)程開放實(shí)驗(yàn)平臺(tái)構(gòu)建研究
面向大數(shù)據(jù)分析的信息管理實(shí)踐教學(xué)體系構(gòu)建
傳媒變局中的人口電視欄目困境與創(chuàng)新
科技傳播(2016年19期)2016-12-27 14:35:21
大數(shù)據(jù)分析的移動(dòng)端在網(wǎng)絡(luò)課堂教學(xué)中的應(yīng)用
会昌县| 琼结县| 依兰县| 龙井市| 体育| 天水市| 永川市| 崇阳县| 恭城| 阜阳市| 荔浦县| 乌拉特前旗| 巨鹿县| 东山县| 宝鸡市| 大埔区| 博客| 和顺县| 太谷县| 景洪市| 平塘县| 淮滨县| 友谊县| 肇东市| 长白| 泸州市| 龙南县| 大港区| 资源县| 吴桥县| 遵义县| 哈巴河县| 从江县| 靖江市| 县级市| 交城县| 平度市| 广饶县| 南陵县| 新竹市| 平罗县|