基于Spark的Web文本挖掘系統(tǒng)的研究與實現(xiàn) 計算機專業(yè)_第1頁
基于Spark的Web文本挖掘系統(tǒng)的研究與實現(xiàn) 計算機專業(yè)_第2頁
基于Spark的Web文本挖掘系統(tǒng)的研究與實現(xiàn) 計算機專業(yè)_第3頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第1章緒論1.1研究背景互聯(lián)網(wǎng)自誕生以來就對各行業(yè)和人們的生活方式產(chǎn)生著深刻的影響,而今更甚,網(wǎng)民規(guī)模在移動互聯(lián)網(wǎng)興起后更是發(fā)生了爆炸式的增長。根據(jù)2017年1月中國互聯(lián)網(wǎng)信息中心(CNNIC)發(fā)布的第39次《中國互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)計報告》截至2016年12月,我國網(wǎng)民規(guī)模達7.31億,普及率達到53.2%,超過全球平均水平3.1個百分點,超過亞洲平均水平7.6個百分點\o""[1]。全年共計新增網(wǎng)民4299萬人,增長率為6.2%。中國網(wǎng)民規(guī)模已經(jīng)相當(dāng)于歐洲人口總量。隨著web2.0技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)上出現(xiàn)了如微博、微信、論壇等各類大型的社交平臺。特別是新浪微博,自誕生起就以鮮明的開放性進入大眾的生活中。移動互聯(lián)網(wǎng)的高速發(fā)展更是推動了其發(fā)展。新浪微博數(shù)據(jù)中心發(fā)布的《2016年度微博用戶發(fā)展報告》顯示,據(jù)2016年微博發(fā)布的第三季度財報中顯示,截止2016年9月30日,微博月活躍人數(shù)已達到2.97億,較2015年同期相比增長34%;其中9月份移動端在MAU總量中的占比為89%;9月的日活躍用戶達到1.32億,較去年同期增長32%。從以上數(shù)據(jù)可以看出新浪微博在網(wǎng)絡(luò)意見匯聚和傳播中起了非常重要的作用,已經(jīng)成為輿情發(fā)展的主要媒介。因此,微博熱點可以作為當(dāng)前社會輿論熱點的一個側(cè)面體現(xiàn)。截至2016年12月,中國的網(wǎng)頁數(shù)量約為2360億個,年增長11.2%,數(shù)量較2010年增長了近四倍。面對如此海量的數(shù)據(jù),傳統(tǒng)的以人力驅(qū)動的文本挖掘系統(tǒng)其有限的處理能力已不再適用。大數(shù)據(jù)技術(shù)的出現(xiàn)讓我們對海量數(shù)據(jù)進行快速處理成為了可能,其中ApacheSpark是當(dāng)前流行的大數(shù)據(jù)處理模型,具有快速、通用、簡單等特點。Spark是針對MapReduce在迭代式機器學(xué)習(xí)算法和交互式數(shù)據(jù)挖掘等應(yīng)用方面的低效率,而提出的新的內(nèi)存計算框架,既保留了MapReduce的可擴展性、容錯性、兼容性,又彌補了MapReduce在這些應(yīng)用上的不足。1.2研究現(xiàn)狀1.2.1文本挖掘技術(shù)文本挖掘也稱文本中的知識發(fā)現(xiàn),是數(shù)據(jù)挖掘方法在文本數(shù)據(jù)集上的運用旨在從大量非結(jié)構(gòu)化的文本集合中挖掘信息、發(fā)現(xiàn)知識。它是一個跨學(xué)科的交叉研究領(lǐng)域,涉及機器學(xué)習(xí)、自然語言處理、統(tǒng)計學(xué)等多個領(lǐng)域的知識和方法。近年來,隨著數(shù)據(jù)存儲技術(shù)和互聯(lián)網(wǎng)的不斷發(fā)展,數(shù)據(jù)正以前所未有的速度迅速增長和積累,特別是社交媒體的用戶每天都在創(chuàng)造大量的文本信息。這些數(shù)據(jù)一定程度上記錄了人們的行為態(tài)度、交往過程和互動關(guān)系,為研究人們的社會化行為提供了新的可能。社會科學(xué)研究方法是我們認識各種社會現(xiàn)象及事物的途徑,是我們獲取知識的重要方式。文本挖掘可以利用機器學(xué)習(xí)、自然語言處理等計算機技術(shù)從大量文本數(shù)據(jù)中發(fā)現(xiàn)模式、規(guī)律、趨勢等,為學(xué)者以定量手段進行社會科學(xué)研究提供新的方法。社會計算的目的便在于架起自然科學(xué)與社會科學(xué)之間的橋梁,借助計算機技術(shù)形成一套完整的社會科學(xué)定量分析研究手段。基于此,文本挖掘在社會科學(xué)領(lǐng)域研究中的應(yīng)用得到了學(xué)者們越來越多的關(guān)注。相關(guān)研究表明,近年來國際上關(guān)于文本挖掘的研究論文呈不斷上升趨勢,且主要集中在自然科學(xué)領(lǐng)域。王繼成、潘金貴、張福炎于2000年在論文《web文本挖掘技術(shù)研究》中提出了一種才用多個agent體系結(jié)構(gòu)的web文本挖掘系統(tǒng)原型WebMiner.WebMiner。將多維文本分析與文本挖掘這兩種技術(shù)有機地結(jié)合起來,以幫助用戶快速、有效地挖掘Web上的HTML文檔。陳建華、包煊于2010年在論文《Web挖掘系統(tǒng)的設(shè)計與實現(xiàn)》中從文本挖掘定義、挖掘任務(wù)、挖掘分類等方面介紹了挖掘理論。在分詞中采用了近鄰法來減少訓(xùn)練樣本集中的樣本數(shù)量來加快算法的執(zhí)行速度。胡健、楊炳儒等人于2008年在論文《基于非結(jié)構(gòu)化數(shù)據(jù)挖掘結(jié)構(gòu)模型的Web文本聚類算法》中提出了一種新的Web文本聚類算法——基于DFSSM的Web文本聚類(WTCDFSSM)算法。該算法可以對各類遠程教育站點上收集的文本資料信息自動進行聚類挖掘;采用網(wǎng)格結(jié)構(gòu)模型,幫助人們進行文本信息導(dǎo)航;從海量文本信息源中快速有效地獲取重要的知識。黃曉斌、趙超于2009年在論文《文本挖掘在網(wǎng)絡(luò)輿情信息分析中的應(yīng)用》中介紹了網(wǎng)絡(luò)輿情的特點與作用,分析了文本挖掘技術(shù)的主要功能,提出網(wǎng)絡(luò)輿情信息挖掘分析模型,并以實例說明文本挖掘在網(wǎng)絡(luò)輿情分析中的應(yīng)用。1.2.2大數(shù)據(jù)處理技術(shù)當(dāng)今時代是一個信息爆炸的時代,每時每刻都有大量的數(shù)據(jù)被生產(chǎn)、搬運和應(yīng)用。為了解決原來越多海量數(shù)據(jù)的專業(yè)化、規(guī)?;庸栴},挖掘數(shù)據(jù)蘊藏的價值,大數(shù)據(jù)處理技術(shù)應(yīng)運而生。初代大數(shù)據(jù)并行處理框架Hadoop應(yīng)用最為廣泛,但是隨著大數(shù)據(jù)領(lǐng)域的研究和實踐不斷的深入,也暴露出一些問題,如不適合低延遲數(shù)據(jù)訪問、不能進行迭代式數(shù)據(jù)處理等缺點。Spark基于內(nèi)存計算,自2013年成為Apache基金項目后高速發(fā)展,憑借其高效的數(shù)據(jù)處理能力和對實時、交互式數(shù)據(jù)訪問的支持逐漸成為新一代的大數(shù)據(jù)處理引擎。其最新版本Spark2.1的機器學(xué)習(xí)庫中包含了豐富的數(shù)據(jù)挖掘相關(guān)算法,如LDA,聚類算法K-means、分類算法樸素貝葉斯等。能夠輕松應(yīng)歸常規(guī)的大規(guī)模文本挖掘場景,并具有很好的效果和很高的效率。但是,作為一種新興的技術(shù),面對多元的復(fù)雜的文本挖掘需求,還是有一定改進的空間。1.3文章的內(nèi)容及意義本文的主要內(nèi)容包括了以下幾點:介紹了文本挖掘的含義以及具體的實現(xiàn)過程,并特別針對社交網(wǎng)站的文本挖掘的相關(guān)知識進行了學(xué)習(xí)和研究,包括了高效的用于新浪微博文本數(shù)據(jù)采集的網(wǎng)絡(luò)爬蟲技術(shù),用于文本挖掘處理的大數(shù)據(jù)處理技術(shù)以及對挖掘結(jié)果進行直觀展示的數(shù)據(jù)可視化技術(shù)。對用于大規(guī)模文本挖掘的大數(shù)據(jù)相關(guān)技術(shù)進行了研究,包括并行計算框架Spark、分布式存儲系統(tǒng)HDFS。對文本挖掘相關(guān)算法進行了研究。實現(xiàn)了一個基于Sprak用于社交網(wǎng)站輿情領(lǐng)域的文本挖掘系統(tǒng),能夠快速準(zhǔn)確地對海量的消息進行處理,得到準(zhǔn)確的分析結(jié)果。構(gòu)建了對挖掘后數(shù)據(jù)的可視化系統(tǒng),提供數(shù)據(jù)的直觀展示和用戶交互的處理。第2章相關(guān)知識與技術(shù)介紹本章介紹了web文本挖掘系統(tǒng)的設(shè)計與實現(xiàn)的相關(guān)技術(shù),文本挖掘的實現(xiàn)流程和步驟,網(wǎng)絡(luò)爬蟲數(shù)據(jù)采集程序,數(shù)據(jù)的儲存與計算平臺,以及數(shù)據(jù)的采集和可視化相關(guān)技術(shù)。2.1網(wǎng)絡(luò)爬蟲網(wǎng)絡(luò)爬蟲是一種按照一定規(guī)則自動地抓取互聯(lián)網(wǎng)信息的程序或者腳本。一般來說,網(wǎng)絡(luò)爬蟲可以分為通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量試網(wǎng)絡(luò)爬蟲一集DeepWeb爬蟲四種。其中通用網(wǎng)絡(luò)爬蟲一般作為搜索引擎的數(shù)據(jù)抓取部分。網(wǎng)絡(luò)爬蟲同樣是數(shù)據(jù)挖掘中數(shù)據(jù)集的重要來源之一。網(wǎng)絡(luò)技術(shù)迅速發(fā)展,互聯(lián)網(wǎng)則是大量信息的載體,怎樣高效地提取和利用這些信息成為了一個很大的挑戰(zhàn)。通用網(wǎng)絡(luò)爬蟲的特點是盡可能的提高網(wǎng)絡(luò)覆蓋率和抓取速率,有可能返回大量與需求不相關(guān)的內(nèi)容,這種方式在處理結(jié)構(gòu)復(fù)雜的信息時也有些吃力。因此部署運行爬蟲的有限資源與近乎無限的互聯(lián)網(wǎng)信息就存在很大矛盾。為了解決這些問題,提高數(shù)據(jù)采集效率,定向爬取網(wǎng)絡(luò)資源的聚焦爬蟲應(yīng)運而生。它選擇性地爬行那些與預(yù)定好的主題相關(guān)頁面的網(wǎng)絡(luò)爬蟲。這樣的做法和通用爬蟲相比可以極大的節(jié)省網(wǎng)絡(luò)和硬件資源,同時抓取到的數(shù)據(jù)也具有更高的質(zhì)量,不但減輕了后續(xù)數(shù)據(jù)清洗的工作量還有助于對信息進行進一步的挖掘。爬蟲的一般工作流程是:從把精心挑選的初始URL放入待爬隊列開始爬取,不斷掃描解析網(wǎng)頁,從中抽取信息及URL,將其存入數(shù)據(jù)庫,再從掃描到的新URL進行新一輪的爬取,如此循環(huán)這個過程,就能達到采集大量信息的目地。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的搜索策略從隊列中選擇下一步要抓取的URL,并重復(fù)上一過程,直到打到系統(tǒng)的某一條件時停止。另外,所有被爬蟲抓取的網(wǎng)頁還會被系統(tǒng)儲存,進行一定的分析過濾,并建立索引,以便以后的查詢和檢索,此外這個過程得到的分析結(jié)果還可能對以后的抓取過程給出反饋和指導(dǎo)。圖2.1.1爬蟲執(zhí)行流程2.2文本挖掘文本挖掘是利用數(shù)據(jù)挖掘方法在文本數(shù)據(jù)集上的運用,旨在運用計算機技術(shù)從大量非結(jié)構(gòu)化的文本集合中抽取、歸納文本內(nèi)容,幫助人們從海量的文本數(shù)據(jù)集中發(fā)現(xiàn)有價值的信息和知識。實現(xiàn)的流程如圖2.1所示:圖2.2.1文本挖掘流程1.?dāng)?shù)據(jù)清洗互聯(lián)網(wǎng)上的文本數(shù)據(jù)巨大且形式不盡相同,為了使文本挖掘的效率更高結(jié)果更準(zhǔn),在使用挖掘算法對數(shù)據(jù)源進行挖掘處理之前必須對采集到的源數(shù)據(jù)進行數(shù)據(jù)清洗。其過程可以簡要概括去除文本標(biāo)記、分詞、去除停用詞三個步驟。去除文本標(biāo)記:網(wǎng)站上的文本數(shù)據(jù)大都以HTML和XML格式進行保存,其中包含大量用于格式化文本的標(biāo)簽。不僅如此,文本自身也含有大量標(biāo)點符號、特殊字符以及空格等。去除文本標(biāo)記的目的就是去除這些對文檔完整性沒有影響的部分,減少可能對挖掘結(jié)果造成的干擾。分詞:分詞是進行中文文本挖掘的基礎(chǔ)和比較關(guān)鍵的步驟,常用的方法有詞庫對比和詞頻統(tǒng)計。其中基于詞頻統(tǒng)計的方法通過分析文本進行分詞,不依賴詞典,效果較穩(wěn)定,而詞庫分詞的效果則受詞典質(zhì)量影響會有明顯波動。去除停用詞:去除文本中的“的”、“地”、“得”這類虛詞,這些詞語只用來標(biāo)識自然語言中的語法關(guān)系而并不會對文本內(nèi)容的實際意義造成影響。2.文本表示很多文本數(shù)據(jù)無法直接被計算機處理,需要將文本轉(zhuǎn)換成計算機能夠識別的語言,用來獲取初始的文本特征集。布爾模型和空間向量模型是文本表示的兩種主要模型。其中布爾(Boolean)模型是基于集合論和布爾代數(shù)的一種簡單檢索模型。它的特點是查找那些于某個查詢詞返回為“真”的文檔。在該模型中,一個查詢詞就是一個布爾表達式,包括關(guān)鍵詞以及邏輯運算符。通過布爾表達式,可以表達用戶希望文檔所具有的特征但完全匹配會導(dǎo)致太多或者太少的結(jié)果文檔被返回。而向量空間模型(VSM)把對文本內(nèi)容的處理簡化為向量空間中的向量運算,并且它以空間上的相似度表達語義的相似度,直觀易懂。當(dāng)文檔被表示為文檔空間的向量,就可以通過計算向量之間的相似性來度量文檔間的相似性。3.特征選取對文本進行語言學(xué)處理和數(shù)學(xué)處理后得到的結(jié)果,包括詞性、詞頻、TF-IDF分數(shù)等都可作為文本的特征使用。比如向量空間模型可以直接使用TF-IDF分數(shù)作為特征,通常,針對不同的任務(wù),可以使用不同的特征,比如情感分析會附帶上情感詞典(比如正面-情感詞的百分比、負面-情感詞的百分比、每個句子中否定詞個數(shù)、每個句子中程度副詞個數(shù)、每個句子特殊標(biāo)點符號個數(shù))作為新的特征。序列標(biāo)注模型,會使用序列邊界與否作為新的特征。

獲取新的特征后,可以使用傳統(tǒng)機器學(xué)習(xí)的降維方法,對數(shù)據(jù)進行篩選和降維,比如主成分分析算法(PCA)、局部線性嵌入(LLE)、LDA、LaplacianEigenmaps拉普拉斯特征映射等。2.3分布式存儲系統(tǒng)——HDFSHDFS(HadoopDistributedFileSystem)是Apache基金會Hadoop項目的一個子項目。它是一個高度容錯的分布式文件系統(tǒng),設(shè)計用于在低成本硬件上使用。它屏蔽了具體的技術(shù)細節(jié),從最終用戶的角度來看,他就想傳統(tǒng)的文件系統(tǒng)一樣,可以通過目錄路徑對文件執(zhí)行各種操作。HDFS主要有以下幾個特點:HDFS適合儲存大量文件,總儲存量可以達到PB,EB級。HDFS也適合存儲單個的文件,單個文件一般在百兆級別以上,不大適合處理大量的小文件?;诹畠r的普通硬件,可以容忍硬件出錯。系統(tǒng)中的某一臺或幾臺服務(wù)器出現(xiàn)故障的時候,系統(tǒng)仍然可以利用備份保證數(shù)據(jù)的完整性。基于簡單的一致性模型,HDFS應(yīng)用程序需要滿足一次寫入,多次讀取一個文件的訪問模式,支持追加操作,但無法對已經(jīng)存在的數(shù)據(jù)進行修改。支持順序的數(shù)據(jù)流訪問,HDFS適合處理批量數(shù)據(jù)而不適合用于隨機定位訪問。同時,它側(cè)重高吞吐量的數(shù)據(jù)訪問,可以容忍數(shù)據(jù)的高延遲,不大適合需要低延遲數(shù)據(jù)系統(tǒng)的構(gòu)建由于分布式存儲系統(tǒng)的性質(zhì),HDFS集群擁有一個NameNode和多個DataNode。NameNode管理文件系統(tǒng)的元數(shù)據(jù),DataNode存儲實際的數(shù)據(jù)??蛻舳送ㄟ^同NameNode與DataNodes的交互訪問文件系統(tǒng)??蛻舳讼騈ameNode發(fā)送請求以獲取文件的元數(shù)據(jù),而真正的文件I/O操作是直接和DataNode進行交互的。圖2.3.1HDFS架構(gòu)2.4大數(shù)據(jù)處理框架SparkSpark于2009年誕生于加州大學(xué)伯克利分校AMPLab。目前,已經(jīng)成為Apache軟件基金會旗下的頂級開源項目。它和Hadoop的MapReduce計算框架類似,但是相對于MapReduce,Spark憑借其可伸縮、基于內(nèi)存等特點以及可以直接讀寫Hadoop上任何格式數(shù)據(jù)的優(yōu)勢,進行批處理時更加高效,并且具有更低的延遲。Spark已經(jīng)成為輕量數(shù)據(jù)快速處理的統(tǒng)一平臺,各種不同的應(yīng)用,如實時流處理,機器學(xué)習(xí),交互式查詢等,都可以通過Spark建立在不同的存儲和運行系統(tǒng)上。2.4.1Spark核心組件以Spark為核心的整個生態(tài)圈,最底層為分布式存儲系統(tǒng)HDFS、AmazonS3、Mesos,或者其他格式的存儲系統(tǒng)(如Hbase,Hive等);資源管理采用Mesos、YARN等集群資源管理模式,或者Spark自帶的獨立運行模式,以及本地運行模式。在Spark大數(shù)據(jù)處理框架中,Spark為上層多種應(yīng)用提供服務(wù)。例如,SparkSQL提供SQL查詢服務(wù),性能比Hive快3~50倍;MLlib提供機器學(xué)習(xí)服務(wù);GraphX提供圖計算服務(wù);SparkStreaming將流式計算分解成一系列短小的批處理計算,并且提供高可靠和吞吐量服務(wù)。值得說明的是,無論是SparkSQL、SparkStreaming、GraphX還是MLlib,都可以使用Spark核心API處理問題,它們的方法幾乎是通用的,處理的數(shù)據(jù)也可以共享,不僅減少了學(xué)習(xí)成本,而且其數(shù)據(jù)無縫集成大大提高了靈活性。圖2.4.1Spark核心組件2.4.2彈性分布式數(shù)據(jù)集——RDDSpark的核心概念是RDD,全稱為ResilientDistributedDatasets,是一個容錯的、并行的數(shù)據(jù)結(jié)構(gòu),可以分布在集群的節(jié)點上,以函數(shù)式編程操作集合的方式進行各種并行操作??梢詫DD理解為一個具有容錯機制的特殊集合,它提供了一種只讀、只能有已存在的RDD變換而來的共享內(nèi)存,然后將所有數(shù)據(jù)都加載到內(nèi)存中,方便進行多次重用。RDD是彈性的,當(dāng)內(nèi)存不足時它還可以與磁盤進行數(shù)據(jù)交換。RDD的實質(zhì)是一種更為通用的迭代并行計算框架,用戶可以顯式地控制計算的中間結(jié)果并用其再次進行后續(xù)的計算。2.4.3Spark工作流程Spark的任務(wù)從創(chuàng)建SparkApplication的運行環(huán)境——啟動SparkContext開始,在SparkContext的初始過程中會分別創(chuàng)建DAGScheduler作業(yè)調(diào)度和TaskScheduler兩級任務(wù)調(diào)度模塊。隨后SparkContext向資源管理器(根據(jù)實際情況確定,可能是Standalone、Mesos、Yarn)申請Executor資源,再由資源管理器分配資源并啟動StandaloneExecutorBackend,executor,之后向SparkContext申請Task。DAGScheduler將job劃分為多個stage,并將Stage提交給TaskScheduler,Tsak在Executor上運行,運行完畢后將釋放所有資源。圖2.4.2Spark工作流程2.4.4Spark的優(yōu)勢①快速處理能力。Spark允許將中間輸出和結(jié)果存儲在內(nèi)存中,節(jié)省了大量的磁盤IO。同時Spark自身的DAG執(zhí)行引擎也支持數(shù)據(jù)在內(nèi)存中的計算。根據(jù)Spark官方的數(shù)據(jù),Spark性能大約比Hadoop高了100倍,即使內(nèi)存不足需要磁盤IO,這時也要比Hadoop快上十倍。②易于使用。Spark現(xiàn)在支持Java、Scala,Python和R等語言編寫應(yīng)用程序,大大降低了使用的門檻。自帶了80多個高等級操作符,允許在Scala,Python,R的shell中進行交互式查詢。③支持流式計算。與MapReduce只能處理離線數(shù)據(jù)相比,Spark對實時的流計算提供了支持。SparkStreaming提供了對數(shù)據(jù)實時處理功能的支持,其流式處理能力還要強于Storm。④可靠性高。Spark自身實現(xiàn)了Standalone部署模式,在這種模式下,Master節(jié)點可以有不止一個,解決了Master節(jié)點可能出現(xiàn)故障的問題。⑤豐富的數(shù)據(jù)源支持。除了對操作系統(tǒng)自身的文件系統(tǒng)和HDFS提供了支持,Spark還很好地支持了Cassandra,HBase,Hive等作為數(shù)據(jù)源。2.5數(shù)據(jù)可視化海量數(shù)據(jù)的涌現(xiàn),數(shù)據(jù)過剩和信息超載等問題促使了數(shù)據(jù)可視化技術(shù)的出現(xiàn)。數(shù)據(jù)時代數(shù)據(jù)可視化成為理解和表達數(shù)據(jù)的有效手段甚至是唯一手段。數(shù)據(jù)可視化主要旨在借助圖形化的手段,清晰有效地展現(xiàn)與傳達信息。一方面,數(shù)據(jù)賦予可視化以意義。另一方面可視化增加數(shù)據(jù)的靈性,兩者相輔相成,幫助人從信息中提取知識、從知識中收獲價值。文本可視化是數(shù)據(jù)可視化的一個子命題,其大致流程如圖2.5.1所示。文本可視化涵蓋了信息收集、數(shù)據(jù)預(yù)處理、知識表示、視覺呈現(xiàn)和交互等過程。其中,數(shù)據(jù)挖掘和自然語言處理等技術(shù)充分發(fā)揮計算機的自動處理能力,將無結(jié)構(gòu)的文本信息自動轉(zhuǎn)換為可視的有結(jié)構(gòu)信息。可視化呈現(xiàn)可以讓人類視覺認知、關(guān)聯(lián)、推理的能力得到充分的發(fā)揮,為人們更好的理解文本和發(fā)現(xiàn)知識聽過了新的有效途徑。文本文本分析信息收集數(shù)據(jù)預(yù)處理知識表示可視化呈現(xiàn)可視化呈現(xiàn)視覺交互視覺編碼操作數(shù)據(jù)圖2.5文本可視化基本框架第3章挖掘算法研究本章為web文本挖掘系統(tǒng)的實現(xiàn)作了算法的研究,在熱點內(nèi)容的抽取上,準(zhǔn)備采用經(jīng)典的特征提取算法TF-IDF算法。3.1TF-IDF算法3.1.1TF-IDF算法介紹TF-IDF算法是一種用于信息檢索與文本挖掘的常用加權(quán)算法,可以用于一個詞在一個文件或者一個文件對于一個語料庫的重要程度的評估。字詞的重要性隨它的文本中出現(xiàn)的頻數(shù)成正比增加,同時還會隨著她在語料庫中出現(xiàn)的頻率成反比下降。在一個給定的文件里,詞頻(termfrequency,tf)指的是給定的詞語在該文件中出現(xiàn)的頻率。它是對詞數(shù)(termcount)的歸一化,避免更偏向于長文本。(文本越長同一個詞語在該文件內(nèi)可能會比在較短的文件內(nèi)有更高的詞數(shù),與該詞的重要程度無關(guān)。)對于在某個特定文件的詞titfi,j=ni,jkn在以上式子中ni,j是該詞在文件dj中出現(xiàn)的次數(shù),分母為文件逆文件頻率(inversedocumentfrequency,idf)是度量一個詞語普遍重要性的參數(shù)。某一個特定詞語的idf,可以由總文件數(shù)目除以包含該詞語文件的數(shù)目,將其商進行取對數(shù)運算得到:idfi=logDj:t其中D表示語料庫中的文件總數(shù),j:ti∈dj表示包含詞語ti的文件數(shù)目(最后tfidfi,j值由tfi,j值與tfidfi,j=tfi,j×idf在某一特定文檔內(nèi)有高詞頻,以及該詞在整個文檔集合中有著低文件頻率,那么該詞將有高權(quán)重的tf-idf值。3.1.2TF-IDF算法的理論依據(jù)及不足TF-IDF算法創(chuàng)建在這樣一個假設(shè)之上:對區(qū)別文檔最有意義的詞語應(yīng)該是那些在文檔中出現(xiàn)頻率高,而在整個文檔集合(語料庫)中出現(xiàn)頻率少的詞,所以如果特征空間坐標(biāo)系取tf詞頻來作為測度,就能體現(xiàn)同類文本的特點。另外考慮到單詞有區(qū)分不同不同類別的能力,TF-IDF算法認為一個詞出現(xiàn)的文本頻數(shù)越小,他區(qū)別不同文本的能力就越強。因此引入了逆文本頻度idf的概念,以tf和idf的乘積作為特征空間坐標(biāo)系的最終測度,并用它完成多權(quán)值tf的修正,調(diào)整權(quán)值的主要目的是突出重要單詞,抑制次要單詞。但是在本質(zhì)上idf是一種試圖抑制噪聲的加權(quán),并且單純地認為文本頻率小的詞更重要,文本頻率大的詞就更次要,顯然這不是完全正確的。idf的簡單結(jié)構(gòu)并不能完全準(zhǔn)確地反映單詞的重要程度和特征詞的分布狀況,因此它并不能很好地完成對權(quán)值的修正功能,因此TF-IDF算法的精度并不是很高。3.1.3算法的改進思路在實際應(yīng)用中,我們可以人為地增加判別條件對部分詞語進行加權(quán)處理。例如詞語在一句話中的位置,我們可給在句首、句中、句尾的詞語分別賦予不同的額外權(quán)值,通過一定的公式計算,對出現(xiàn)在這些位置的詞語進行加權(quán)操作。此外,詞語帶有的符號修飾也值得關(guān)注,例如在互聯(lián)網(wǎng)網(wǎng)頁文本數(shù)據(jù)中,我們可以根據(jù)不同的標(biāo)簽對其中詞語進行不同的加權(quán)處理。微博文本數(shù)據(jù)中,我們可以根據(jù)消息自帶的話題標(biāo)簽對該詞進行加權(quán)。通過類似這樣的加權(quán)方式,我們可以盡可能修正原生算法得到的權(quán)值,從而得到更加切合實際的執(zhí)行結(jié)果。第4章系統(tǒng)總體設(shè)計 本章的目標(biāo)是完成一個基于Spark的Web文本挖掘系統(tǒng)的設(shè)計。該系統(tǒng)以社交網(wǎng)站(新浪微博)輿情信息作為文本挖掘的對象,以并行計算框架Spark作為計算平臺,實現(xiàn)對網(wǎng)絡(luò)輿情熱點的文本挖掘工作。4.1系統(tǒng)需求概要系統(tǒng)功能的主要目標(biāo)可以概括成以下內(nèi)容:系統(tǒng)能夠完成大量互聯(lián)網(wǎng)社交網(wǎng)站(新浪微博)上的輿情信息生成文本數(shù)據(jù)集,利用并行計算框架Spark按照一定的挖掘算法對采集到的文本進行挖掘,對當(dāng)前輿情熱詞進行抽取,最終通過web頁面方式對挖掘結(jié)果進行數(shù)據(jù)可視化操作。4.1.1文本采集Web信息有著數(shù)量很大,更新很快及規(guī)范性較差的特點,用戶自行采集、存儲數(shù)據(jù)有著很大的難度,也很難對采集的格式進行統(tǒng)一,因此,系統(tǒng)需要提供文本采集模塊,能夠自動完成網(wǎng)頁的解析以及文本采集工作。4.1.2數(shù)據(jù)存儲由于系統(tǒng)所使用的數(shù)據(jù)集較大以及存儲系統(tǒng)需要與Spark進行對接,所以存儲系統(tǒng)需要能夠很好地支持大規(guī)模文件的批量讀取操作,此外還要能夠?qū)换ナ讲樵冞M行良好的支持。4.1.3文本分析文本分析功能需要為用戶從已經(jīng)采集到的海量的文本數(shù)據(jù)集中快速、準(zhǔn)確地抽取出熱點內(nèi)容。4.1.4結(jié)果可視化結(jié)果可視化功能需要實現(xiàn)將文本分析的結(jié)果高效、清晰地傳遞給用戶,通過一定的交互手段讓使用者能夠很快了解分析的效果。4.2系統(tǒng)設(shè)計概要4.2.1系統(tǒng)架構(gòu)設(shè)計根據(jù)對系統(tǒng)功能需求的分析,決定系統(tǒng)基于B/S架構(gòu)進行構(gòu)建,系統(tǒng)架構(gòu)設(shè)計圖如下:服務(wù)器端Internet服務(wù)器端Internet數(shù)據(jù)采集數(shù)據(jù)存儲用戶交互響應(yīng)可視化生成瀏覽器端文本挖掘圖4.2.1系統(tǒng)架構(gòu)設(shè)計圖數(shù)據(jù)采集、數(shù)據(jù)存儲以及文本挖掘功能均在服務(wù)器端實現(xiàn)。數(shù)據(jù)采集功能負責(zé)解析網(wǎng)頁,從互聯(lián)網(wǎng)上抓取目標(biāo)數(shù)據(jù)。數(shù)據(jù)存儲功能需要將采集程序得到的大規(guī)模數(shù)據(jù)進行存儲,以備挖掘使用。文本挖掘功能包含文本清洗和去停用詞以及特征提取幾個步驟,最終實現(xiàn)從采集到數(shù)據(jù)中抽取熱點信息。瀏覽器端是終端用戶與系統(tǒng)的交互接口,根據(jù)用戶交互動作與服務(wù)器端進行通信,從而反饋相應(yīng)信息到瀏覽器端。隨后將從服務(wù)器端返回的挖掘結(jié)果進行可視化處理,便于用戶查看。并根據(jù)用戶需求返回相關(guān)原始信息。4.2.2系統(tǒng)模塊劃分與技術(shù)選取根據(jù)系統(tǒng)架構(gòu)設(shè)計,可將系統(tǒng)所有功能拆分為三個主要的功能模塊,其中數(shù)據(jù)采集模塊主要負責(zé)網(wǎng)頁解析和目標(biāo)信息的抓取,文本挖掘模塊負責(zé)采集數(shù)據(jù)的存儲以及對采集數(shù)據(jù)的分析挖掘。文本數(shù)據(jù)可視化模塊負責(zé)將挖掘用戶交互及結(jié)果展示。文本文本挖掘Spark數(shù)據(jù)查詢Elasticsearch數(shù)據(jù)存儲Mongodb/HDFS爬蟲程序Scrapy數(shù)據(jù)可視化Django文本數(shù)據(jù)集用戶請求數(shù)據(jù)文本挖掘模塊數(shù)據(jù)采集模塊圖4.2.2系統(tǒng)模塊劃分數(shù)據(jù)采集模塊采用了Python語言下基于Twisted異步網(wǎng)絡(luò)庫的網(wǎng)絡(luò)爬蟲框架Scrapy進行編寫。由于具有并發(fā)抓取的特性,因此基于Scrapy編寫的網(wǎng)絡(luò)爬蟲能夠快速準(zhǔn)確地將需要的結(jié)構(gòu)化的數(shù)據(jù)從網(wǎng)頁中解析抽取出來,然后將其進行存儲。文本挖掘模塊主要分為三個部分,文本挖掘、數(shù)據(jù)存儲以及數(shù)據(jù)查詢。文本挖掘部分才用并行計算框架Spark進行處理,能夠高效地完成對海量數(shù)據(jù)的處理。文本存儲部分采用非關(guān)系型數(shù)據(jù)庫MongoDB和HDFS,MongoDB對接數(shù)據(jù)采集模塊,HDFS對接文本挖掘模塊,保證能夠為系統(tǒng)提供最大化的存儲性能。數(shù)據(jù)查詢部分采用基于Lucene的搜索引擎Elasticsearch實現(xiàn),保證能夠為可視化模塊提供精準(zhǔn)、快速的查詢。數(shù)據(jù)可視化模塊采用Python語言下的Django框架進行web應(yīng)用構(gòu)建,熱點信息的詞云化處理采用pytagcloud包繪制,頁面與后臺的數(shù)據(jù)交換才用Ajax請求實現(xiàn)。模塊的整體布局和效果實現(xiàn)基于HTML、CSS和JavaScript,能夠清晰地將熱點信息展現(xiàn)在web頁面上,同時提供用戶與服務(wù)器端的交互服務(wù),滿足需求的同時也具有很好的跨平臺支持。4.2.3數(shù)據(jù)處理流程系統(tǒng)內(nèi)的數(shù)據(jù)處理由數(shù)據(jù)采集程序、并行計算框架Spark、HDFS以及MongoDB一起完成。數(shù)據(jù)在系統(tǒng)內(nèi)的處理流程大致如下:新浪微博網(wǎng)頁新浪微博網(wǎng)頁Scrapy爬蟲程序MongoDB計算框架SparkHTML清洗后文本RDD挖掘結(jié)果TXTITEMHDFS圖4.2.3系統(tǒng)數(shù)據(jù)處理流程數(shù)據(jù)最初以HTML形式進入數(shù)據(jù)采集模塊,由Scarpy編寫的爬蟲程序進行解析和處理,隨后存儲進非關(guān)系型數(shù)據(jù)庫MongoDB,將數(shù)據(jù)導(dǎo)出清洗后上傳至HDFS。計算框架Spark從HDFS讀取經(jīng)清洗后的數(shù)據(jù)轉(zhuǎn)換成Spark下特有數(shù)據(jù)結(jié)構(gòu)RDD進行挖掘處理,最終以將挖掘結(jié)果以TXT文件形式進行輸出。4.2.4用戶界面設(shè)計系統(tǒng)的用戶界面也就是數(shù)據(jù)的可視化頁面。主要包含兩個功能提供對Spark處理后的最終數(shù)據(jù)和原始數(shù)據(jù)中與熱點相關(guān)數(shù)據(jù)的可視化。主界面主要分為兩個模塊,熱點信息詞云以及相關(guān)原始數(shù)據(jù)展示列表。WWeb文本挖掘系統(tǒng)熱點詞云原始微博列表圖4.2.4系統(tǒng)界面概要圖第5章系統(tǒng)實現(xiàn)本章將對系統(tǒng)設(shè)計的細節(jié)實現(xiàn)做詳細的介紹,包括從系統(tǒng)各部分的環(huán)境部署搭建到詳細設(shè)計和實現(xiàn)。此外最后對系統(tǒng)進行了測試運行,實現(xiàn)了針對新浪微博輿情數(shù)據(jù)的文本挖掘。5.1系統(tǒng)運行環(huán)境系統(tǒng)由分布式服務(wù)器集群作為承載硬件,因未大規(guī)模投入生產(chǎn),在本地使用VMwareStation創(chuàng)建三臺虛擬機模擬分布式服務(wù)器集群。集群由一個主機兩從機構(gòu)成,具體配置如下:表5.1-1系統(tǒng)硬件配置名稱配置數(shù)量物理機16GRAM,CPUI7-4710MQ,1T硬盤1集群主機(master節(jié)點)2GRAM,CPU1核,30G硬盤1集群從機(slave節(jié)點)2GRAM,CPU1核,30G硬盤2表5.1-2系統(tǒng)運行環(huán)境環(huán)境名稱具體版本集群服務(wù)器操作系統(tǒng)CentOS6.5JDK1.7Hadoop2.6.0Spark1.6.2Python2.75.2系統(tǒng)環(huán)境搭建5.2.1HDFS的搭建HDFS(TheHadoopDistributeFileSystem)是大數(shù)據(jù)處理框架Hadoop的一部分,因此安裝HDFS即安裝Hadoop框架。一般來說,Hadoop的安裝需要經(jīng)過以下步驟:①添加專用的hadoop用戶賬戶,避免直接使用root賬戶可能帶來的安全隱患。②解壓JDK到/opt目錄,修改/etc/profile文件設(shè)置path及classpath為JDK目錄。③安裝ssh-server,在集群各個服務(wù)器上生成公鑰,并將該公鑰復(fù)制到集群中的其他服務(wù)器上并添加到的授權(quán)文件中。集群中的三臺服務(wù)器均要執(zhí)行此步驟,實現(xiàn)集群中服務(wù)器間兩兩免密碼登錄。④解壓hadoop安裝包到/opt目錄,修改hadoop目錄下/etc/hadoop目錄下的配置文件core-site.xml隨后將slaves文件的內(nèi)容更改為slave01,slave02。⑤將配置好的hadoop復(fù)制至從機slave01,slave02。⑥將集群中所有服務(wù)器的主機名與IP地址添加進每臺服務(wù)器的hosts文件中。⑦執(zhí)行命令hdfsnamenode–format格式化namenode,初始化hadoop。5.2.2Spark框架的安裝①解壓spark安裝包到/opt目錄。②將spark安裝目錄conf目錄下spark-env.sh.template重命名為spark-env.sh,在該配置文件內(nèi)添加以下JAVA_HOME、HADOOP_HOME,SCALA_HOME、HADOOP_CONF_DIR、SPARK_MASTER_HOST等關(guān)鍵配置項的配置。③在conf目錄下slaves中添加從機的主機名,完善集群信息配置。④將配置完成的spark拷貝分發(fā)至各個從機節(jié)點,完成spark集群部署。5.3模塊設(shè)計的具體實現(xiàn)系統(tǒng)的整體流程與系統(tǒng)內(nèi)數(shù)據(jù)處理流程基本一致,可以用下圖進行簡要的表示:響應(yīng)交互關(guān)鍵詞抽取數(shù)據(jù)存取響應(yīng)交互關(guān)鍵詞抽取數(shù)據(jù)存取數(shù)據(jù)采集文本挖掘數(shù)據(jù)可視化開始解析微博網(wǎng)頁數(shù)據(jù)清洗數(shù)據(jù)呈現(xiàn)圖5.3系統(tǒng)整體流程第一部分:該部分主要完成原始文本數(shù)據(jù)的采集。將國內(nèi)知名社交網(wǎng)站新浪微博作為數(shù)據(jù)來源,編寫程序?qū)崿F(xiàn)對微博網(wǎng)頁的解析,將原始網(wǎng)頁上的有價值信息轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù),隨后將其寫入非關(guān)系型數(shù)據(jù)庫。第二部分:該部分主要完成對獲取到數(shù)據(jù)的處理工作。首先對數(shù)據(jù)進行分詞處理,然后對文本中的各種符號以及停用詞進行剔除,將“干凈”的語料上傳至分布式存儲系統(tǒng),同時也將原始數(shù)據(jù)導(dǎo)入搜索引擎以備可視化部分調(diào)用。再由Spark框架從分布式存儲系統(tǒng)讀取數(shù)據(jù),根據(jù)選定算法進行關(guān)鍵詞抽取并將結(jié)果進行保存。第三部分:該部分主要完成對最終處理結(jié)果的可視化工作??梢暬到y(tǒng)從分布式存儲系統(tǒng)中讀取處理過后的最終數(shù)據(jù),根據(jù)數(shù)據(jù)繪制可交互詞云,可以根據(jù)用戶請求進一步自定義展示內(nèi)容。5.2.1數(shù)據(jù)采集模塊數(shù)據(jù)采集模塊的主要功能是從新浪微博獲取微博消息文本。新浪微博對未登錄用戶訪問內(nèi)容進行了限制,在登錄微博賬戶之前用戶僅能查看少量數(shù)據(jù)。因此為了實現(xiàn)獲取大量數(shù)據(jù)。首先應(yīng)該利用程序模擬用戶進行登錄操作,獲取登錄成功的cookie,爬蟲的請求帶上該cookie便能夠進行數(shù)據(jù)的爬取。本系統(tǒng)采用的登錄策略為使用Selenium操作無界面瀏覽器PhantomJS模擬用戶填寫用戶名以及密碼,在賬戶較少時點擊登錄按鈕后自動捕獲帶有驗證碼的網(wǎng)頁,以供用戶查看驗證碼自行識別輸入進行登錄操作。在大規(guī)模爬取前有大量賬號需要登錄時,可以使用打碼平臺對驗證碼進行識別,自動進行登錄操作,批量獲取cookie。爬取流程以初始隊列開始,對用戶的關(guān)注與粉絲列表進行迭代抓取。通過解析網(wǎng)頁獲取目標(biāo)結(jié)構(gòu)化數(shù)據(jù),便于對文本進行后續(xù)的分析處理。本模塊使用python語言下的Scrapy爬蟲框架編程實現(xiàn),詳細的流程如下圖所示:爬取隊列更新存儲爬取數(shù)據(jù)解析網(wǎng)頁開始初始化爬取隊列爬取隊列更新存儲爬取數(shù)據(jù)解析網(wǎng)頁開始初始化爬取隊列結(jié)束圖5.2.1數(shù)據(jù)采集模塊執(zhí)行流程爬蟲程序可以簡要地分成三個部分,抓取目標(biāo)數(shù)據(jù)的結(jié)構(gòu)定義(Item),爬蟲數(shù)據(jù)的存儲方式(ItemPipline),以及具體執(zhí)行網(wǎng)頁解析抽取方法(Spider)。創(chuàng)建Scrapy項目后,第一時間的工作是要確定具體需要的數(shù)據(jù)字段,以此為依據(jù)定義程序的Item類,用來保存從網(wǎng)頁上解析抽取出來的數(shù)據(jù)。本系統(tǒng)中爬蟲程序中定義的微博數(shù)據(jù)Item類如下表所示:表5.2.1微博Item定義字段名稱備注_id微博IDID用戶IDContent微博內(nèi)容PubTime發(fā)表時間Co_oridinates定位信息Tools使用工具Like點贊數(shù)Comment評論數(shù)Transfer轉(zhuǎn)發(fā)數(shù)網(wǎng)頁的爬取從初試的爬取隊列開始,訪問初始列表內(nèi)用戶的個人主頁,利用利用Xpath對目標(biāo)標(biāo)簽進行定位,獲取其中內(nèi)容并保存到對應(yīng)Item。隨后數(shù)據(jù)將進入到ItemPipline進行數(shù)據(jù)的存儲。ItemPipline的主要工作是對從網(wǎng)頁上抽取數(shù)據(jù)后的存儲、驗證。本系統(tǒng)中,在ItemPipline中未對數(shù)據(jù)進行進一步處理,將數(shù)據(jù)原樣寫入了非關(guān)系型數(shù)據(jù)庫MongoDB。因考慮到爬蟲程序需要高速爬取網(wǎng)頁,對數(shù)據(jù)存儲響應(yīng)速度要求較高,所以沒有將數(shù)據(jù)直接寫入HDFS。5.2.2文本挖掘模塊文本挖掘模塊從功能上進行劃分可以簡單分成三個部分,即文本預(yù)處理,關(guān)鍵詞提取以及為可視化數(shù)據(jù)的檢索。在對抓取到的文本進行關(guān)鍵詞抽取操作之前,必須對文本進行數(shù)據(jù)清洗,因為原始文本中包含大量的標(biāo)點符號、特殊字符以及無實際意義的停用詞。這些字符都將對后續(xù)處理造成影響。在本系統(tǒng)中數(shù)據(jù)清洗主要執(zhí)行了以下幾種操作:①文本分詞中文分詞指的是將一個漢字序列(句子)切分成一個一個單獨的詞。分詞就是將連續(xù)的自序列按照一定的規(guī)范重新合成詞序列的過程。中文文本字、句、段有明顯分界符來進行簡單劃界。但是詞與詞之間并沒有形式上的分界符,因此必須對獲取到的文本進行分詞后,才能對其進行進一步的處理。本系統(tǒng)內(nèi)分詞處理采用了流行的Python分詞組件JieBa分詞,JieBa分詞的處理流程可以簡單地概括為如下幾個步驟:生成DAG加載生成DAG加載詞典最大概率路徑HMM模型圖5.2.2-1JieBa分詞處理流程詞典由分析大量語料得到,是一個由數(shù)萬詞語構(gòu)成的文本文件,是分詞處理的基礎(chǔ)。在具體使用時,可以根據(jù)自身需求對其進行刪改。詞典加載完成后基于Trie樹結(jié)構(gòu)實現(xiàn)高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構(gòu)成的有向無環(huán)圖(DAG)

。隨后采用動態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合。對于詞典內(nèi)沒有覆蓋的詞語使用了Viterbi算法生成基于漢字成詞能力的HMM模型。在具體使用時,對微博文本自帶的話題標(biāo)簽進行特殊處理,將所有話題抽取出來加入JieBa分詞的詞典內(nèi),避免在分詞時將話題進行分詞處理,影響后續(xù)挖掘效果。②過濾標(biāo)點符號及停用詞由于采集到的原始文本集內(nèi)包含大量的標(biāo)點符號、英文字符以及類似“的”、“地”、“得”這類無意義的中文停用詞,因此在進一步處理文本之前我們需要對其先進行處理。本系統(tǒng)中采用的方法是先預(yù)先準(zhǔn)備中文停用詞表,覆蓋中文文本中常用的停用次以及各類標(biāo)點、特殊符號。通過遍歷文本與停用詞表對特殊符號及停用次進行過濾,得到較為干凈的文本。③利用Spark抽取關(guān)鍵詞該部分為系統(tǒng)文本挖掘的關(guān)鍵處理模塊,實現(xiàn)對處理后語料的進一步處理,利用TF-IDF算法對微博文本進行關(guān)鍵詞抽取。把抓取到的大量微博當(dāng)作一片完整的文章,那么此時抽取出來的關(guān)鍵詞也能一定程度反映出當(dāng)前輿情關(guān)注的熱點。Spark對文本的處理流程可以用下圖進行表示:權(quán)重排序開始權(quán)重排序開始HDFS計算TFIDFRDDRDDTXT圖5.2.2-2spark處理文本首先Spark從HDFS讀取文本數(shù)據(jù),將讀取出的數(shù)據(jù)轉(zhuǎn)換為自身特有數(shù)據(jù)結(jié)構(gòu)RDD,隨后利用TD-IDF算法進行運算。此處以單條微博消息作為處理的基本單位,把抓取到的整個數(shù)據(jù)集作為算法中語料庫的參數(shù)。對所有詞語進行TF-IDF權(quán)值的計算,計算完成后對整個字符列表進行去重

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論