【基于Python商品評論建模與自動預(yù)測系統(tǒng)設(shè)計與實現(xiàn)(論文)14000字】_第1頁
【基于Python商品評論建模與自動預(yù)測系統(tǒng)設(shè)計與實現(xiàn)(論文)14000字】_第2頁
【基于Python商品評論建模與自動預(yù)測系統(tǒng)設(shè)計與實現(xiàn)(論文)14000字】_第3頁
【基于Python商品評論建模與自動預(yù)測系統(tǒng)設(shè)計與實現(xiàn)(論文)14000字】_第4頁
【基于Python商品評論建模與自動預(yù)測系統(tǒng)設(shè)計與實現(xiàn)(論文)14000字】_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第頁4系統(tǒng)設(shè)計4.1設(shè)計目標及原則系統(tǒng)的架構(gòu)設(shè)計,要能夠反映出用戶與整個系統(tǒng)模塊的接口之間存在有效互動,而且應(yīng)該是非常清楚的,從而才能夠保障在后期系統(tǒng)真正實現(xiàn)的時候數(shù)據(jù)的擴展性和安全性,只有設(shè)計出的系統(tǒng)實現(xiàn)這個目標才能有一個更好的擴展空間量,以適應(yīng)系統(tǒng)未來的發(fā)展。整個系統(tǒng)的設(shè)計中,系統(tǒng)必須滿足以下要求:(1)數(shù)據(jù)安全性數(shù)據(jù)的安全性主要建立在保密性,完整性和可用性這三個安全原則基礎(chǔ)之上。存儲有關(guān)隱私權(quán)的系統(tǒng)數(shù)據(jù),為了更好地保障系統(tǒng)數(shù)據(jù)的安全性,在設(shè)計系統(tǒng)的時候必須要采取有效的安全措施,以避免出現(xiàn)潛在的安全問題。(2)易用性易用性指的是產(chǎn)品對于用戶來說意味著易于學(xué)習(xí)和使用,減輕記憶負擔,使用的滿意程度等。在用戶權(quán)限范圍內(nèi),可在一個統(tǒng)一風格的界面內(nèi)即可完成相關(guān)的所有業(yè)務(wù)流程操作或者獲取所有相關(guān)信息,大大提高操作員的工作效率和易用性,靈活應(yīng)用本系統(tǒng)。(3)柔軟性適應(yīng)性利用軟件的柔性可以適合和滿足用戶對軟件的新的要求,是軟件應(yīng)對外部變化的一種方式。由于這個系統(tǒng)涉及到范圍廣泛的業(yè)務(wù),設(shè)計出的系統(tǒng)必須能夠處理接受變化的能力。(4)擴展性簡單地說,可擴展性就是關(guān)于如何處理更大規(guī)模的業(yè)務(wù),包括“垂直擴展”和“橫向擴展”,選擇合適的可擴展方法取決于你想要的規(guī)模和預(yù)算。隨著商品評論情感分析管理需求的不斷變化,系統(tǒng)必然涉及到業(yè)務(wù)更新及擴展,這就要求在設(shè)計之初就應(yīng)該考慮良好的可擴展性方案。4.2整體框架系統(tǒng)整體框架結(jié)構(gòu)如下圖4.1所示。圖4.1系統(tǒng)整體框架結(jié)構(gòu)系統(tǒng)包括數(shù)據(jù)獲取、數(shù)據(jù)處理、情感分析三大功能模塊。4.3系統(tǒng)流程設(shè)計商品評論建模與自動預(yù)測系統(tǒng),在初期進行系統(tǒng)開發(fā)時,首先進行了需求分析,接下來進而對系統(tǒng)進行總體的設(shè)計規(guī)劃,設(shè)計系統(tǒng)功能模塊,數(shù)據(jù)庫的選擇等,本系統(tǒng)的開發(fā)流程如圖4.2所示圖4.2系統(tǒng)開發(fā)流程圖

5系統(tǒng)實現(xiàn)5.1數(shù)據(jù)預(yù)處理通過收集的數(shù)據(jù)集里面有很多的重復(fù)以及無效的數(shù)據(jù),要對其進行文本清洗、去停用詞等操作。首先進行文本清洗清洗后的評論(new_comment)新的評論去除停用詞停用詞5.2文本處理流程文本處理是分類器構(gòu)建的一個重要過程,一般指將自然語言文本處理成可計算的形式。對于中文文本,包括中文分詞、特征選擇、特征權(quán)值計算和文本向量表示。添文本處理流程如圖5.2所示。圖5.2文本處理流程圖文本預(yù)處理過程需先進行中文分詞處理,因為使用特征選擇方法選擇多少特征時分類最優(yōu)的問題,所以一般先計算特征權(quán)值,用文本向量表示,再在輸入分類器之前進行特征選擇,之后就可以輸入分類器訓(xùn)練或測試。而對于采用情感詞典作為特征選擇,中文分詞處理和特征選擇是可以同時完成的,不存在選擇多少維度的問題,然后計算特征權(quán)值,用文本向量表示,就可以輸入分類訓(xùn)練和測試。這樣的處理不但節(jié)省特征選擇的計算量,還可以節(jié)省特征權(quán)值計算的工作量。5.3情感分類流程在利用樸素貝葉斯分類器進行文本分類時,先驗概率和后驗概率可以從訓(xùn)練語料中通過計算進行估計,也稱這個過程為學(xué)習(xí)。通過訓(xùn)練可以得到一個包含類別先驗概率和特征詞后驗概率的模型,本文稱其為概率模型?;诟怕誓P?,就可以對測試語料進行分類。分類流程如圖5.3所示。圖5.3情感分類流程圖讀取并解析文本數(shù)據(jù)加載數(shù)據(jù)集,all_text:詞;all_class:類別劃分訓(xùn)練集和測試集train_texts=all_text[:-1000]train_labels=all_class[:-1000]test_texts=all_text[-1000:]test_labels=all_class[-1000:]print('訓(xùn)練集樣本數(shù):{},測試集樣本數(shù):{}'.format(len(train_texts),len(test_texts)))運行程序如圖2.創(chuàng)建單詞集合,調(diào)用方法,去除重復(fù)詞self.myVocabList=self.createVocabList(train_texts)print('獲取的詞匯個數(shù):',len(self.myVocabList))3.計算單詞是否出現(xiàn)并創(chuàng)建數(shù)據(jù)矩陣trainMat=[]print('計算單詞是否出現(xiàn)并創(chuàng)建數(shù)據(jù)矩陣...')forpostinDocintqdm(train_texts):#返回m*len(self.myVocabList)的矩陣,記錄的都是0,1信息trainMat.append(self.setOfWords2Vec(self.myVocabList,postinDoc))4.訓(xùn)練數(shù)據(jù)print('訓(xùn)練樸素貝葉斯模型')self.p0V,self.p1V,self.pAb=self.trainNB0(array(trainMat),array(train_labels))print('計算詞匯的特征權(quán)重')word_prob_dict={}forword,p0V,p1Vinzip(self.myVocabList,self.p0V,self.p1V):word_prob_dict[word]=(p0V+p1V)/2print('詞匯的情緒特征權(quán)重為:')word_prob_dict=sorted(word_prob_dict.items(),key=lambdad:d[1],reverse=True)print(word_prob_dict)print('去除特征權(quán)重較低的詞匯')self.myVocabList=[w[0]forwinword_prob_dict[:-1100]]print('剩下的有效詞匯個數(shù):',len(self.myVocabList))print('重新訓(xùn)練貝葉斯模型')print('重新計算:計算單詞是否出現(xiàn)并創(chuàng)建數(shù)據(jù)矩陣...')trainMat=[]forpostinDocintqdm(all_text):#返回m*len(self.myVocabList)的矩陣,記錄的都是0,1信息trainMat.append(self.setOfWords2Vec(self.myVocabList,postinDoc))print('重新訓(xùn)練:樸素貝葉斯模型')self.p0V,self.p1V,self.pAb=self.trainNB0(array(trainMat),array(all_class))5.測試數(shù)據(jù)print('加載測試集測試貝葉斯模型')correct_info={'負面評論':0,'正面評論':0}predicts=[]print('錯誤樣例分析')fortext,labelinzip(test_texts,test_labels):predict_label=self.predict(text)predicts.append(int(predict_label=='負面評論'))if(label==1)and(predict_label=='負面評論'):#實際為負面評論言論correct_info['負面評論']+=1elif(label==0)and(predict_label=='正面評論'):#實際為正面評論言論correct_info['正面評論']+=1else:#錯誤樣例在運行結(jié)果框內(nèi)分析錯誤樣例,表示出每條評論的實際標簽和預(yù)測標簽,統(tǒng)計出正面評論和負面評論的條數(shù)和各自的準群率,并計算出總的預(yù)測準確率和召回率。最后在此基礎(chǔ)上加入一基于關(guān)鍵詞的廣告預(yù)測過濾,如關(guān)鍵詞'qq','vx','扣扣','微信','weixin','私信','請私戳',’*’,’電話’,’聯(lián)系’,’+’,進一步對廣告評論進行識別。forregin[]:ifregincomment:returnTruereturnFalsedefpredict(self,comment):"""使用算法:#將乘法轉(zhuǎn)換為加法乘法:P(C|F1F2...Fn)=P(F1F2...Fn|C)P(C)/P(F1F2...Fn)加法:P(F1|C)*P(F2|C)P(Fn|C)P(C)->log(P(F1|C))+log(P(F2|C))++log(P(Fn|C))+log(P(C)):paramvec2Classify:待測數(shù)據(jù)[0,1,1,1,1...],即要分類的向量:paramp0Vec:類別0,即正面評論文檔的[log(P(F1|C0)),log(P(F2|C0)),log(P(F3|C0)),log(P(F4|C0)),log(P(F5|C0))]列表:paramp1Vec:類別1,即負面評論文檔的[log(P(F1|C1)),log(P(F2|C1)),log(P(F3|C1)),log(P(F4|C1)),log(P(F5|C1))]列表:parampClass1:類別1,負面評論文件的出現(xiàn)概率:return:類別1or0"""reg_type=self.reg_predict(''.join(comment).lower())ifreg_type:return'負面評論'計算公式log(P(F1|C))+log(P(F2|C))++log(P(Fn|C))+log(P(C))。大家可能會發(fā)現(xiàn),上面的計算公式,沒有除以貝葉斯準則的公式的分母,也就是P(w)(P(w)指的是此文檔在所有的文檔中出現(xiàn)的概率)就進行概率大小的比較了,因為P(w)針對的是包含負面評論和正面評論的全部文檔,所以P(w)是相同的。使用NumPy數(shù)組來計算兩個向量相乘的結(jié)果,這里的相乘是指對應(yīng)元素相乘,即先將兩個向量中的第一個元素相乘,然后將第2個元素相乘,以此類推。我的理解是:這里的vec2Classify*p1Vec的意思就是將每個詞與其對應(yīng)的概率相關(guān)聯(lián)起來comment=array(self.setOfWords2Vec(self.myVocabList,comment))p1=sum(comment*self.p1V)+log(self.pAb)#P(w|c1)*P(c1),即貝葉斯準則的分子p0=sum(comment*self.p0V)+log(1.0-self.pAb)#P(w|c0)*P(c0),即貝葉斯準則的分子·5.4實現(xiàn)界面用戶輸入評論,系統(tǒng)會自動預(yù)測出情感。如圖5.3所示。圖5.3系統(tǒng)實現(xiàn)界面引入寫好的方法fromtkinterimport*importjiebafrombayesimportNativeBayesNB=NativeBayes()利用tkinter模塊,Tkinter.TK()畫出可視化窗口。設(shè)置“開始分析”按鈕點擊后執(zhí)行的方法,未輸入評論時的提醒。設(shè)置“退出”按鈕點擊后的關(guān)閉提示副窗口,確認退出的按鈕。給按鈕設(shè)置合適的大小,字體和坐標位置。完成按鈕設(shè)置后,設(shè)置輸入框和結(jié)果框的位置和大小。6軟件測試與分析在整個系統(tǒng)開發(fā)的流程中,最后的一個步驟就是測試系統(tǒng)。系統(tǒng)測試是整個系統(tǒng)流程中不可或缺的環(huán)節(jié),系統(tǒng)測試結(jié)果的好壞關(guān)系到產(chǎn)品是否能夠投入使用。用戶對于軟件的質(zhì)量、性能和可靠性等需求都要通過最后的系統(tǒng)測試來實現(xiàn)。整個系統(tǒng)測試的過程必須遵循嚴謹、完善、規(guī)范等原則,經(jīng)過這樣嚴謹?shù)臏y試得出的產(chǎn)品才能夠提高系統(tǒng)的質(zhì)量、可信度、可靠性,從根本上而降低系統(tǒng)的故障率,從而降低用戶使用這一系統(tǒng)的風險系數(shù)。通常一個完整的系統(tǒng)測試包括:功能測試,性能測試,安裝測試,安全測試,易用性測試,可用性測試,性能測試、配置測試,兼容性測試等方面。6.1測試環(huán)境與測試條件處理器:Inter(R)Core(TM)i7-7700HQ內(nèi)存:16GB硬盤:237G操作系統(tǒng):Win10數(shù)據(jù)庫:MySQL6.2功能測試這里選用的功能測試主要包括五項內(nèi)容:適用性測試、準確性測試、可操作性測試、依從性測試、安全性測試。本網(wǎng)站功能測試如表5-1所示:表5-1網(wǎng)站功能測試6.3性能測試性能測試主要是使用自動化的測試工具,通過模擬系統(tǒng)運行環(huán)境,模擬多種正常、峰值以及異常負載條件,測試各項性能指標,從而檢驗這個系統(tǒng)性能是否能夠符合客戶的需求。性能測試的主要的技術(shù)指標包括:服務(wù)器資源使用情況,資源利用率是否合理,系統(tǒng)響應(yīng)時間,系統(tǒng)的運行速度、系統(tǒng)是否能夠?qū)崿F(xiàn)擴展,以及支持并發(fā)節(jié)點數(shù)等。因為不存在服務(wù)器,在這里我們只討論系統(tǒng)運行速度和系統(tǒng)響應(yīng)時間。1)系統(tǒng)運行速度:將此系統(tǒng)在MacBook和神舟等電腦上運行,沒有發(fā)現(xiàn)明顯的停頓、遲滯和卡頓現(xiàn)象。2)系統(tǒng)響應(yīng)時間:系統(tǒng)響應(yīng)時間主要又可以分為三個方面(1)系統(tǒng)最小響應(yīng)時間;(2)第二、系統(tǒng)平均響應(yīng)時間;(3)系統(tǒng)最大響應(yīng)時間這三個參數(shù)。經(jīng)過測試,在正常情況下,局域網(wǎng)內(nèi)響應(yīng)時間的三個數(shù)值分別為:2/3/5s,速度較快,符合預(yù)期。6.4系統(tǒng)運行情況通過對系統(tǒng)全方面的測試,所有測試條目都已經(jīng)通過,實現(xiàn)了基本要求,系統(tǒng)可以正常運行。6.5系統(tǒng)評價系統(tǒng)評價是指對于夜歌新開發(fā)的或者改建的系統(tǒng),系統(tǒng)在正式運行了一段時間之后,根據(jù)系統(tǒng)最開始預(yù)定的系統(tǒng)目標,用系統(tǒng)分析的方法,對它在功能上、技術(shù)上和經(jīng)濟上,社會上和生態(tài)上等方面所進行的審核評價和選擇。針對本系統(tǒng)的評價如下:(1)系統(tǒng)功能評價根據(jù)在開發(fā)之前本系統(tǒng)所預(yù)設(shè)的目標,在完成本系統(tǒng)后經(jīng)過運行和測試,經(jīng)測定,本系統(tǒng)達到了設(shè)定的預(yù)期開發(fā)目標,在實際使用過程中,功能能夠滿足使用者的需求。(2)系統(tǒng)技術(shù)評價本系統(tǒng)設(shè)計方案和流程合理,在使用過程中功能也達到了預(yù)先設(shè)定的目標,并且系統(tǒng)能夠穩(wěn)定可靠的運行,具有實用性,有著較高的查詢效率。(3)系統(tǒng)經(jīng)濟評價在規(guī)定時間內(nèi),此系統(tǒng)能夠完成起初系統(tǒng)分析時所設(shè)立的系統(tǒng)開發(fā)目標,完成了預(yù)期的設(shè)計要求,投入使用后能夠幫助用戶快速的分析商品評論,提高了鑒別的效率。結(jié)論本系統(tǒng)通過對Python、情感分析等技術(shù)的簡介,從硬件和軟件兩反面說明了情感分析系統(tǒng)的可行性,本文結(jié)論及研究成果如下:實現(xiàn)了基于Python的商品評論建模與自動預(yù)測系統(tǒng),通過本次系統(tǒng)的研究與實現(xiàn),我感觸到學(xué)習(xí)一門新技術(shù),最重要的是實踐,只有多動手才能盡快掌握它,一個系統(tǒng)的開發(fā),經(jīng)驗是最重要的,經(jīng)驗不足,就難免會有許多考慮不周之處。由于先前對于Python的軟件使用并不是很頻繁,因此剛開始開發(fā)系統(tǒng)時就遇到了很多困難,例如一開始的頁面顯示不規(guī)范,不知道如何創(chuàng)建一個可視化窗口,不過通過CSDN和網(wǎng)上尋找有關(guān)資料,以及同學(xué)的幫助下,一邊做一邊學(xué)習(xí),最后都得到了不錯的解決。在此過程中,我不僅接觸到了自己以前不太擅長的編程軟件,同時克服了對于這個軟件的陌生,也提高了自己發(fā)現(xiàn)問題,解決問題的能力。在信息提取方面,我學(xué)會了如何從大量復(fù)雜的信息中篩選出自己所需要的信息。我也更加深刻的體會到了,雖然書本上的計算機理論知識是必要的,但實際的上手操作實際上更為重要,不僅要精通書本上的知識,更要做到學(xué)懂會用,學(xué)以致用,通過不斷的實際練習(xí)來熟悉編程,磨煉自己的專業(yè)技能。雖然書本上的知識是一樣的,但經(jīng)過實際的操作,每個人都會因為思路的不同而形成不同的編程思想,從而養(yǎng)成不同的編程習(xí)慣,這就說明我們一定要通過親身的實踐操作,才能靠自己找到適合自己編程思路和習(xí)慣的解決問題的方案。在這一次的畢業(yè)設(shè)計中,我提高了自己,也在開發(fā)的過程中得到了寶貴的經(jīng)驗,我相信對我以后的工作和發(fā)展都會起到很大的作用。通過這次系統(tǒng)的開發(fā),我參考了很多相關(guān)系統(tǒng)的例子,取長補短,吸取了其他系統(tǒng)的長處,逐步對該系統(tǒng)進行了完善,但是該系統(tǒng)還是有很多的不足之處,有待以后進一步學(xué)習(xí)。參考文獻[1]李愛國.python開發(fā)案例[M].北京:電子工業(yè)出版社,2019.[2]張國印,沈潔著.python應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2017:329.[3]劉國柱,杜軍威,QST青軟實訓(xùn).python程序設(shè)計與開發(fā)[M].北京:清華大學(xué)出版社,2017.[4]李麗.我國電商評論情感分析信息化探討[J].計算機軟件世界,2017(12)12-13.[5]張戈.基于用戶體驗的購物評價分析系統(tǒng)設(shè)計探討[J].信息化建設(shè),2017,(06):388.[6]陳文,圖書推薦系統(tǒng)的設(shè)計與實現(xiàn)[D],廣州:暨南大學(xué),2018[7]張躍騫.情感分析算法探討與應(yīng)用[J].中國教育網(wǎng)絡(luò),2016,Z1:44-46.[8

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論