版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE15PAGE基于Django框架的電商產(chǎn)品評(píng)論數(shù)據(jù)情感研究摘要隨著互聯(lián)網(wǎng)和信息技術(shù)的快速發(fā)展,線上購(gòu)物的消費(fèi)模式被越來(lái)越多的消費(fèi)者所青睞,這是因?yàn)橛脩艨梢院芊奖愕馗鶕?jù)評(píng)論信息來(lái)判斷商品的好壞。本文將使用Python語(yǔ)言,對(duì)京東電商平臺(tái)的評(píng)論數(shù)據(jù)進(jìn)行情感分析,并使用Django框架為用戶提供了友好的可視化界面。首先使用商品在平臺(tái)中的ID號(hào)對(duì)評(píng)論數(shù)據(jù)進(jìn)行爬取,并對(duì)獲取到的數(shù)據(jù)進(jìn)行處理。對(duì)于非結(jié)構(gòu)化的中文文本,需要進(jìn)行文本重復(fù)去除、重復(fù)字符的刪除及文本分詞。此次設(shè)計(jì)采用jieba進(jìn)行中文分詞。最后把已經(jīng)處理好的信息做情感分析,首先需要把文本分成正向情感和負(fù)向情感兩類,這里采用了基于詞典的情感極性計(jì)算,接下來(lái)利用LDA模型對(duì)分類完成的文本進(jìn)行主題提取,以柱狀圖、餅圖及云詞圖的方式直觀展示分析結(jié)果。本文的目的在于利用計(jì)算機(jī)技術(shù)幫助電商平臺(tái)與商品廠家挖掘、分析、處理消費(fèi)者的評(píng)論文本并對(duì)其進(jìn)行情感分析。關(guān)鍵詞:情感分析;Django框架;中文分詞;jieba;LDA模型目錄TOC\o"1-3"\u摘要 IAbstract II1.緒論 11.1研究背景和意義 11.2國(guó)內(nèi)外研究現(xiàn)狀概述 21.2.1情感傾向性分析研究現(xiàn)狀 21.2.2主題模型研究現(xiàn)狀 41.3本文的研究?jī)?nèi)容 41.4本文結(jié)構(gòu)安排 52.相關(guān)技術(shù)介紹 62.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù) 62.1.1網(wǎng)絡(luò)爬蟲(chóng)利用正則表達(dá)式的篩選技術(shù) 62.1.2運(yùn)用python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)進(jìn)行網(wǎng)頁(yè)數(shù)據(jù)爬取 62.2中文分詞介紹 62.2.1中文分詞算法介紹 72.2.2jieba庫(kù) 72.3LDA主題模型 82.3.1LDA主題模型介紹 82.3.2LDA主題模型估計(jì) 92.4本章小結(jié) 103.電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)需求分析 13.1可行性分析 13.1.1技術(shù)可行性分析 13.1.2經(jīng)濟(jì)可行性分析 13.1.3社會(huì)可行性分析 13.1.4風(fēng)險(xiǎn)因素控制可行性分析 13.2功能需求分析 13.2.1評(píng)論數(shù)據(jù)爬取需求分析 23.2.2文本預(yù)處理需求分析 23.2.3情感傾向需求分析 23.2.4界面展示需求分析 33.3非功能性需求分析 43.3.1操作安全性 43.3.2Django框架安全性 43.4本章小結(jié) 44.電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)設(shè)計(jì) 14.1系統(tǒng)整體設(shè)計(jì) 14.2電商產(chǎn)品評(píng)論數(shù)據(jù)爬取模塊 24.3數(shù)據(jù)預(yù)處理模塊 24.4情感分析模塊 44.5界面展示模塊 44.6本章小結(jié) 55.系統(tǒng)實(shí)現(xiàn) 65.1系統(tǒng)的運(yùn)行環(huán)境 65.2系統(tǒng)的代碼組織結(jié)構(gòu) 65.3系統(tǒng)的配置文件 65.4系統(tǒng)各模塊的實(shí)現(xiàn) 75.4.1數(shù)據(jù)獲取模塊 75.4.2數(shù)據(jù)預(yù)處理模塊 85.4.3情感分析模塊 95.4.4界面展示模塊 115.5本章小結(jié) 166.系統(tǒng)測(cè)試與分析 176.1系統(tǒng)測(cè)試規(guī)劃 176.1.1測(cè)試環(huán)境 176.1.2測(cè)試方法 176.1.3測(cè)試注意事項(xiàng) 176.2功能測(cè)試 176.2.1數(shù)據(jù)獲取模塊測(cè)試運(yùn)行結(jié)果 186.2.2數(shù)據(jù)預(yù)處理模塊 186.2.3情感分析模塊 186.2.4界面展示模塊 196.3本章小結(jié) 217.總結(jié)與展望 22參考文獻(xiàn) 241.緒論1.1研究背景和意義在第三次工業(yè)革命的沖擊下,互聯(lián)網(wǎng)技術(shù)飛發(fā)展。技術(shù)與媒介的融合打破了傳統(tǒng)媒體與行業(yè)的壁壘,媒介敘事開(kāi)始呈現(xiàn)出一種嶄新的狀態(tài)。而在經(jīng)濟(jì)領(lǐng)域,商業(yè)結(jié)構(gòu)在互聯(lián)網(wǎng)2.0時(shí)代下開(kāi)始呈現(xiàn)出“互聯(lián)網(wǎng)+”的模式。電子商務(wù)、網(wǎng)絡(luò)交易等形在對(duì)互聯(lián)網(wǎng)深耕下開(kāi)始繁榮發(fā)展。人們每天生活中都要面對(duì)海量的數(shù)據(jù)信息,整個(gè)世界變成了一個(gè)龐大的數(shù)據(jù)庫(kù)。時(shí)至今日,一串串由“0”和“1”組成的代碼,魔術(shù)般地變成了當(dāng)今世界承載與儲(chǔ)存信息的主要載體。越來(lái)越多的網(wǎng)絡(luò)應(yīng)用改變了人們的生產(chǎn)、生活以及交互方式,使人們生活更加便捷,并依托于互聯(lián)網(wǎng)形成了一種全新的消費(fèi)文化。截止至2020年12月,我國(guó)移動(dòng)互聯(lián)網(wǎng)網(wǎng)絡(luò)普及率已經(jīng)達(dá)到9.89億,用戶在移動(dòng)互聯(lián)網(wǎng)普及率達(dá)70.4%。其中線上購(gòu)物的用戶達(dá)到7.82億,占全體網(wǎng)絡(luò)用戶的79.1%。可以看出,足不出戶的購(gòu)物方式受越來(lái)越多消費(fèi)者的青睞。近年來(lái),得益于互聯(lián)網(wǎng)產(chǎn)業(yè)帶來(lái)的紅利期,京東、淘寶、天貓等網(wǎng)絡(luò)購(gòu)物平臺(tái)用戶人數(shù)呈現(xiàn)出爆發(fā)性的增長(zhǎng),而線上購(gòu)物的模式的蓬勃發(fā)展同時(shí)也反饋到作為前端的電商平臺(tái)與作為后端的商品廠家。這為各方帶來(lái)龐大的商業(yè)機(jī)遇,但同時(shí)也為銷售者帶來(lái)了前所未有的挑戰(zhàn)。為了能繼續(xù)在這樣的大環(huán)境中生存下去,平臺(tái)和商家不僅要保證商品質(zhì)量、把控市場(chǎng)商品價(jià)格,更要清楚消費(fèi)者的消費(fèi)訴求,這樣才能進(jìn)一步提高商品品質(zhì)和平臺(tái)服務(wù)。在大數(shù)據(jù)飛速發(fā)展的時(shí)代,傳統(tǒng)的研究方法顯然已經(jīng)不適合提高商家的市場(chǎng)占有與利潤(rùn)提升。而通過(guò)大數(shù)據(jù)對(duì)用戶信息進(jìn)行收集、分類與分析,成為了一種新型的研究手段。以電子商務(wù)平臺(tái)為例,消費(fèi)者可以通過(guò)評(píng)論、打分等功能及時(shí)地向商家反饋產(chǎn)品優(yōu)劣、使用感受等情況,而商家則通過(guò)收集消費(fèi)者的評(píng)論文本對(duì)對(duì)其進(jìn)行情感分析,使其進(jìn)一步完善產(chǎn)品質(zhì)量與性能,并通過(guò)產(chǎn)品的迭代等方式更為廣泛的滿足消費(fèi)者需求,提高商品競(jìng)爭(zhēng)力與企業(yè)競(jìng)爭(zhēng)力。同時(shí),通過(guò)情感分析也可以為作為前端的電商平臺(tái)與作為后端的商品廠家制定更具時(shí)效性的營(yíng)銷策略與市場(chǎng)戰(zhàn)略布局,從而達(dá)到消費(fèi)者——電商平臺(tái)——生產(chǎn)廠家在媒介融合下的良性消費(fèi)循環(huán)。因此,本文的目的在于利用計(jì)算機(jī)技術(shù)幫助電商平臺(tái)與商品廠家挖掘、分析、處理消費(fèi)者的評(píng)論文本并對(duì)其進(jìn)行情感分析。1.2國(guó)內(nèi)外研究現(xiàn)狀概述情感分析又被稱為傾向性分析或意見(jiàn)挖掘。目的在于對(duì)帶有情緒的、有個(gè)人想法的文字進(jìn)行分析,并以更加清楚直觀的結(jié)果展示給受眾者[1]。情感分析技術(shù)包含的分析內(nèi)容種類繁多,如情感傾向分析、主題分析等。1.2.1情感傾向性分析研究現(xiàn)狀情感傾向性分析將文本進(jìn)行和情緒有關(guān)的二元分類,從而判斷出文本所要表達(dá)的情緒是積極的情緒、消極情緒的還是中性的。按照文本粒度不同,大致可分為三個(gè)研究層次:詞語(yǔ)級(jí)、句子級(jí)、篇章級(jí)。本文就從這三個(gè)方面著手進(jìn)行研究。(1)詞語(yǔ)級(jí)在對(duì)文本內(nèi)容進(jìn)行情感判斷時(shí),需要將段落與句子切分成表意的最小詞語(yǔ),這是情感分析的基礎(chǔ)。要判斷詞語(yǔ)的極性,就需要對(duì)詞語(yǔ)的極性進(jìn)行定量的測(cè)量。選擇-1到+1之間的一個(gè)數(shù)字來(lái)測(cè)量詞匯的極性。如果這個(gè)數(shù)大于零,則說(shuō)明該詞所表達(dá)的情感是正向的;如果這個(gè)數(shù)小于零,則說(shuō)明該詞所表達(dá)的情感是負(fù)向的[2]。且這個(gè)數(shù)的絕對(duì)值越高,表明這個(gè)詞語(yǔ)的贊揚(yáng)或批評(píng)程度就強(qiáng)[3]。迄今為止,主要采用兩種方式來(lái)分析如何判斷一個(gè)詞匯在各種表達(dá)上的情緒傾向:針對(duì)語(yǔ)義詞典的方法和基于語(yǔ)料庫(kù)的方法。一是使用語(yǔ)義詞典。在國(guó)外,大都使用Wordnet和GeneralInquirer。Wordnet是一種在線詞匯參考系統(tǒng),由普林斯頓大學(xué)開(kāi)發(fā),后者收錄了1914個(gè)正向情感詞匯及2293個(gè)負(fù)向情感詞匯,并根據(jù)每個(gè)詞的不同屬性進(jìn)行了專門(mén)標(biāo)注,從而實(shí)現(xiàn)在實(shí)際情感分析中的靈活運(yùn)用?,F(xiàn)在,Kamps等人[4]已經(jīng)明確地指出,在WordNet中對(duì)文本的分類很重要,通過(guò)對(duì)待分析詞匯和WordNet中一些基準(zhǔn)單詞的相似程度進(jìn)行計(jì)算,來(lái)判斷和分析這些詞語(yǔ)的情緒表達(dá)和傾向。AlinaAndreevskaia等人[5]提出了一種詞匯分類的方法,他們研究了詞網(wǎng)中所有詞匯真實(shí)的含義,接著利用一定的公式計(jì)算近義詞之間的關(guān)聯(lián)程度并得出權(quán)值,從而將詞匯分成不同的類別。PeterD和Turkey[6]挑選了兩個(gè)詞匯(poor,excellent)作為最小的情感詞匯,利用它們所代表的不同的情感極性,如果其他詞匯與這兩個(gè)較小的詞匯的表達(dá)情感相似,即有相近的情感類別,則可以根據(jù)詞匯的上下文信息來(lái)判斷另外一些詞匯的情感傾向。與英文相比,中文詞與詞之間有著更復(fù)雜的聯(lián)系,并且需要專門(mén)為其分詞才能更好的進(jìn)行情感分析。為了判斷漢語(yǔ)文本的情感,大多數(shù)人選擇了Hownet情感詞典進(jìn)行分析。提出了利用語(yǔ)義關(guān)聯(lián)來(lái)解決句法分析中結(jié)構(gòu)歧義的方法。很少會(huì)有人采取各種情感分析的方法來(lái)評(píng)價(jià)漢語(yǔ)。在對(duì)少數(shù)漢語(yǔ)中使用的形容詞字典進(jìn)行分析研究的基礎(chǔ)上,提出了一種結(jié)構(gòu),認(rèn)為每個(gè)詞相互之間沒(méi)有練習(xí),并手動(dòng)標(biāo)記詞匯的褒貶。該方法可以計(jì)算資源,利用知網(wǎng)中不同術(shù)語(yǔ)詞類的相互關(guān)聯(lián),如水平和垂直主關(guān)系。語(yǔ)義相似度概念是對(duì)稱的,可以計(jì)算影響因素,從而提高關(guān)聯(lián)度。這種方法最關(guān)鍵的思想是,對(duì)于我們想探究其情感狀態(tài)的詞語(yǔ),我們選擇一些已知其褒貶傾向的詞語(yǔ),并將這些詞組合起來(lái)形成種子。二是運(yùn)用無(wú)監(jiān)督的方法來(lái)分析文本語(yǔ)言的情緒。運(yùn)用點(diǎn)互信息(PMI)的概念,計(jì)算了單個(gè)詞與積極情緒、消極情緒在未知的情況下文本中的關(guān)聯(lián)性,并計(jì)算得出兩種相關(guān)性之間差異。大于零表現(xiàn)為正向的,反之表現(xiàn)為負(fù)向的。且相應(yīng)價(jià)值的絕對(duì)值越高,情緒越強(qiáng)[7]。(2)句子級(jí)語(yǔ)句級(jí)別的情感分析在這里起著十分重要的作用,這是因?yàn)橥暾渥拥那楦信袛嗍菍?duì)詞語(yǔ)級(jí)的總結(jié),同時(shí)也為篇章級(jí)別的情感分析奠定了基礎(chǔ)。通常來(lái)說(shuō),判斷一條語(yǔ)句屬于積極情緒還是消極情緒,最常見(jiàn)的方法有兩個(gè):機(jī)器學(xué)習(xí)和基于情感詞語(yǔ)進(jìn)行判斷。而斷定這條語(yǔ)句的褒貶情況,可以通過(guò)主客觀分析及句子情感分析進(jìn)行。對(duì)于主客觀分析,Wiebe[8]利用無(wú)監(jiān)督的方式,提出了一種相對(duì)細(xì)粒度的注解。其采用基于分布相似度的詞聚類方法,以代替標(biāo)注文件或者句子,找出一些主觀性較高的結(jié)論,實(shí)現(xiàn)分類。Hatzivassiloglou等人[11]研究了各類形容詞的作用,建立了它們的主觀預(yù)測(cè)。對(duì)于句子情感極性的判斷,Hu等人[9]利用意見(jiàn)詞確定語(yǔ)義方向,利用WordNet中詞與詞之間的關(guān)系,考慮了每個(gè)句子的意見(jiàn)取向,并通過(guò)考慮句子中有情感色彩的詞來(lái)判斷句子的情感傾向。在Turney等人[10]鉆研話語(yǔ)評(píng)價(jià)時(shí),選擇PMI作為一種判斷。首先捕獲一個(gè)主觀的句子,用形容詞種子集對(duì)這個(gè)句子中的一些詞進(jìn)行打分,然后依照得分情況來(lái)判斷句子的情感表達(dá)。(3)篇章級(jí)與句子級(jí)類似,篇章級(jí)別的情感傾向分類離不開(kāi)構(gòu)成篇章的句子的情緒,同時(shí)也依賴于整篇文章的整體情緒方向。因此,對(duì)于篇章層次的情感分析,我們大多選擇了機(jī)器學(xué)習(xí)的研究方式,例如KMeans算法、素貝葉斯算法、SVM算法及這些算法的改進(jìn)算法等[9]。1.2.2主題模型研究現(xiàn)狀主題模型被廣泛應(yīng)用于機(jī)器學(xué)習(xí)和自然語(yǔ)言處理等領(lǐng)域中,用于從一系列抽象數(shù)據(jù)庫(kù)或子文件中自動(dòng)提取抽象數(shù)據(jù)到特定主題的一種統(tǒng)計(jì)分析模型[11]。假如一篇文章中有各種主題,那么某些可以表明主題的不同詞匯就會(huì)重復(fù)出現(xiàn),這時(shí)我們就可以利用主題模型,把由一定規(guī)律的文本組合到一起,提煉出所需要的主題詞匯。最早,大家認(rèn)為向量空間模型(VSM),這個(gè)模型是在1960年由美國(guó)哈佛大學(xué)的GeraldSalton等人[12]首次提出的,主要被廣泛應(yīng)用于數(shù)據(jù)和信息檢索。該模型將每篇文本內(nèi)容視為文檔到詞語(yǔ)的一對(duì)多的映射關(guān)系,把對(duì)文本內(nèi)容的處理簡(jiǎn)化為向量空間中的運(yùn)算。然而隨著大眾對(duì)文本內(nèi)容的不斷研究,發(fā)現(xiàn)VSM模型存在一定的不足,那就是它不能很好地包括一詞多義及多詞同義的情況。由于這一問(wèn)題的產(chǎn)生和出現(xiàn),Landauer[13]首先提出了潛在語(yǔ)義分析模型(LSA)。LSA模型通過(guò)奇異值分解來(lái)獲取文檔和主題的相關(guān)性、詞語(yǔ)和字義之間的相關(guān)度以及詞義和主題的相關(guān)度??梢钥闯?,使用這個(gè)模型不僅可以很快的得出主題模型,還可以解決此役的問(wèn)題。但是,奇異值計(jì)算需要消耗大量的時(shí)間,而我們的文本內(nèi)容通常都包含很多,對(duì)于這樣的高維度矩陣做分解是相當(dāng)困難的。為了進(jìn)一步深入研究和不斷改進(jìn)可能發(fā)生的問(wèn)題,Blei[14]在2003年提出了三層貝葉斯主題模型(LDA),也叫做狄里克雷分配模型。這個(gè)模型主要涵蓋了關(guān)鍵詞、主旨、文件三層信息架構(gòu)。LDA認(rèn)為,文章的文本是由許多個(gè)主題排列組合而成的,而每個(gè)文本主題都往往可以用多個(gè)相關(guān)單詞的綜合概率排列來(lái)對(duì)其進(jìn)行綜合表征。經(jīng)過(guò)LDA的主題模型分析,我們不僅能夠充分地準(zhǔn)確挖掘和獲取數(shù)據(jù)庫(kù)子集中的潛在重要主題,并且還可以能夠進(jìn)一步地進(jìn)行分析和重新理解這個(gè)數(shù)據(jù)集的各個(gè)主要聚焦點(diǎn)以及其之間有關(guān)的物理特征和數(shù)字。1.3本文的研究?jī)?nèi)容本文主要針對(duì)京東電商平臺(tái)各個(gè)產(chǎn)品進(jìn)行情感分析。第一步是通過(guò)網(wǎng)絡(luò)爬蟲(chóng)對(duì)銷售商品的用戶評(píng)價(jià)進(jìn)行獲取。拿到評(píng)論數(shù)據(jù)后,首先要對(duì)評(píng)論文本進(jìn)行預(yù)處理,使用中文分析包“jieba”對(duì)評(píng)論文本進(jìn)行分詞處理。之后將分詞過(guò)后的數(shù)據(jù)進(jìn)行情感傾向分析,這里把所獲取的評(píng)論文本劃分為積極和消極兩種情感。最后利用LDA主題模型,分別對(duì)正向和負(fù)向情感的評(píng)論數(shù)據(jù)進(jìn)行主題提取,并將熱點(diǎn)詞匯通過(guò)柱狀圖、餅圖、云詞圖等直觀的方式展現(xiàn)出來(lái)。1.4本文結(jié)構(gòu)安排本論文的主要內(nèi)容和章節(jié)安排如下:第一章:緒論。本章節(jié)主要是對(duì)互聯(lián)網(wǎng)電子商務(wù)產(chǎn)業(yè)的相關(guān)背景,與目前國(guó)內(nèi)外對(duì)于文本情感分析技術(shù)的研究現(xiàn)狀進(jìn)行了簡(jiǎn)單的概述,主要是從情感傾向分析、主題分析、商品屬性提取這三個(gè)方面進(jìn)行了概述。第二章:電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析的理論介紹。這次設(shè)計(jì)涉及到網(wǎng)絡(luò)爬蟲(chóng)技術(shù)、中文分詞以及本次情感分析所用到的LDA主題模型,具體描述了這些技術(shù)的算法原理。第三章:電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析需求分析。分別從可行性分析、功能需求分析及非功能性需求分析入手,對(duì)該系統(tǒng)進(jìn)行盡可能全面的需求分析。第四章:電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)設(shè)計(jì)。這一章首先介紹了系統(tǒng)的概要設(shè)計(jì),將系統(tǒng)分為四個(gè)模塊,使用了架構(gòu)圖、流程圖等方式使設(shè)計(jì)思路更加清晰。第五章:系統(tǒng)實(shí)現(xiàn)。根據(jù)上述需求分析及系統(tǒng)設(shè)計(jì),本章節(jié)中展示了各模塊的代碼及運(yùn)行界面,旨在于確保功能的實(shí)現(xiàn)。第六章:系統(tǒng)測(cè)試。測(cè)試是一個(gè)完整的系統(tǒng)工程周期中非常重要的一個(gè)環(huán)節(jié),它保證實(shí)現(xiàn)的系統(tǒng)可以正常運(yùn)行。本章對(duì)系統(tǒng)功能進(jìn)行了測(cè)試,總結(jié)了系統(tǒng)的測(cè)試環(huán)境、測(cè)試方法與過(guò)程。第七章:總結(jié)與展望。這一章介紹了本文的研究背景和意義,對(duì)本文所做的工作進(jìn)行了闡述,指出了目前所存在的不足,并提出了可能改進(jìn)的方法。2.相關(guān)技術(shù)介紹2.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)到現(xiàn)在為止已經(jīng)有二十多年的發(fā)展歷史。HTML網(wǎng)頁(yè)是按DOM樹(shù)的模型編寫(xiě)的,該模型樹(shù)中網(wǎng)頁(yè)源代碼分為head和body兩部分。大部分信息存放body里。網(wǎng)絡(luò)爬蟲(chóng)可以按照既定的爬取順序與策略對(duì)頁(yè)面進(jìn)行瀏覽,并將其重要內(nèi)容進(jìn)行爬取的程序。許多搜索引擎都會(huì)用到這種技術(shù)。2.1.1網(wǎng)絡(luò)爬蟲(chóng)利用正則表達(dá)式的篩選技術(shù)Python庫(kù)中包含一套基本的正則表達(dá)式。正則表達(dá)式公式,用于使用特定字符顯示的字符串操作,已經(jīng)定義的數(shù)據(jù)和將從網(wǎng)絡(luò)中提取的關(guān)鍵數(shù)據(jù)。因此,利用正則表達(dá)式語(yǔ)法,將不同的元素用特殊字符代替,從而用來(lái)完成web關(guān)鍵詞、圖像等各種網(wǎng)頁(yè)信息的搜索、獲取和分析。首先對(duì)網(wǎng)頁(yè)源代碼、超鏈接的訪問(wèn),然后使用正則表達(dá)式查看超鏈接的內(nèi)容。2.1.2運(yùn)用python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)進(jìn)行網(wǎng)頁(yè)數(shù)據(jù)爬取根據(jù)不同的操作系統(tǒng),選擇適合的Python版本進(jìn)行安裝。爬蟲(chóng)要使用到requests庫(kù),可以使用命令行進(jìn)行安裝,也可以直接在Pycharm中進(jìn)行安裝。安裝成功后,正常調(diào)用requests庫(kù)即可使用。利用網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)對(duì)網(wǎng)站數(shù)據(jù)信息的抓取,主要包括數(shù)據(jù)檢索、數(shù)據(jù)抓取、數(shù)據(jù)分析等步驟。該技術(shù)在搜索引擎中起著很重要的作用,它能夠自主提取網(wǎng)頁(yè)中的數(shù)據(jù)信息。首先,數(shù)據(jù)檢索和捕獲。數(shù)據(jù)的檢索技術(shù)與傳統(tǒng)搜索引擎網(wǎng)站相似,它能夠充分利用Python這種解釋型腳本語(yǔ)言,以及requests庫(kù)的get()方法,進(jìn)行網(wǎng)絡(luò)關(guān)鍵字、用戶所需信息的檢索與抓取,并在電腦屏幕中自動(dòng)進(jìn)行展示。其次,數(shù)據(jù)分析。這一步驟是對(duì)已經(jīng)爬取到的內(nèi)容,進(jìn)行必要數(shù)據(jù)信息的提取和分析。這一過(guò)程中可以使用正則匹配,連接到網(wǎng)頁(yè)的URL地址,運(yùn)用正則表達(dá)式將提取的數(shù)據(jù)放入到集合中,完成對(duì)網(wǎng)絡(luò)信息的多輪捕獲、篩選與解析。2.2中文分詞介紹中文分詞法就是把一段漢字按順序進(jìn)行切割劃分為不同的單詞。中文分詞是中文處理的基石,在該領(lǐng)域占有很重要的地位。在文本分析中,數(shù)據(jù)分詞是一個(gè)重要步驟。數(shù)據(jù)分詞指將文本按照特定的順序重新編碼排列或者組合成其他順序,分詞的準(zhǔn)確與否也直接決定了后續(xù)的分析工作能否順利推進(jìn)。在互聯(lián)網(wǎng)相關(guān)的各領(lǐng)域中,很多時(shí)候算法的優(yōu)劣起到了至關(guān)重要的作用,但是絕對(duì)不能無(wú)視分詞結(jié)果的準(zhǔn)確率所產(chǎn)生的影響。這是因?yàn)榉衷~結(jié)果影響特征的選取,且影響中間過(guò)程相關(guān)性的判斷。如果分詞結(jié)果不理想,即使算法效率很高,也無(wú)法達(dá)到想要的結(jié)果。2.2.1中文分詞算法介紹當(dāng)前,我們時(shí)常運(yùn)用并且熟悉的分詞算法主要類型有三種:字符串匹配算法、基于理解的算法和基于機(jī)器學(xué)習(xí)的方法。字符串匹配算法是依據(jù)一個(gè)足夠完整的詞典完成的。它把要分割的中文文檔中的字符串和詞典中的詞語(yǔ)進(jìn)行比較,這個(gè)比較要確保準(zhǔn)確度足夠高。如果詞典中的詞匯與字符串在當(dāng)前待分的目標(biāo)文本的文本串中出現(xiàn),則說(shuō)明字符串匹配成功。常用的字符串匹配算法主要有四種,分別為:正向最大匹配、逆向最大匹配、雙向最大匹配和最小切分。如果我們僅僅是單純的使用字符串匹配算法,便會(huì)產(chǎn)生準(zhǔn)確率較低的缺點(diǎn),所以在單獨(dú)使用該算法時(shí),需要做進(jìn)一步地優(yōu)化?;诶斫獾乃惴ㄊ且环N模擬人類思考方式的算法。該算法通過(guò)模擬現(xiàn)實(shí)生活中人們對(duì)不同種類句子文本的理解不同,從而產(chǎn)生不同的效果進(jìn)行分詞。其中心思維是在分詞的同時(shí)對(duì)句子文本進(jìn)行句法、語(yǔ)義分析,并且利用句法和語(yǔ)義信息處理可能產(chǎn)生的歧義現(xiàn)象。基于理解的算法由于需要進(jìn)行句法結(jié)構(gòu)分析,同時(shí)在分析時(shí)需要以龐大的的語(yǔ)言知識(shí)和信息作為數(shù)據(jù)庫(kù)這一前提,所以算法分析比較復(fù)雜?;跈C(jī)器學(xué)習(xí)的方法是利用機(jī)器學(xué)習(xí)算法的原理對(duì)文本進(jìn)行模型構(gòu)建。在機(jī)器進(jìn)行算法構(gòu)建前,我們首先需要有大量已分詞的文本作為訓(xùn)練數(shù)據(jù)庫(kù)以支撐訓(xùn)練,在這個(gè)基礎(chǔ)上,才能利用機(jī)器學(xué)習(xí)算法進(jìn)行模型訓(xùn)練。基于機(jī)器學(xué)習(xí)的方法由此可以利用該模型對(duì)未知的文本進(jìn)行分詞工作,并利用條件隨機(jī)場(chǎng)算法。由上述我們就可以了解到,基于機(jī)器學(xué)習(xí)的前提是必須擁有大量己標(biāo)注的訓(xùn)練語(yǔ)料來(lái)作為所需要的訓(xùn)練數(shù)據(jù)庫(kù)。在進(jìn)行訓(xùn)練數(shù)據(jù)庫(kù)的構(gòu)建時(shí),需要耗費(fèi)大量的時(shí)間成本。而且語(yǔ)料中由于存在數(shù)量龐大的噪音作為干擾,會(huì)使分詞結(jié)果與原定目標(biāo)之間產(chǎn)生較大的誤差。同時(shí),在有訓(xùn)練數(shù)據(jù)庫(kù)這一前提下進(jìn)行訓(xùn)練的過(guò)程中,也會(huì)耗費(fèi)大量的時(shí)間成本和空間成本。2.2.2jieba庫(kù)本文選擇的是使用Python語(yǔ)言中的中文數(shù)據(jù)分析包分析包“jieba”來(lái)進(jìn)行數(shù)據(jù)分詞。結(jié)巴分詞有精確模式、全模式、搜索引擎模式三種模式。精確模式能精確地將每個(gè)語(yǔ)句區(qū)別開(kāi),適用于廣泛的文本分析;全模式可以將語(yǔ)句中可以匯聚成詞語(yǔ)的詞匯更為快速的篩選出來(lái)。但由于文本符碼間的組合問(wèn)題,該模式篩選出的文本有時(shí)會(huì)有歧義發(fā)生;搜索引擎模式則是在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞匯進(jìn)行進(jìn)一步的切分,以提高召回率。搜索引擎模式適用于搜索引擎分詞。經(jīng)過(guò)龐大的樣本對(duì)比與測(cè)試后,得出結(jié)巴分詞的精確度可以達(dá)到97%以上。2.3LDA主題模型潛在狄利克雷分配(LatentDirichletAllocation,LDA)是由Blei等人在2003年提出的生成主題模型。該模型中新增加了主題的概念,與傳統(tǒng)文本的詞語(yǔ)建模的不同,LDA模型認(rèn)為文檔是由主題構(gòu)成的,每個(gè)主題中相應(yīng)的詞語(yǔ)分布也有差異。2.3.1LDA主題模型介紹與基于詞的空間向量模型VSM相比,LDA增加了概率的信息。LDA是一種非監(jiān)督機(jī)器學(xué)習(xí)技術(shù),可以用來(lái)識(shí)別大規(guī)模文檔集或語(yǔ)料庫(kù)中潛藏的主題信息。LDA模型本身就是貝葉斯模型。它是由文檔中的主題詞生成的。簡(jiǎn)單來(lái)說(shuō),該模型為一種三層模型,包含關(guān)鍵字(w)、主題(z)及文檔(d),利用詞袋模型將文檔表示成詞的詞頻向量,將文本中進(jìn)行了量化表示。文檔到主題服從多項(xiàng)式分布,主題到詞服從多項(xiàng)式分布。換句話說(shuō),一篇文章包含若干數(shù)目的關(guān)鍵字,每個(gè)關(guān)鍵字并不是隨機(jī)出現(xiàn)的,這些此本質(zhì)上是按照某種分布方式選擇了某個(gè)主題,然后再由其選擇的主題以一定的算法選定一個(gè)詞。這種方法的好處就在于可以在詞類數(shù)目巨大的文庫(kù)中獲得一個(gè)最關(guān)鍵的詞,確定為它的主題。每一篇文章均可以被視作一個(gè)向量來(lái)進(jìn)行統(tǒng)計(jì)分析,按照該方法可以將文本信息轉(zhuǎn)化為數(shù)字信息,從而進(jìn)行建模與統(tǒng)計(jì)。如圖2-1所示,α和β為狄利克雷先驗(yàn)參數(shù),θ表示主題在文檔中的分布的參數(shù),φ是詞在主題中分布的參數(shù)。圖2-1LDA圖模型表示定義詞表大小n每一個(gè)詞用一個(gè)y維向量表示(0,0,l,...,0,0),一個(gè)由N個(gè)詞構(gòu)成的文檔記為d=(w1,w2,...,wN),包含M篇文檔構(gòu)成的語(yǔ)料記為D={d1,d2,...,dM},則對(duì)于語(yǔ)料庫(kù)中的每篇文檔,LDA定義了如下的生成過(guò)程:1.采樣文檔di包含的詞的個(gè)數(shù)N,即N~Possion(δ);2.采樣文檔對(duì)應(yīng)的主題分布,根據(jù)狄利克雷先驗(yàn)參數(shù)α,為di選擇一個(gè)主題分布θi,即θi~Dir(α);3.確定每一個(gè)關(guān)鍵詞。對(duì)于N個(gè)關(guān)鍵詞中的每一個(gè)wn,通過(guò)下面兩個(gè)步驟確定wn的值:1)根據(jù)θi為wn。進(jìn)行主題zn選擇,即將關(guān)鍵詞wn分配到主題zn中,依據(jù)是多元分布,且zn~Multinomial(θ);2)根據(jù)概率p(wi|zn,φ),為wn賦值,其中wi屬于字典集。2.3.2LDA主題模型估計(jì)LDA模型對(duì)θ、φ近似估計(jì)通常使用馬爾科夫鏈蒙特卡洛(MarkovChainMonteCarlo)算法之中一個(gè)特例Gibbs抽樣。利用Gibbs抽樣對(duì)LDA參數(shù)估計(jì),如公式2-1所示:(2-1)這里表示詞wi屬于低s|個(gè)主題概率,Z-i表示其他所有詞的概率;ns,?i表示不包含當(dāng)前詞ωi的被分配到當(dāng)前主題zs下的個(gè)數(shù);ns,?j表示不包含當(dāng)前文檔dj中的被分配到當(dāng)前zs下的個(gè)數(shù)。通過(guò)對(duì)上式的推導(dǎo),可以得出詞ωi在主題zs中的分布的參數(shù)估計(jì)φs,i,主題zs在評(píng)論dj中的多項(xiàng)分布的參數(shù)估計(jì)θj,s,如公式(2-2)、(2-3)中所示,ns,i表示詞ωi在主題zs中出現(xiàn)的次數(shù);nj,s表示文檔dj中包含主題zs的個(gè)數(shù)。(2-2)(2-3)LDA主題模型與其他模型相比較,其不同之處就在于引入了狄利克雷先驗(yàn)知識(shí)。此模型在很多方面比如文本聚類、主題挖掘、相似度計(jì)算等都有很廣泛的應(yīng)用,LDA模型應(yīng)用能力強(qiáng),不容易出現(xiàn)過(guò)擬合的情況。同時(shí),LDA模型是一種無(wú)監(jiān)督模型,不需要其他測(cè)試集,不需要人工標(biāo)注,只有訓(xùn)練文檔就可以自動(dòng)訓(xùn)練出各種概率,這樣可以節(jié)省時(shí)間以及人力。再次,運(yùn)用LDA主題模型可以求出某一個(gè)詞匯在其主題中的概率分布,從而判斷某一詞匯屬于哪一個(gè)主題,接著求出這個(gè)主題的概率和同一主題下的其他特征詞,解決指代問(wèn)題。2.4本章小結(jié)本章介紹了本文中要用到的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)、中文分詞算法以及LDA主題模型的原理。對(duì)于爬蟲(chóng),在Python中最常使用的就是request庫(kù)。中文分詞相對(duì)于英文分詞有更大的困難,這是因?yàn)橹形牟粌H是非結(jié)構(gòu)數(shù)據(jù),而且沒(méi)有天然的分隔符。關(guān)于中文分詞的實(shí)現(xiàn),本章介紹了jieba庫(kù),是在這次設(shè)計(jì)中所使用的,也是目前為止比較成熟的中文分詞組件。LDA模型是這次情感分析中很重要的一部分內(nèi)容,相較于其他的主題模型,該模型增加了概率,因此其泛化能力強(qiáng),也不容易出現(xiàn)過(guò)擬合的現(xiàn)象,還可以解決多種指代問(wèn)題。3.電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)需求分析3.1可行性分析3.1.1技術(shù)可行性分析Python語(yǔ)言是一種高級(jí)語(yǔ)言腳本,作為最具潛力的語(yǔ)言之一,Python被廣泛應(yīng)用于當(dāng)今應(yīng)用市場(chǎng)當(dāng)中。該語(yǔ)言有著十分豐富的第三方程序庫(kù),可以簡(jiǎn)單地將各種其他語(yǔ)言模塊結(jié)合在一起。且其開(kāi)發(fā)環(huán)境已經(jīng)包括了很多高級(jí)數(shù)據(jù)結(jié)構(gòu),這也使得開(kāi)發(fā)人員在應(yīng)用Python語(yǔ)言編寫(xiě)程序的過(guò)程中僅用十分簡(jiǎn)潔的代碼就可以實(shí)現(xiàn)所需功能。作為高級(jí)語(yǔ)言,Python支持快速開(kāi)發(fā)實(shí)踐和簡(jiǎn)單的程序維護(hù)。本系統(tǒng)采用Django框架。該系統(tǒng)開(kāi)發(fā)框架基于MVC架構(gòu),即模型-視圖-控制器設(shè)計(jì)模型,因此開(kāi)發(fā)人員僅需要使用很少的代碼就可以輕松搭建一個(gè)功能完整的網(wǎng)站,具有開(kāi)發(fā)快捷、部署方便、可重用性高、維護(hù)成本低等諸多優(yōu)點(diǎn)。3.1.2經(jīng)濟(jì)可行性分析第一,本次設(shè)計(jì)由學(xué)生自主設(shè)計(jì)完成,設(shè)計(jì)過(guò)程中所學(xué)習(xí)的課程均為網(wǎng)上免費(fèi)資源,在人工費(fèi)用上無(wú)需任何開(kāi)銷。第二,本次設(shè)計(jì)過(guò)程中所使用的所有軟件均為開(kāi)源免費(fèi)的,且對(duì)硬件設(shè)備也沒(méi)有特別高的需求,沒(méi)有其他特殊設(shè)備的使用。除此之外,此次設(shè)計(jì)所使用的Django框架也具有維護(hù)成本低的優(yōu)點(diǎn),也就是說(shuō)對(duì)于降低了日后的維護(hù)成本。綜上所述,無(wú)論是從短期還是長(zhǎng)遠(yuǎn)發(fā)展的角度來(lái)看,電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析的經(jīng)濟(jì)可行性都是較為優(yōu)秀的。3.1.3社會(huì)可行性分析本次試驗(yàn)所用到的爬蟲(chóng)系統(tǒng)不包含危害國(guó)家安全方面的因素,京東評(píng)論中所涉及到二元情感評(píng)論也均為民生方面的用戶感受,并不涉及政治、宗教等敏感話題,因此社會(huì)可行性成立。3.1.4風(fēng)險(xiǎn)因素控制可行性分析本次試驗(yàn)所用到的爬蟲(chóng)系統(tǒng)并不會(huì)對(duì)涉及到網(wǎng)絡(luò)信息安全、具有商業(yè)價(jià)值的信息進(jìn)行爬取,所以不具有危及網(wǎng)絡(luò)安全與商業(yè)安全的事件發(fā)生,具有風(fēng)險(xiǎn)因素控制的可行性。3.2功能需求分析該電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)主要為電商平臺(tái)的消費(fèi)者提供了一個(gè)渠道,可以讓他們更直觀地了解想要購(gòu)買(mǎi)產(chǎn)品的評(píng)論文本。同時(shí)商家也可以利用該系統(tǒng),了解目前消費(fèi)者的心聲和需求,從而可以進(jìn)一步提升產(chǎn)品質(zhì)量。因此,該系統(tǒng)涉及到的功能主要包括評(píng)論數(shù)據(jù)的爬取、文本預(yù)處理、情感傾向分析以及給用戶提供一個(gè)良好的可視化界面。3.2.1評(píng)論數(shù)據(jù)爬取需求分析由于該系統(tǒng)是面向大眾用戶設(shè)計(jì)的,因此爬取的數(shù)據(jù)一定是用戶需要的數(shù)據(jù),同時(shí)爬取時(shí)輸入的關(guān)鍵字一定是可以方便找到的信息。爬取過(guò)程會(huì)針對(duì)用戶需要的評(píng)論信息作為爬取對(duì)象,對(duì)于其他非相關(guān)內(nèi)容則不予采用,提高對(duì)于核心信息爬取的準(zhǔn)確度與相關(guān)度,讓讀者獲得的信息更具針對(duì)性,提高其可信度。3.2.2文本預(yù)處理需求分析對(duì)于大量非結(jié)構(gòu)化的文本信息來(lái)說(shuō),并不是所有的數(shù)據(jù)都是有價(jià)值的。需要將以下三種數(shù)據(jù)進(jìn)行處理:(1)對(duì)除去評(píng)論數(shù)據(jù)中重復(fù)的部分。這樣做的原因很簡(jiǎn)單:1.如果用戶在指定的時(shí)間后沒(méi)有發(fā)表評(píng)論,系統(tǒng)將自動(dòng)發(fā)表評(píng)論。當(dāng)然,這些評(píng)論的大部分都為好評(píng),但這些數(shù)據(jù)顯然沒(méi)有分析價(jià)值。而且,這種評(píng)論會(huì)反復(fù)出現(xiàn),所以應(yīng)該刪除。2.因?yàn)橥粋€(gè)人可能會(huì)多次購(gòu)買(mǎi)同一樣商品,這些人在每次評(píng)價(jià)的時(shí)候可能會(huì)給出差異不大的評(píng)價(jià),對(duì)于我們的分析也沒(méi)有太大的價(jià)值。3.有些購(gòu)買(mǎi)者為了得到積分或者節(jié)省時(shí)間,會(huì)選擇復(fù)制之前已有的評(píng)論作為自己對(duì)該商品的評(píng)價(jià),但實(shí)際上我們并不需要兩條甚至多條一模一樣的信息。也就是說(shuō),我們需要對(duì)數(shù)據(jù)集進(jìn)行去重,同時(shí)也需要保留重復(fù)值。(2)在海量的評(píng)論數(shù)據(jù)中,還存在一些擁有連續(xù)重復(fù)詞語(yǔ)的語(yǔ)料,例如“好呀好呀好呀好呀好呀”、“價(jià)格太貴太貴太貴太貴了”。對(duì)于這種有著很多相同詞語(yǔ)的語(yǔ)句,我們僅需保留一個(gè)。(3)因?yàn)槲覀円獜脑u(píng)論中分析其要表達(dá)的情感,所以內(nèi)容過(guò)于簡(jiǎn)短的語(yǔ)句在這里對(duì)我們來(lái)說(shuō)沒(méi)有很大的意義,比如“很不好”“差不多”這樣的話語(yǔ),從這樣的語(yǔ)句中并不能看出哪個(gè)方面不好。為此,需要將這些字?jǐn)?shù)過(guò)少的評(píng)價(jià)去除。這些文本包括本身就極短的語(yǔ)料及經(jīng)過(guò)上述壓縮后字?jǐn)?shù)過(guò)少的文本。3.2.3情感傾向需求分析在漢語(yǔ)中,只有詞、句、段這三者之間能夠比較容易地使用標(biāo)點(diǎn)符號(hào)或自然段這樣的界限來(lái)劃分,而詞和詞、短語(yǔ)和短語(yǔ)之間并沒(méi)有正式地分界,是依靠人類的語(yǔ)言理解能力進(jìn)行主觀的劃分。因此,想要能夠讓機(jī)器來(lái)實(shí)現(xiàn)中文文本的自動(dòng)挖掘,首先要對(duì)其內(nèi)容進(jìn)行分詞,也就是使用特定的規(guī)則把連續(xù)的語(yǔ)料集二次排列組合形成新的詞序列。情感傾向性分析的目的主要是來(lái)判斷被分析的文本是褒義還是貶義的。它通常由兩個(gè)標(biāo)準(zhǔn)來(lái)衡量,分別是情感是正面或負(fù)面及強(qiáng)弱程度。3.2.4界面展示需求分析對(duì)于普通用戶來(lái)說(shuō),使用本系統(tǒng)時(shí)首先需要進(jìn)行注冊(cè),成功后即可登錄使用。他們可以根據(jù)京東商品的ID號(hào)來(lái)對(duì)欲購(gòu)買(mǎi)商品的評(píng)論數(shù)據(jù)進(jìn)行爬取,爬取成功后即可查看分析結(jié)果,從而做出購(gòu)買(mǎi)選擇或?qū)崿F(xiàn)商品生產(chǎn)的進(jìn)一步完善。普通用戶的用例圖如圖3-1所示:圖3-1普通用戶用例圖在這次設(shè)計(jì)中,我們也設(shè)置了管理員對(duì)整個(gè)系統(tǒng)實(shí)現(xiàn)管理。管理員登錄后,可以對(duì)查看爬取商品的所有評(píng)論文本,并可以對(duì)其中任意評(píng)論進(jìn)行刪除操作。除此之外,管理員還可以對(duì)用戶進(jìn)行管理,包括查看用戶、修改用戶信息及刪除用戶等基本操作。管理員的用例圖如圖3-2所示:圖3-2管理員用例圖3.3非功能性需求分析3.3.1操作安全性操作安全性主要表現(xiàn)在用戶權(quán)限。具體來(lái)說(shuō),就是用戶在未登錄的情況下不能對(duì)商品評(píng)論信息進(jìn)行獲取及查看分析結(jié)果。普通用戶僅在注冊(cè)并登錄后才能看到想要了解的信息。超級(jí)用戶管理員具有特定的權(quán)限,他們就是能夠輕松地實(shí)現(xiàn)對(duì)所有用戶及其評(píng)論資料的管理,包括對(duì)其進(jìn)行刪除和更新等操作,以確保整個(gè)系統(tǒng)的正常工作。3.3.2Django框架安全性本文使用Django框架。Django是用Python實(shí)現(xiàn)的,它具有很強(qiáng)的安全性,基礎(chǔ)語(yǔ)言不是安全風(fēng)險(xiǎn)。默認(rèn)情況下,Django可以防止最常見(jiàn)的安全錯(cuò)誤:(1)XSS保護(hù),默認(rèn)情況下,Django模板系統(tǒng)會(huì)對(duì)變量進(jìn)行轉(zhuǎn)義,除非它們明確標(biāo)記為安全。(2)CSRF保護(hù),易于在全球范圍內(nèi)啟用,確保表單(POST請(qǐng)求)從你自己的站點(diǎn)發(fā)送。(3)SQL注入保護(hù),Django使用內(nèi)置的ORM,因此不存在SQL注入的風(fēng)險(xiǎn)。在配置文件settings.py中,有一個(gè)SECRET_KEY變量。這個(gè)變量的本質(zhì)是一個(gè)加密的鹽,它一般配合加密算法Hash、MD5一起使用。例如用戶密碼的加密或者建立會(huì)話時(shí)用到的sessionid都需要用到SECRET_KEY。在實(shí)際的開(kāi)發(fā)工作中,一般將它保存在系統(tǒng)的環(huán)境變量中以確保加密鹽的安全。3.4本章小結(jié)本章中對(duì)系統(tǒng)做出了分析。通過(guò)對(duì)該項(xiàng)目可行性進(jìn)行分析研究,發(fā)現(xiàn)本設(shè)計(jì)從技術(shù)、經(jīng)濟(jì)、社會(huì)等各方面又具有較好的可行性,并且會(huì)對(duì)社會(huì)產(chǎn)生積極的影響,因此可以將該項(xiàng)目推進(jìn)。對(duì)于其功能需求,主要從數(shù)據(jù)爬取、文本預(yù)處理、情感傾向分析及界面展示四個(gè)部分進(jìn)行的。最后就是非功能性需求分析,系統(tǒng)的安全性是一個(gè)系統(tǒng)能否維持正常運(yùn)行的基礎(chǔ),我們需要盡可能全面的考慮安全方面的問(wèn)題,保證用戶的正常使用。電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)設(shè)計(jì)基于上一章節(jié)對(duì)該系統(tǒng)的需求分析,本章對(duì)該系統(tǒng)要實(shí)現(xiàn)的基本功能進(jìn)行了設(shè)計(jì),使系統(tǒng)開(kāi)發(fā)人員在實(shí)現(xiàn)過(guò)程中可以更好的完成。4.1系統(tǒng)整體設(shè)計(jì)一個(gè)系統(tǒng)的整體設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分。在電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析系統(tǒng)中,對(duì)硬件環(huán)境要求不高,只需要一臺(tái)帶有鍵盤(pán)和鼠標(biāo)的臺(tái)式或筆記本電腦即可運(yùn)行。軟件功能設(shè)計(jì)如圖4-1所示,該設(shè)計(jì)主要分為四個(gè)模塊,分別是數(shù)據(jù)獲取模塊、數(shù)據(jù)預(yù)處理模塊、情感分析模塊及界面展示模塊。圖4-1系統(tǒng)整體流程圖數(shù)據(jù)獲取模塊是用來(lái)進(jìn)行信息的采集,從爬取到的商品信息中提取我們所需要的評(píng)論文本,并將這些數(shù)據(jù)保存到本地?cái)?shù)據(jù)庫(kù)中。數(shù)據(jù)預(yù)處理模塊是要對(duì)獲取到的所有評(píng)論數(shù)據(jù)進(jìn)行簡(jiǎn)單的“修剪”。我們都知道,在對(duì)某商品做出評(píng)價(jià)的時(shí)候,有些消費(fèi)者為了節(jié)約時(shí)間可能只會(huì)做出一兩個(gè)字的簡(jiǎn)單評(píng)價(jià),或直接拷貝之前已存在的評(píng)論,或因長(zhǎng)時(shí)間不評(píng)論由系統(tǒng)直接做出好評(píng)。為了使后面的情感分析更加高效,這里先對(duì)評(píng)論數(shù)據(jù)進(jìn)行簡(jiǎn)單的去重,減少一部分的無(wú)用信息。除此之外,因?yàn)橹形谋旧硎菦](méi)有天然的分隔符,因此這里我們還需要對(duì)中文字句進(jìn)行相應(yīng)的分詞和處理。情感分析模塊主要是判斷文本褒貶傾向的模塊。將文本數(shù)據(jù)分為積極和消極兩類,再將二分類的文本數(shù)據(jù)進(jìn)行主題提取,得到正面評(píng)價(jià)和負(fù)面評(píng)價(jià)潛在主題的特征詞,獲得產(chǎn)品在不同方向的評(píng)價(jià)內(nèi)容。界面展示模塊主要是針對(duì)于用戶,為其提供了一個(gè)友好的展示接口,使其操作起來(lái)更加方便快捷。用戶只需輸入想要購(gòu)買(mǎi)商品的ID好,然后點(diǎn)擊“分析”,即可得出結(jié)果,比如想要購(gòu)買(mǎi)空調(diào)的用戶,就可以看出性價(jià)比是否高、售后服務(wù)是否到位等信息。同時(shí)也讓管理員操作更加方便,輕松實(shí)現(xiàn)了對(duì)用戶和評(píng)論信息的管理。4.2電商產(chǎn)品評(píng)論數(shù)據(jù)爬取模塊數(shù)據(jù)爬取模塊是整個(gè)系統(tǒng)實(shí)現(xiàn)的基礎(chǔ)部分。在這一模塊中,將分為兩個(gè)部分進(jìn)行:爬取準(zhǔn)備和評(píng)論爬取。爬取準(zhǔn)備是爬取網(wǎng)頁(yè)的準(zhǔn)備階段。在這部分我們要設(shè)置初始URL,確定爬蟲(chóng)的初始位置、爬取的相關(guān)配置、抓取評(píng)論的份數(shù)等。設(shè)定好相關(guān)配置后,Python語(yǔ)言可以自動(dòng)抓取所需信息。評(píng)論爬取部分則是爬取模塊的主要功能實(shí)現(xiàn)部分。在我們的爬取準(zhǔn)備完成后,爬蟲(chóng)會(huì)在初始URL處開(kāi)始逐條爬取符合條件的所有系新聞內(nèi)容。4.3數(shù)據(jù)預(yù)處理模塊在獲取到文本后,文本評(píng)論數(shù)據(jù)中擁有大量?jī)r(jià)值含量低的條目。如果把這些文本數(shù)據(jù)也保留到接下來(lái)的環(huán)節(jié)中,一定會(huì)對(duì)我們的分析產(chǎn)生很大的負(fù)面影響。這就需要我們對(duì)評(píng)論進(jìn)行語(yǔ)料去重、機(jī)械壓縮去詞、短句的刪除等操作。數(shù)據(jù)預(yù)處理模塊的流程圖如圖4-2所示:圖4-2數(shù)據(jù)預(yù)處理模塊流程圖(1)文本去重文本去重顧名思義,就是將意思相同或者相似的句子刪除。與文本去重相關(guān)的算法之前也有研究者提出來(lái),比如編輯距離去重、Simhash算法去重等。但這些算法也有一定不足之處。因此,此設(shè)計(jì)中,可以用最簡(jiǎn)單的思路來(lái)處理這一問(wèn)題,也就是兩兩相比較,一模一樣就可以將其去除。(2)機(jī)械壓縮去詞這里我們以字符單位數(shù)進(jìn)行分類。假設(shè)i代表每次重復(fù)處理的字符為單位個(gè)別數(shù),例如i=1時(shí)處理"嗯嗯嗯嗯"的一種情況,i=2時(shí)用一種處理"推薦推薦推薦"的一種情況,i=1且i=2時(shí)用一種重復(fù)處理的方式,即只有當(dāng)重復(fù)的個(gè)別數(shù)量大于2時(shí)才對(duì)其進(jìn)行壓縮,因?yàn)闀?huì)出現(xiàn)"滔滔不絕"、"美的的確好",跟“容我思考思考”“這真的真的好看”等不好歸為冗余的情況。但當(dāng)出現(xiàn)3次及以上時(shí)基本就是冗余了。i=3和i=4時(shí)用一種處理方式,當(dāng)重復(fù)大于1時(shí)就將重復(fù)的詞語(yǔ)只保留一個(gè)即可。而大于五個(gè)字的重復(fù)比較少出現(xiàn),為了減少算法復(fù)雜度可以只處理到i=4。(3)短句刪除進(jìn)行短句刪除的思路很簡(jiǎn)單:只需要確保一句話不少于幾個(gè)字即可。通常來(lái)說(shuō),4到8個(gè)字符作為一句話的最少字?jǐn)?shù)都是合理的,在這里我選擇讓每句話都不少于五個(gè)字符,不符合的被刪去。4.4情感分析模塊(1)中文評(píng)論分詞本文中使用的分詞庫(kù)為“jieba”分詞庫(kù)。通過(guò)將結(jié)巴分詞的三種模式進(jìn)行對(duì)比,此設(shè)計(jì)中選擇使用全模式。(2)去除停用詞停用詞也被稱為功能詞。和文檔中出現(xiàn)的其他詞匯相比,這種詞通常不包含實(shí)際的意義。停用詞一般指在文本內(nèi)容中出現(xiàn)頻率極高或者極低的中間詞詞、代詞、虛詞以及一些與情感無(wú)關(guān)的常用詞語(yǔ)。本文使用了哈工大公開(kāi)的停用詞表。(3)情感傾向計(jì)算本文利用基于詞典的方法。首先導(dǎo)入情感傾向評(píng)價(jià)表,之后需要定義一個(gè)評(píng)分的函數(shù),將初始分?jǐn)?shù)設(shè)置為零,接著用一個(gè)循環(huán),將上述處理好的數(shù)據(jù)進(jìn)行一個(gè)評(píng)分的計(jì)算。接著,將評(píng)論劃分為正向評(píng)論和負(fù)向評(píng)論兩部分,將總分大于零的評(píng)論為正向的,總分小于零的為負(fù)向的。(4)評(píng)論數(shù)據(jù)主題分析本文使用LDA模型對(duì)評(píng)論進(jìn)行主題提取,關(guān)于LDA模型的原理前面已經(jīng)做出說(shuō)明,這里就不再贅述。此次設(shè)計(jì)使用了Python中的Gensim庫(kù)。這里將正向評(píng)價(jià)和負(fù)向評(píng)價(jià)分別進(jìn)行分析。首先要建立一個(gè)字典,之后才能進(jìn)行結(jié)構(gòu)化處理,之后建立語(yǔ)料庫(kù),這時(shí)就可以進(jìn)行LDA模型訓(xùn)練了。本次設(shè)計(jì)把每次處理好的評(píng)論文本各提取出來(lái)10個(gè)主題,每個(gè)主題中各有20個(gè)特征詞。4.5界面展示模塊界面展示模塊使用戶與系統(tǒng)交互的接口。本系統(tǒng)將使用者分為普通用戶和管理員用戶兩類,他們對(duì)于系統(tǒng)的使用權(quán)限有所不同。對(duì)于普通用戶,可以在該系統(tǒng)上實(shí)現(xiàn)注冊(cè)、登錄、利用已知商品ID號(hào)獲取評(píng)論數(shù)據(jù)、查看分析結(jié)果等基本操作,其使用該系統(tǒng)的流程圖如圖4-3所示:圖4-3普通用戶界面流程圖對(duì)于管理員用戶,應(yīng)擁有修改和刪除的權(quán)限,已達(dá)到對(duì)用戶和商品信息管理的目的。同時(shí),為保證日后清楚進(jìn)行了哪些操作,應(yīng)該有日志記錄下來(lái)管理員在后臺(tái)所進(jìn)行的操作。4.6本章小結(jié)這章中對(duì)系統(tǒng)進(jìn)行了設(shè)計(jì),將系統(tǒng)劃分為四個(gè)模塊:數(shù)據(jù)獲取模塊、數(shù)據(jù)預(yù)處理模塊、情感分析模塊、界面展示模塊。系統(tǒng)實(shí)現(xiàn)本章將完成該系統(tǒng)的代碼編寫(xiě)及頁(yè)面設(shè)計(jì),依據(jù)上一章中的設(shè)計(jì)內(nèi)容進(jìn)行。5.1系統(tǒng)的運(yùn)行環(huán)境電商產(chǎn)品評(píng)論數(shù)據(jù)情感分析的硬件環(huán)境要求為一般的主流計(jì)算機(jī)配置即可,系統(tǒng)采用Django框架,Django框架擁有完整的服務(wù)發(fā)布、路由映射、模板編程、數(shù)據(jù)處理的一整套功能。本次設(shè)計(jì)使用pycharm作為系統(tǒng)的開(kāi)發(fā)工具。如表5-1所示對(duì)系統(tǒng)選擇的各配置項(xiàng)進(jìn)行說(shuō)明。表5.1系統(tǒng)運(yùn)行環(huán)境配置表配置項(xiàng)規(guī)格操作系統(tǒng)Windows10家庭中文版Python版本Python3.7數(shù)據(jù)庫(kù)SQLite3開(kāi)發(fā)語(yǔ)言Python開(kāi)發(fā)工具Pycharm瀏覽器GoogleChrome5.2系統(tǒng)的代碼組織結(jié)構(gòu)該系統(tǒng)的實(shí)現(xiàn)是基于Django框架的開(kāi)發(fā)技術(shù)。系統(tǒng)中出現(xiàn)的主要文件包括:負(fù)責(zé)情感分析主題目錄的Python文件;負(fù)責(zé)前端頁(yè)面樣式的靜態(tài)配置文件;Django框架的配置文件;項(xiàng)目后臺(tái)插件文件。5.3系統(tǒng)的配置文件系統(tǒng)采用Django架構(gòu)設(shè)計(jì)實(shí)現(xiàn),需要對(duì)項(xiàng)目中的settings.py進(jìn)行配置。在INSTALLED_APPS參數(shù)下增加這次設(shè)計(jì)所要用到的其他應(yīng)用,包括user、xadmin等,自己編寫(xiě)的應(yīng)用都必須在這個(gè)變量表中進(jìn)行注冊(cè)才能生效。修改ROOT_URLCONF為works.urls,它指定了當(dāng)前目錄的根URL,是Django路由系統(tǒng)的統(tǒng)一入口。修改語(yǔ)言配置為中文,當(dāng)前服務(wù)端所在時(shí)區(qū)為中國(guó)時(shí)區(qū),分別是LANGUAGE_CODE=’zh-hans’、TIME_ZONE=’UTC’。修改STATIC_URL=’/static/’,這里是靜態(tài)資源的存放位置。5.4系統(tǒng)各模塊的實(shí)現(xiàn)5.4.1數(shù)據(jù)獲取模塊本文所爬取的評(píng)論數(shù)據(jù)全部來(lái)自于京東平臺(tái),數(shù)據(jù)真實(shí)有效。首先打開(kāi)京東的任意幾個(gè)商品的頁(yè)面,并觀察URL,可以發(fā)現(xiàn)都是/+數(shù)字+.html的格式,而且數(shù)字也隨著商品的改變而改變,基本上可以判斷這串?dāng)?shù)字就是可以代表一個(gè)商品編號(hào)的身份號(hào)。此外,我們需要在該頁(yè)下打開(kāi)開(kāi)發(fā)者工具,在network中的XHR和JS中尋找保存有評(píng)論的文件。通過(guò)觀察發(fā)現(xiàn),這幾個(gè)關(guān)鍵字與此次設(shè)計(jì)所需要的信息密切相關(guān):comments、content、creationTime、score等。有了這些信息,我們就可以確定爬蟲(chóng)的大致思路:通過(guò)輸入商品ID號(hào)來(lái)獲取商品名稱、評(píng)論內(nèi)容、評(píng)價(jià)時(shí)間、評(píng)分等信息,之后把獲取的信息存入到數(shù)據(jù)庫(kù)中。使用get方法,進(jìn)行對(duì)網(wǎng)絡(luò)信息進(jìn)行爬取。這一過(guò)程,反復(fù)對(duì)URL地址隊(duì)列的數(shù)據(jù)內(nèi)容進(jìn)行抓取與解析,并將網(wǎng)頁(yè)爬取的URL參數(shù)送回至request對(duì)象。在這里,需要注意的是,為了防止京東平臺(tái)的反爬機(jī)制,要設(shè)置一個(gè)header頭部,也就是上一章節(jié)中提到的爬取準(zhǔn)備部分,目的是把我們偽裝成瀏覽器進(jìn)行操作,可以網(wǎng)絡(luò)搜索找到不同的User-Agent,都能進(jìn)行相應(yīng)的操作。同樣的,也可以利用time庫(kù)中的sleep()方法設(shè)置睡眠參數(shù),模擬人點(diǎn)擊鼠標(biāo)的操作過(guò)程,從而保證可以獲取到更多的數(shù)據(jù)。評(píng)論數(shù)據(jù)爬取的核心代碼展示如下:response=requests.get(url,headers=header)data=response.textjd=json.loads(data.lstrip('fetchJSON_comment98vv12345(').rstrip(');'))data_list=jd['comments']fordataindata_list:name=data['referenceName']
good=Good.objects.get_or_create(name=name)[0]
buyer_id=data['id']
content=data['content']
times=data['creationTime']
print(data['content'],data['score'],times)ShortNews.objects.get_or_create(good=good,content=content,pub_time=times,score=data['score'])獲取到的評(píng)論信息存儲(chǔ)在數(shù)據(jù)庫(kù)中,管理員可以在網(wǎng)站后臺(tái)管理系統(tǒng)中查看,如圖5-1所示:圖5-1評(píng)論管理界面5.4.2數(shù)據(jù)預(yù)處理模塊(1)文本去重這里要實(shí)現(xiàn)對(duì)相同句意的評(píng)論數(shù)據(jù)的刪除。目標(biāo)是去除重復(fù)數(shù)據(jù),且保留一條評(píng)論。此設(shè)計(jì)直接調(diào)用了Python中的去除重復(fù)項(xiàng)函數(shù),核心代碼如下所示:comment.drop_duplicates()(2)機(jī)械壓縮去詞一句上一章中提出的設(shè)計(jì)思想,這里將分兩種情況進(jìn)行代碼的編寫(xiě)。核心代碼如下所示:foriin[1,2]:j=0whilej<len(str)-2*i:ifstr[j:j+i]==str[j+i:j+2*i]andstr[j:j+i]==str[j+2*i:j+3*i]:k=j+2*iwhilek+i<len(str)andstr[j:j+i]==str[k+i:k+2*i]:k+=istr=str[:j+i]+str[k+i:]j+=1i+=1foriin[3,4]:j=0whilej<len(str)-2*i:ifstr[j:j+i]==str[j+i:j+2*i]:k=j+iwhilek+i<len(str)andstr[j:j+i]==str[k+i:k+2*i]:k+=istr=str[:j+i]+str[k+i:]j+=1i+=1(3)短句刪除forlineinall_lines:if(len(line)>4):f.write(line)5.4.3情感分析模塊(1)去除停用詞stopwords=pd.read_csv('stop.txt',sep='yang',encoding='utf-8',header=None)stopwords=['']+list(stopwords[0])+['\n']cut_text=[iforiinjieba.cut(text)ifinotinstopwords](2)情感傾向分析這里直接使用了Boson情感評(píng)價(jià)表,這里面包含了一些常見(jiàn)情感詞匯的評(píng)分,傾向情感詞語(yǔ)的評(píng)分大于零,反之小于零。核心代碼如下所示:feeling=pd.read_csv('BosonNLP_sentiment_score.txt',sep='',header=None)feeling.columns=['word','score']feeling.head()feel=list(feeling['word'])defclassfi(list1):SumScore=0foriinlist1:ifiinfeel:SumScore+=feeling['score'][feel.index(i)]returnSumScore(3)主題提取此次設(shè)計(jì)使用了LDA主題模型,但是褒義和貶義的文本混合在一起直接進(jìn)行主題提取,可能會(huì)生成一些令人產(chǎn)生疑問(wèn)的詞語(yǔ)。因此,將正向評(píng)價(jià)和負(fù)向評(píng)價(jià)分別進(jìn)行主題提取。這里以積極評(píng)價(jià)的主題提取為例,以下是核心代碼:pos_dict=corpora.Dictionary(pos[1])pos_corpus=[pos_dict.doc2bow(i)foriinpos[1]]pos_lda=models.LdaModel(pos_corpus,num_topics=10,id2word=pos_dict)print("\n正面評(píng)價(jià)")foriinrange(10):print("主題%d:"%i)print(pos_lda.print_topic(i))分析后的結(jié)果以柱狀圖、餅圖及云詞圖的方式展現(xiàn)出來(lái),如圖5-3、5-4、5-5所示:圖5-2好評(píng)分析圖5-3差評(píng)分析圖5-4云詞圖展示5.4.4界面展示模塊(1)普通用戶界面展示新注冊(cè)的用戶首先需要進(jìn)入一個(gè)注冊(cè)界面,輸入有效字符后即可注冊(cè)成功,注冊(cè)成功后立刻會(huì)自動(dòng)跳轉(zhuǎn)到新的登錄界面。已經(jīng)注冊(cè)過(guò)的會(huì)員可以在該注冊(cè)界面中直接輸入您的用戶名和密碼,輸入正確的信息后則可進(jìn)入系統(tǒng)的爬取信息的界面。注冊(cè)功能的核心代碼如下所示:defregister(request):ifrequest.method=='POST':print(request.POST)form=RegisterForm(request.POST)ifform.is_valid():password=form.cleaned_data['password']password1=form.cleaned_data['password1']username=form.cleaned_data['username']name=form.cleaned_data['name']phone=form.cleaned_data['phone']address=form.cleaned_data['address']ifUser.objects.filter(username=username):returnrender(request,'user/register.html',{'msg':"該郵箱賬號(hào)已存在"})ifpassword!=password1:returnrender(request,'user/register.html',{'msg':"密碼輸入不一致"})eliflen(password)>16orlen(password)<8:returnrender(request,'user/register.html',{'msg':"密碼超過(guò)十六位數(shù)或少于八位數(shù)了"})elifpassword.isalnum()==False:returnrender(request,'user/register.html',{'msg':"密碼含有非法字符"})a=User.objects.create(username=username,password=password,name=name)returnHttpResponseRedirect(reverse('login'))#跳轉(zhuǎn)到登錄界面else:print(form.errors)returnrender(request,'user/register.html',{'form':form})form=RegisterForm()returnrender(request,'user/register.html',{'form':form})注冊(cè)界面由圖5-5所示:圖5-5普通用戶注冊(cè)界面登錄功能的核心代碼如下所示:deflogin(request):ifrequest.method=='POST':form=Login(request.POST)ifform.is_valid():username=form.cleaned_data['username']password=form.cleaned_data['password']result=User.objects.filter(username=username)ifresult:user=User.objects.get(username=username)ifuser.password==password:request.session['login_in']=Truerequest.session['user_id']=user.idrequest.session['name']=request.session['identity']="用戶"ifuser.isLogin==False:returnHttpResponseRedirect(reverse('safe',args=(username,)))returnHttpResponseRedirect(reverse('index'))else:returnrender(request,'user/login.html',{'form':form,'message':'密碼錯(cuò)誤'})else:returnrender(request,'user/login.html',{'form':form,'message':'賬號(hào)不存在'})else:form=Login()returnrender(request,'user/login.html',{'form':form})登陸界面如圖5-6所示:圖5-6普通用戶登錄界面普通用戶登錄成功之后就可以進(jìn)入該界面,這里的商品ID號(hào)時(shí)打開(kāi)京東商品頁(yè)面后其url中有一串?dāng)?shù)字,就代表每個(gè)商品的ID,輸入這串?dāng)?shù)字即可很方便的獲取到對(duì)于該商品的評(píng)價(jià)。爬取評(píng)論數(shù)據(jù)部分的核心代碼如下所示:ifrequest.method=="POST":id=request.POST['start']gets(id)returnHttpResponseRedirect(reverse('content',args=(Good.objects.all()[0].id,)))returnrender(request,'user/get_news.html',locals())爬取界面如圖5-7所示:圖5-7普通用戶爬取評(píng)論信息界面等待爬取結(jié)束后,即可跳轉(zhuǎn)到獲取的商品名稱界面,如圖5-7所示為之前測(cè)試時(shí)獲取的商品信息,點(diǎn)擊分析就可以查看分析結(jié)果了。圖5-8爬取到的商品(2)管理員界面展示管理員用戶可隨時(shí)實(shí)現(xiàn)商品評(píng)論、一般商品用戶和其他商品相關(guān)資料的實(shí)時(shí)管理。管理員用戶可以通過(guò)手動(dòng)勾選自己認(rèn)為想要被手動(dòng)刪除的相關(guān)評(píng)論可以單次或者批量簡(jiǎn)單地手動(dòng)刪除這些評(píng)論相關(guān)信息,用戶的相關(guān)個(gè)人信息和其他相關(guān)商品信息也同樣是如此。對(duì)于評(píng)論信息,還可以使用過(guò)濾器,依據(jù)商品名稱、評(píng)分及創(chuàng)建時(shí)間等信息選擇出想要查看的評(píng)論。除此之外,還有操作日志記錄對(duì)每次修改進(jìn)行記錄。這一部分主要使用了Django框架中提供的后臺(tái)管理系統(tǒng)。管理員的界面展示如圖5-9至圖5-12所示:圖5-9管理員登陸界面圖5-10用戶管理界面圖5-11商品管理界面圖5-12操作日志界面5.5本章小結(jié)本章完成了數(shù)據(jù)的獲取模塊、數(shù)據(jù)的預(yù)處理模塊、情感分析模塊和用戶界面顯示等模塊的代碼實(shí)現(xiàn),并將運(yùn)行結(jié)果展示出來(lái)。本文主要實(shí)現(xiàn)第三章的用戶需求設(shè)計(jì)分析和第四章的操作系統(tǒng)軟件設(shè)計(jì)中既定的一些功能。系統(tǒng)測(cè)試與分析這一章節(jié)是在整個(gè)系統(tǒng)完整實(shí)現(xiàn)后進(jìn)行的,主要目的是為了測(cè)試各模塊功能是否完成,達(dá)到了預(yù)期的標(biāo)準(zhǔn),是必不可少的一個(gè)環(huán)節(jié)。6.1系統(tǒng)測(cè)試規(guī)劃系統(tǒng)測(cè)試的效果直接關(guān)系到此次系統(tǒng)設(shè)計(jì)的成功與否,更關(guān)系到設(shè)計(jì)的系統(tǒng)質(zhì)量。系統(tǒng)測(cè)試需要追溯到需求分析的結(jié)果,從用戶的角度出發(fā),測(cè)試該系統(tǒng)是否符合現(xiàn)實(shí)情況。制定良好的測(cè)試計(jì)劃,通過(guò)對(duì)各種可能導(dǎo)致系統(tǒng)產(chǎn)生問(wèn)題的測(cè)試使用比較多的實(shí)例進(jìn)行嘗試,發(fā)現(xiàn)系統(tǒng)中有缺陷并且需要確保這些缺陷得到了修復(fù)。6.1.1測(cè)試環(huán)境本次設(shè)計(jì)的測(cè)試環(huán)境如表6-1所示:表6.1測(cè)試環(huán)境情況表配置項(xiàng)規(guī)格處理器Intel(R)Core(TM)i7-10710U內(nèi)存16.00GB操作系統(tǒng)Windows10家庭中文版數(shù)據(jù)庫(kù)SQLite瀏覽器GoogleChrome6.1.2測(cè)試方法此次系統(tǒng)測(cè)試所選用的測(cè)試方法是功能測(cè)試。主要檢查系統(tǒng)的各模塊是否符合功能需求,只需要測(cè)試系統(tǒng)內(nèi)的各個(gè)功能是否完善,將所有輸入的測(cè)試數(shù)據(jù)放置于預(yù)期的結(jié)果和實(shí)際成績(jī)之間,然后進(jìn)行對(duì)照,最終得出測(cè)試的結(jié)果。6.1.3測(cè)試注意事項(xiàng)在系統(tǒng)測(cè)試的過(guò)程中的每一個(gè)細(xì)節(jié)都盡可能的做詳細(xì)測(cè)試,并且測(cè)試時(shí)要將測(cè)試的輸出結(jié)果和預(yù)期結(jié)果的對(duì)比,更直觀的展現(xiàn)測(cè)試結(jié)果。測(cè)試用例的選擇要盡可能的全面,包含符合條件的輸入,也包含不符合條件的輸入。測(cè)試人員應(yīng)時(shí)刻保持嚴(yán)謹(jǐn)?shù)膽B(tài)度,直至測(cè)試結(jié)束。6.2功能測(cè)試本系統(tǒng)功能測(cè)試中,數(shù)據(jù)獲取模塊、數(shù)據(jù)預(yù)處理模塊、情感分析模塊采用白盒測(cè)試法,界面展示模塊采用動(dòng)態(tài)黑盒測(cè)試法進(jìn)行測(cè)試。按照不同的功能模塊分別設(shè)置測(cè)試用例,下面對(duì)各功能模塊進(jìn)行測(cè)試分析。6.2.1數(shù)據(jù)獲取模塊測(cè)試運(yùn)行結(jié)果對(duì)評(píng)論信息進(jìn)行獲取是整個(gè)實(shí)驗(yàn)的基礎(chǔ),必須確保其準(zhǔn)確性。對(duì)數(shù)據(jù)獲取模塊進(jìn)行功能測(cè)試,測(cè)試功能和測(cè)試結(jié)果如表6-2所示:表6-2數(shù)據(jù)獲取模塊測(cè)試情況表測(cè)試功能項(xiàng)測(cè)試過(guò)程預(yù)期結(jié)果測(cè)試結(jié)果評(píng)論數(shù)據(jù)的爬?、僭诰〇|平臺(tái)上找到商品ID號(hào);②在爬取界面輸入商品ID號(hào);③點(diǎn)擊篩選并進(jìn)行爬取。成功爬取到評(píng)論信息,并存儲(chǔ)到數(shù)據(jù)庫(kù)中,管理員可以通過(guò)后臺(tái)管理平臺(tái)看到。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。6.2.2數(shù)據(jù)預(yù)處理模塊這一模塊保證了后續(xù)實(shí)驗(yàn)的順利進(jìn)行。對(duì)數(shù)據(jù)預(yù)處理模塊進(jìn)行測(cè)試,測(cè)試結(jié)果如表6-3所示:表6-3數(shù)據(jù)預(yù)處理模塊測(cè)試情況表測(cè)試功能項(xiàng)測(cè)試過(guò)程預(yù)期結(jié)果測(cè)試結(jié)果文本去重①提取評(píng)論并計(jì)算評(píng)論數(shù)量;②去重并計(jì)算去重后的評(píng)論數(shù)量;③將前后兩次評(píng)論數(shù)量進(jìn)行比較。文本去重后的評(píng)論數(shù)量少。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。機(jī)械壓縮去詞①字符為1時(shí),分別測(cè)試重復(fù)2次、重復(fù)2次以上;②字符為2時(shí),分別測(cè)試重復(fù)2次、重復(fù)2次以上;③字符為3時(shí),測(cè)試重復(fù)2次;④字符為4時(shí),測(cè)試重復(fù)2次①字符為1和2時(shí),重復(fù)2次結(jié)果不變,重復(fù)2次以上去除重復(fù)字符。②字符為3和4時(shí),重復(fù)2次去除重復(fù)字符。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)短句刪除①統(tǒng)計(jì)評(píng)論數(shù)量;②刪除長(zhǎng)度小于5的評(píng)論;③再次統(tǒng)計(jì)評(píng)論數(shù)量并與之前進(jìn)行比較。短句刪除后的評(píng)論數(shù)量少。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)6.2.3情感分析模塊情感分析部分是該系統(tǒng)的核心部分,對(duì)情感分析模塊進(jìn)行測(cè)試,是依據(jù)已知代碼進(jìn)行測(cè)試的,測(cè)試結(jié)果如表6-4所示:表6-4情感分析模塊測(cè)試情況表測(cè)試功能項(xiàng)測(cè)試過(guò)程預(yù)期結(jié)果測(cè)試結(jié)果中文評(píng)論分詞分別用jieba的三種模式對(duì)“天安門(mén)前國(guó)旗升”進(jìn)行分詞:①精確模式;②全模式;③搜索引擎模式。①[‘天安門(mén)’,‘前’,‘國(guó)旗’,‘升’]②[‘天安’,‘天安門(mén)’,‘門(mén)前’,‘國(guó)旗’,‘升’]③[‘天安’,‘天安門(mén)’,‘前’,‘國(guó)旗’,‘升’]測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。去除停用詞①讀入哈工大停用詞表,去除表中詞匯;②比較去除前后評(píng)論長(zhǎng)度。去除停用詞后的評(píng)論長(zhǎng)度短。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)情感傾向分析①導(dǎo)入情感評(píng)價(jià)表;②對(duì)評(píng)論數(shù)據(jù)進(jìn)行打分;③查看結(jié)果。將評(píng)論數(shù)據(jù)分為積極和消極的兩類。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)主題提?、賹?dǎo)入評(píng)論數(shù)據(jù)文檔;②利用LDA主題模型進(jìn)行主題提取,測(cè)試提取三個(gè)主題,每個(gè)主題中包含10個(gè)特征詞。將文檔分為三類特征明顯的主題,且每個(gè)主題中含有10個(gè)特征詞。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)6.2.4界面展示模塊界面展示模塊分為普通用戶界面展示和管理員界面展示。對(duì)普通用戶功能進(jìn)行測(cè)試,測(cè)試結(jié)果如表6-5所示:表6-5普通用戶功能測(cè)試情況表測(cè)試功能項(xiàng)測(cè)試過(guò)程預(yù)期結(jié)果測(cè)試結(jié)果注冊(cè)用戶信息①輸入用戶名時(shí),分別嘗試郵箱類型數(shù)據(jù)和非郵箱類型數(shù)據(jù);②輸入密碼時(shí),分別嘗試字符串長(zhǎng)度大于8和字符串長(zhǎng)度小于8;③確認(rèn)密碼時(shí),分別嘗試與密碼一致和與密碼不一致;④輸入手機(jī)號(hào)碼時(shí),分別嘗試不為空和為空;⑤輸入姓名時(shí),分別嘗試不為空和為空;⑥輸入地址時(shí),分別嘗試不為空和為空。①數(shù)據(jù)類型為郵箱則注冊(cè)成功,否則不成功,需重新注冊(cè);②密碼長(zhǎng)度大于8則注冊(cè)成功,否則不成功,需重新注冊(cè);③確認(rèn)密碼一致則登陸成功,否則登陸失??;④其他注冊(cè)項(xiàng)不為空則注冊(cè)成功,否則注冊(cè)失敗。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。系統(tǒng)登錄①輸入用戶名時(shí),分別嘗試已注冊(cè)用戶名和未注冊(cè)用戶名;②輸入密碼時(shí),分別嘗試密碼正確及密碼錯(cuò)誤。①用戶名正確可登陸成功,否則返回賬號(hào)不存在;②密碼正確可登陸成功,否則返回密碼錯(cuò)誤。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。查看分析結(jié)果①用戶登錄系統(tǒng);②搜索商品ID號(hào),篩選評(píng)論數(shù)據(jù);③進(jìn)入全部商品界面,點(diǎn)擊想要查看的商品評(píng)論分析結(jié)果。用戶能夠根據(jù)商品ID號(hào)獲取到評(píng)論數(shù)據(jù),并查看到分析結(jié)果地可視化界面。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。對(duì)管理員功能進(jìn)行測(cè)試,測(cè)試結(jié)果如表6-6所示:表6-6管理員功能測(cè)試情況表測(cè)試功能項(xiàng)測(cè)試過(guò)程預(yù)期結(jié)果測(cè)試結(jié)果用戶信息管理①管理員登錄后臺(tái)管理平臺(tái);②點(diǎn)擊查看用戶信息管理界面;③修改用戶賬號(hào)、密碼、手機(jī)號(hào)碼、名字、地址等基本信息;④刪除用戶。修改用戶賬號(hào)、密碼、手機(jī)號(hào)碼、名字、地址等基本信息成功;可以單獨(dú)或批量地刪除用戶。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。商品信息管理①管理員登錄后臺(tái)管理平臺(tái);②點(diǎn)擊查看商品信息管理界面;③對(duì)整個(gè)商品進(jìn)行刪除??梢詥为?dú)或批量地刪除商品。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。評(píng)論信息管理①管理員登錄后臺(tái)管理平臺(tái);②點(diǎn)擊查看評(píng)論管理界面;③依據(jù)商品名稱對(duì)評(píng)論進(jìn)行篩選;④依據(jù)評(píng)分對(duì)評(píng)論進(jìn)行篩選;⑤對(duì)評(píng)論進(jìn)行刪除??梢圆榭此杏脩襞廊〉降脑u(píng)論數(shù)據(jù);依據(jù)商品名稱對(duì)評(píng)論進(jìn)行篩選成功;依據(jù)評(píng)分對(duì)評(píng)論篩選成功;可以單獨(dú)或批量地刪除評(píng)論數(shù)據(jù)。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。日志記錄管理①管理員登錄后臺(tái)管理平臺(tái);②點(diǎn)擊查看日志記錄;③選擇要?jiǎng)h除日志。可以完整地看到每一條操作記錄,可以對(duì)記錄進(jìn)行單獨(dú)或批量刪除。測(cè)試輸出結(jié)果符合預(yù)期結(jié)果,測(cè)試通過(guò)。6.3本章小結(jié)本章首先對(duì)系統(tǒng)測(cè)試進(jìn)行了規(guī)劃,對(duì)系統(tǒng)測(cè)試的測(cè)試環(huán)境、測(cè)試方法以及在測(cè)試過(guò)程中的注意事項(xiàng)進(jìn)行闡述。然后對(duì)各個(gè)模塊進(jìn)行了功能測(cè)試,主要利用了黑盒測(cè)試和白盒測(cè)試兩種方法,并對(duì)測(cè)試結(jié)果進(jìn)行了分析。總結(jié)與展望本文的提出建立在互聯(lián)網(wǎng)2.0時(shí)代,消費(fèi)模式的轉(zhuǎn)變給人們的生活帶來(lái)了巨大的便利。線上購(gòu)物的模式的蓬勃發(fā)展同時(shí)也反饋到作為前端的電商平臺(tái)與作為后端的商品廠家,為各方帶來(lái)龐大的商業(yè)機(jī)遇,但也為各大平臺(tái)與生產(chǎn)廠家?guī)?lái)了更大的挑戰(zhàn)。以電子商務(wù)平臺(tái)為例,消費(fèi)者可以通過(guò)評(píng)論、打分等功能及時(shí)地向商家反饋產(chǎn)品優(yōu)劣、使用感受等情況,而商家則通
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026山東聊城市陽(yáng)谷縣征兵筆試備考試題及答案解析
- 2026四川現(xiàn)代種業(yè)集團(tuán)第一批社會(huì)化招聘5人筆試模擬試題及答案解析
- 2026湖北武漢市公立初級(jí)中學(xué)招聘2人筆試模擬試題及答案解析
- 2026浙江省財(cái)務(wù)開(kāi)發(fā)有限責(zé)任公司招聘考試參考題庫(kù)及答案解析
- 2026江西省歐潭人力資源集團(tuán)有限公司招聘見(jiàn)習(xí)生3人考試備考試題及答案解析
- 2026年社區(qū)助老員服務(wù)禮儀規(guī)范
- 2026年建筑市場(chǎng)結(jié)構(gòu)變化的政策影響分析
- 2026年流體動(dòng)力學(xué)與熱學(xué)的關(guān)系
- 2026浙江嘉興市經(jīng)英人才發(fā)展服務(wù)有限公司城南分公司招錄法律專業(yè)人才及法律輔助人員遞補(bǔ)(第2號(hào))筆試模擬試題及答案解析
- 2026年創(chuàng)新技術(shù)在工程地質(zhì)勘察中的應(yīng)用
- 【SA8000標(biāo)準(zhǔn)(社會(huì)責(zé)任標(biāo)準(zhǔn))對(duì)我國(guó)勞動(dòng)密集型產(chǎn)業(yè)的影響及應(yīng)對(duì)措施研究12000字(論文)】
- 醫(yī)療行業(yè)知識(shí)產(chǎn)權(quán)教育的必要性
- 2024-2025學(xué)年滬教版(五四學(xué)制)(2024)初中英語(yǔ)六年級(jí)下冊(cè)(全冊(cè))知識(shí)點(diǎn)歸納
- 五年級(jí)數(shù)學(xué)下冊(cè)寒假作業(yè)每日一練
- 傳染病院感防控課件
- 寒假生活有計(jì)劃主題班會(huì)
- 羅馬機(jī)場(chǎng)地圖
- 實(shí)習(xí)生醫(yī)德醫(yī)風(fēng)培訓(xùn)
- 橫穿公路管道施工方案
- 快樂(lè)讀書(shū)吧:非洲民間故事(專項(xiàng)訓(xùn)練)-2023-2024學(xué)年五年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)
- GB/T 19609-2024卷煙用常規(guī)分析用吸煙機(jī)測(cè)定總粒相物和焦油
評(píng)論
0/150
提交評(píng)論