基于樸素貝葉斯算法的單詞難度劃分與預(yù)測(cè)模型_第1頁(yè)
基于樸素貝葉斯算法的單詞難度劃分與預(yù)測(cè)模型_第2頁(yè)
基于樸素貝葉斯算法的單詞難度劃分與預(yù)測(cè)模型_第3頁(yè)
基于樸素貝葉斯算法的單詞難度劃分與預(yù)測(cè)模型_第4頁(yè)
基于樸素貝葉斯算法的單詞難度劃分與預(yù)測(cè)模型_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

緒論1.1本課題開(kāi)發(fā)背景及意義隨著信息時(shí)代的來(lái)臨與快速發(fā)展,移動(dòng)設(shè)備、電子郵件、網(wǎng)絡(luò)論壇、公司數(shù)據(jù)庫(kù)分布著大量的文本信息,其中不乏很多英文文本信息。我們正處于海量的英文文本數(shù)據(jù)中。與此同時(shí),文本的信息量也已指數(shù)函數(shù)的形式增長(zhǎng)著。如何快速,精準(zhǔn)的進(jìn)行文本分類(lèi)是現(xiàn)今的一大重要課題。本文根據(jù)該課題的研究,專(zhuān)注于英語(yǔ)單詞難度分類(lèi)研究方向,為我們學(xué)習(xí)英文時(shí)提供便捷。在20世紀(jì)90年代后。伴隨著因特網(wǎng)的高速發(fā)展,機(jī)器學(xué)習(xí)、人工智能、統(tǒng)計(jì)理論等技術(shù)的不斷更新,基于傳統(tǒng)知識(shí)工程的文本分類(lèi)方法已經(jīng)逐漸的退出歷史。文本分類(lèi)技術(shù)進(jìn)入了全新的自動(dòng)化分類(lèi)時(shí)代。由于利用機(jī)器學(xué)習(xí)進(jìn)行文本分類(lèi)的效率要明顯高于分類(lèi)專(zhuān)家。因此這種方法在文本分類(lèi)領(lǐng)域得到了廣泛應(yīng)用,例如貝葉斯網(wǎng)絡(luò)、支持向量機(jī)、決策樹(shù)、神經(jīng)網(wǎng)絡(luò)等。文本分類(lèi)是一個(gè)將文本劃分至預(yù)定義類(lèi)別,基于其內(nèi)容特性進(jìn)行標(biāo)識(shí)與歸類(lèi)的過(guò)程。常用的文本分類(lèi)算法有邏輯回歸、前饋神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯、支持向量機(jī)、K近鄰、決策樹(shù)、多層感知器、隨機(jī)森林、AdaBoost、LSTM等,樸素貝葉斯網(wǎng)絡(luò)相對(duì)于這些算法有著自己獨(dú)特的優(yōu)點(diǎn)。第一,模型結(jié)構(gòu)簡(jiǎn)潔,易于實(shí)現(xiàn),計(jì)算效率高,尤其適用于大規(guī)模數(shù)據(jù)集。第二,能有效處理含有缺失特征值的數(shù)據(jù),不影響分類(lèi)。第三,輸出的概率解釋清晰,利于理解分類(lèi)依據(jù)。第四,在高維文本特征空間中仍能保持較好性能,適合文本分類(lèi)中的詞項(xiàng)表示。第五,適用于增量式訓(xùn)練,能方便地更新模型以適應(yīng)新數(shù)據(jù)。這些優(yōu)點(diǎn)使得樸素貝葉斯在資源有限、實(shí)時(shí)性要求較高或需要快速迭代模型的情況下成為一種實(shí)用且高效的文本分類(lèi)選擇。本文擬以“基于樸素貝葉斯算法的單詞難度劃分與預(yù)測(cè)模型”為題,旨在探究利用機(jī)器學(xué)習(xí)技術(shù)中的樸素貝葉斯算法和Lasso回歸模型進(jìn)行文本分類(lèi)。對(duì)單詞的難度進(jìn)行劃分,并構(gòu)建相應(yīng)的預(yù)測(cè)模型。這一研究旨在解決語(yǔ)言學(xué)習(xí)中常見(jiàn)的問(wèn)題,即如何將英語(yǔ)單詞難度進(jìn)行定量計(jì)算。具體而言,本研究的目的包括:評(píng)估單詞難度:基于Lasso回歸模型和樸素貝葉斯算法,通過(guò)對(duì)單詞的語(yǔ)言特征進(jìn)行分析和建模,實(shí)現(xiàn)對(duì)單詞難度的客觀(guān)評(píng)估,從而幫助教師更好地選擇教材和制定教學(xué)計(jì)劃,也可以幫助學(xué)生更好的制定單詞學(xué)習(xí)和背誦計(jì)劃。構(gòu)建預(yù)測(cè)模型:建立單詞難度預(yù)測(cè)模型,能夠根據(jù)先前設(shè)定的單詞的3個(gè)屬性來(lái)預(yù)測(cè)單詞的難度屬于簡(jiǎn)答單詞,還是中等單詞,困難單詞。1.2國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)自50年代末起,文本分類(lèi)研究逐漸興起,從初期的專(zhuān)業(yè)人員依靠規(guī)則手動(dòng)分類(lèi),轉(zhuǎn)變?yōu)樽詣?dòng)化方法。H.P.Luhn[1]在1958年首次利用詞頻統(tǒng)計(jì)提取候選句進(jìn)行文本分類(lèi),顯著提升了效率。Maron(1961)開(kāi)創(chuàng)性地將貝葉斯公式引入該領(lǐng)域,提出“貝葉斯假設(shè)”,簡(jiǎn)化后驗(yàn)概率計(jì)算。70年代初,Salton等人提出向量空間模型(VSM[2]),為文本特性提供統(tǒng)計(jì)學(xué)描述。60至80年代,知識(shí)工程主導(dǎo)自動(dòng)文本分類(lèi),但效率低、一致性難保。期間,路透社的CONSTRUE系統(tǒng)展現(xiàn)出良好性能。進(jìn)入90年代,研究轉(zhuǎn)向機(jī)器學(xué)習(xí),如最小二乘回歸、最近鄰[3]、貝葉斯[4]、決策樹(shù)[5]、神經(jīng)網(wǎng)絡(luò)[6]、支持向量機(jī)等,尤其是支持向量機(jī)和集成學(xué)習(xí)在文本分類(lèi)上表現(xiàn)出色。國(guó)外對(duì)英文文本分類(lèi)的研究深入且成熟,涵蓋特征選擇、算法、語(yǔ)料庫(kù)及評(píng)價(jià)方法。相比之下,我國(guó)中文文本分類(lèi)起步較晚。80年代初,侯漢清首提自動(dòng)中文文本分類(lèi)設(shè)想,隨后涌現(xiàn)出眾多優(yōu)秀算法,如吳軍的漢語(yǔ)語(yǔ)料自動(dòng)分類(lèi)系統(tǒng)、張玥杰和姚天順的新聞?wù)Z料自動(dòng)分類(lèi)模型。隨著中文分詞技術(shù)成熟,如中科院計(jì)算所的智多星分類(lèi)器、上海交大的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法等,中文文本分類(lèi)已達(dá)到成熟應(yīng)用階段。綜上,鑒于樸素貝葉斯算法的簡(jiǎn)單高效特性及其在文本分類(lèi)領(lǐng)域的廣泛應(yīng)用,本文選擇基于此算法進(jìn)行研究。相較于依賴(lài)語(yǔ)言學(xué)特征的傳統(tǒng)方法,樸素貝葉斯能更客觀(guān)地劃分單詞,構(gòu)建精確預(yù)測(cè)模型,符合研究目的。1.3課題研究?jī)?nèi)容單詞難度評(píng)估模型構(gòu)建:本研究將基于樸素貝葉斯算法和Lasso回歸模型,通過(guò)對(duì)單詞的語(yǔ)言特征進(jìn)行深入分析和建模,構(gòu)建單詞難度評(píng)估模型。這一模型將綜合考慮單詞的字母復(fù)雜度、語(yǔ)法結(jié)構(gòu)、字母評(píng)率等因素,從而將單詞難度分為簡(jiǎn)單、中等和困難等級(jí)。算法敏感性分析:在這里本文著重對(duì)Lasso回歸模型進(jìn)行敏感性分析,來(lái)測(cè)試算法模型的穩(wěn)健性2相關(guān)技術(shù)簡(jiǎn)介2.1開(kāi)發(fā)工具2.1.1PyCharmPyCharm是一款專(zhuān)業(yè)的集成開(kāi)發(fā)環(huán)境(IDE),由JetBrains開(kāi)發(fā),特別針對(duì)Python開(kāi)發(fā)者的需求設(shè)計(jì)。在使用PyCharm構(gòu)建樸素貝葉斯算法對(duì)英文文本進(jìn)行數(shù)據(jù)預(yù)處理時(shí),它能提供諸多優(yōu)勢(shì):1.調(diào)試與測(cè)試:圖形化調(diào)試器:PyCharm提供全面的調(diào)試支持,包括設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量值、步進(jìn)到函數(shù)內(nèi)部等。這使得在預(yù)處理代碼中定位問(wèn)題、理解中間結(jié)果和調(diào)試分類(lèi)器行為變得直觀(guān)且高效。2.特定于數(shù)據(jù)科學(xué)的功能:交互式編程:通過(guò)內(nèi)置的JupyterNotebook或IPythonConsole,可以直接在PyCharm中進(jìn)行交互式數(shù)據(jù)分析和實(shí)驗(yàn),這對(duì)于快速驗(yàn)證數(shù)據(jù)預(yù)處理步驟和樸素貝葉斯模型效果非常有用。3.集成第三方庫(kù):直接安裝與管理依賴(lài):PyCharm內(nèi)置了對(duì)`pip`的支持,可以直接在IDE中搜索、安裝、升級(jí)或卸載所需庫(kù),如`nltk`、`spaCy`、`sklearn`等,簡(jiǎn)化環(huán)境配置過(guò)程。綜上所述,使用PyCharm構(gòu)建樸素貝葉斯算法進(jìn)行數(shù)據(jù)預(yù)處理的好處包括但不限于便捷的調(diào)試與測(cè)試工具、專(zhuān)門(mén)針對(duì)數(shù)據(jù)科學(xué)工作的特性支持以及無(wú)縫集成第三方庫(kù)。這些特性能顯著提升開(kāi)發(fā)效率,使你專(zhuān)注于算法實(shí)現(xiàn)和數(shù)據(jù)分析本身,而不是花費(fèi)大量時(shí)間在環(huán)境配置和基礎(chǔ)工具鏈的維護(hù)上。2.2文本分類(lèi)定義文本分類(lèi)是利用機(jī)器學(xué)習(xí)、知識(shí)工程或其他方法構(gòu)建一個(gè)分類(lèi)模型,然后利用這個(gè)模型將未知類(lèi)型的文本分成一個(gè)或者多個(gè)預(yù)定的類(lèi)別[7]的分類(lèi)方法,主要包括分類(lèi)器的構(gòu)建與訓(xùn)練以及對(duì)測(cè)試文本進(jìn)行分類(lèi)兩個(gè)過(guò)程。其過(guò)程如圖1所示:圖1文本自動(dòng)分類(lèi)模型預(yù)處理:語(yǔ)料的格式化處理,其中包括分詞、停用詞去除等,經(jīng)過(guò)統(tǒng)一格式化之后的文本為后續(xù)的文本處理提供了便利;索引:分治的思想,以塊建立文本索引,提升處理效率;統(tǒng)計(jì):通過(guò)統(tǒng)計(jì),計(jì)算出詞頻,并且進(jìn)一步計(jì)算出各單詞或概念與分類(lèi)的相關(guān)概率;特征抽取:對(duì)文本進(jìn)行分析并且抽取有用的特征;特征選擇:選擇合理的、易于區(qū)分的特征;分類(lèi)器:分類(lèi)器的訓(xùn)練;評(píng)價(jià):對(duì)分類(lèi)結(jié)果進(jìn)行分析。2.3常見(jiàn)的文檔分類(lèi)方式2.3.1樸素貝葉斯算法基本概念與理論樸素貝葉斯分類(lèi)器是一種基于概率統(tǒng)計(jì)的分類(lèi)方法,其核心思想是利用貝葉斯定理結(jié)合特征的獨(dú)立性假設(shè)來(lái)進(jìn)行分類(lèi)決策。在文本分類(lèi)中,文檔被視為由一系列詞匯構(gòu)成的向量,每個(gè)詞匯對(duì)應(yīng)一個(gè)特征。樸素貝葉斯方法假定文檔中各特征(詞匯)之間相互獨(dú)立,這一簡(jiǎn)化假設(shè)被稱(chēng)為“樸素”(naive),雖然在實(shí)際情況中詞匯之間可能存在依賴(lài),但該假設(shè)在實(shí)踐中往往表現(xiàn)出良好的分類(lèi)效果。公式與算法流程樸素貝葉斯分類(lèi)的核心公式是貝葉斯定理,它表達(dá)了一個(gè)條件概率的逆向計(jì)算:其中:表示第k個(gè)類(lèi)別;

表示待分類(lèi)的文檔,即特征向量;是給定文檔D條件下屬于類(lèi)別的后驗(yàn)概率,這是本文欲求的目標(biāo);是類(lèi)別條件概率,即給定類(lèi)別時(shí)出現(xiàn)文檔D的概率;是先驗(yàn)概率,即類(lèi)別的先驗(yàn)發(fā)生概率;

是文檔D的邊緣概率,通常在分類(lèi)過(guò)程中作為規(guī)范化因子,不影響類(lèi)別選擇。樸素貝葉斯分類(lèi)器通常采用拉普拉斯平滑(或加一平滑)來(lái)處理未見(jiàn)過(guò)的詞匯,并計(jì)算各個(gè)特征的條件概率。分類(lèi)時(shí),對(duì)所有類(lèi)別計(jì)算上述后驗(yàn)概率,選擇后驗(yàn)概率最大的類(lèi)別作為文檔的預(yù)測(cè)類(lèi)別。優(yōu)點(diǎn)易于理解和實(shí)現(xiàn):算法邏輯簡(jiǎn)潔,所需計(jì)算量較小,適合大規(guī)模文本分類(lèi)任務(wù)。高效:由于假設(shè)特征獨(dú)立,訓(xùn)練和預(yù)測(cè)階段的計(jì)算復(fù)雜度較低,尤其適用于高維度特征空間。對(duì)缺失數(shù)據(jù)不敏感:可以直接忽略未知詞匯,不會(huì)導(dǎo)致計(jì)算失效。無(wú)需大量調(diào)整參數(shù):樸素貝葉斯模型相對(duì)穩(wěn)定,對(duì)超參數(shù)依賴(lài)較少。2.3.2支持向量機(jī)(SVM)算法基本概念與理論支持向量機(jī)是一種監(jiān)督學(xué)習(xí)模型,特別適用于二分類(lèi)和多分類(lèi)問(wèn)題。在文本分類(lèi)中,SVM通過(guò)構(gòu)建最大間隔超平面來(lái)分離不同類(lèi)別的文本。對(duì)于非線(xiàn)性可分的數(shù)據(jù),SVM引入核函數(shù)進(jìn)行非線(xiàn)性映射,將低維的文本特征向量映射到高維空間,從而可能找到線(xiàn)性可分的超平面。公式與算法流程

SVM的核心優(yōu)化問(wèn)題是找到一個(gè)超平面,使得兩類(lèi)文本在該超平面上的間隔最大化。數(shù)學(xué)上可以表示為:其中:w是超平面的法向量;b是截距;是核函數(shù)對(duì)文本特征向量xi的映射;

是文本的標(biāo)簽(+1或-1);C

是正則化參數(shù),控制經(jīng)驗(yàn)風(fēng)險(xiǎn)和結(jié)構(gòu)風(fēng)險(xiǎn)之間的平衡;

是松弛變量,允許一些樣本不完全滿(mǎn)足間隔條件。分類(lèi)時(shí),新文本通過(guò)同樣的核函數(shù)映射到高維空間,其類(lèi)別由其在超平面上的符號(hào)決定。優(yōu)點(diǎn)泛化能力強(qiáng):通過(guò)最大化間隔,SVM傾向于找到能很好概括訓(xùn)練集、對(duì)未見(jiàn)數(shù)據(jù)有良好預(yù)測(cè)能力的模型。處理非線(xiàn)性問(wèn)題:核函數(shù)可以有效地處理高維、非線(xiàn)性的文本數(shù)據(jù),無(wú)需顯式地進(jìn)行特征轉(zhuǎn)換。魯棒性好:對(duì)異常值不敏感,能夠容忍一定的噪聲和無(wú)關(guān)特征。2.4分類(lèi)算法的分析與比較總結(jié)來(lái)說(shuō),樸素貝葉斯方法在計(jì)算效率、小規(guī)模數(shù)據(jù)表現(xiàn)、可解釋性和在線(xiàn)學(xué)習(xí)等方面具有顯著優(yōu)勢(shì),尤其是在處理大規(guī)模、快速響應(yīng)、資源有限或需要模型解釋的文本分類(lèi)任務(wù)時(shí),樸素貝葉斯方法可能是更好的選擇。然而,這并不意味著SVM在所有情況下都不如樸素貝葉斯。對(duì)于復(fù)雜非線(xiàn)性關(guān)系明顯、數(shù)據(jù)質(zhì)量高且計(jì)算資源充足的場(chǎng)景,SVM可能展現(xiàn)出更強(qiáng)的分類(lèi)性能。實(shí)際應(yīng)用中應(yīng)根據(jù)具體任務(wù)需求、數(shù)據(jù)特性及資源條件來(lái)選擇合適的分類(lèi)方法。3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1系統(tǒng)需求分析3.1.1需求分析對(duì)于不同的單詞,本文需要利用Lasso回歸模型和樸素貝葉斯模型去判斷出他的單詞難度,模型應(yīng)該初步可以將單詞分為簡(jiǎn)單單詞、中等單詞、困難單詞三類(lèi)。完成這項(xiàng)定性功能后,最好可以實(shí)現(xiàn)單詞難度的定量功能,這樣可以更加精密確定單詞的難度。本文可以選用Lasso回歸模型來(lái)構(gòu)建模型,使用樸素貝葉斯算法用來(lái)驗(yàn)證。使得系統(tǒng)的模型的健壯性更加良好。系統(tǒng)首先需要確定單詞難度劃分的因素,將其設(shè)置為L(zhǎng)asso回歸模型的自變量。根據(jù)各自變量,代入Lasso回歸模型公式。得出因變量,因變量即為單詞的難度系數(shù)。具體單詞難度劃分的因素自變量如何設(shè)定將在后續(xù)列出。3.1.2功能需求本系統(tǒng)需要實(shí)現(xiàn)四個(gè)功能,作為四個(gè)模塊。它們分別為:合法單詞判斷功能(數(shù)據(jù)預(yù)處理)單詞屬性計(jì)算功能基于Lasso回歸模型的單詞難度定量劃分功能基于樸素貝葉斯的單詞難度驗(yàn)證功能3.1.3性能需求在進(jìn)行一個(gè)系統(tǒng)設(shè)計(jì)之前,需要進(jìn)行可行性分析。還需要考慮到時(shí)間復(fù)雜度、是否可以擴(kuò)展等需求。方便后期系統(tǒng)的升級(jí)和性能的優(yōu)化,對(duì)系統(tǒng)自身來(lái)說(shuō),主要有以下幾項(xiàng)指標(biāo)和原則:分類(lèi)速度,系統(tǒng)的分類(lèi)速度是系統(tǒng)的一個(gè)基本要求。本文要在保證分類(lèi)精度的前提下,盡可能的提高分類(lèi)速度。分類(lèi)精度,一個(gè)分類(lèi)系統(tǒng)最重要的就是分類(lèi)精度。這是本文需要保證的功能,也是后期不斷優(yōu)化的核心內(nèi)容??蓴U(kuò)展性,由于本文的系統(tǒng)只設(shè)計(jì)了英文文本的分類(lèi)設(shè)計(jì),后期如果需要完成多語(yǔ)言的文本分類(lèi),需要使本文的系統(tǒng)的擴(kuò)展性足夠高。在分類(lèi)系統(tǒng)中,文本分類(lèi)精度體現(xiàn)了系統(tǒng)的性能高低。文本分類(lèi)速度體現(xiàn)了系統(tǒng)使用起來(lái)是否方便快捷。可擴(kuò)展性是為了后續(xù)開(kāi)發(fā)人員在此基礎(chǔ)上做擴(kuò)展性的開(kāi)發(fā),可以為他們提供一定的幫助和指導(dǎo),增加更多的功能。由于基于機(jī)器學(xué)習(xí)的分類(lèi)系統(tǒng)代替了傳統(tǒng)的文本分類(lèi)方法。因此系統(tǒng)需要滿(mǎn)足以下幾點(diǎn)性能需要:分類(lèi)速度快,每秒需要處理至少100個(gè)單詞。分類(lèi)精度高,基于Lasso回歸得出的分類(lèi)結(jié)果和基于樸素貝葉斯的分類(lèi)結(jié)果,一致性要達(dá)到90%。系統(tǒng)可以擴(kuò)展,方便后續(xù)增加分類(lèi)屬性和開(kāi)發(fā)多語(yǔ)言分類(lèi)系統(tǒng)。3.2系統(tǒng)設(shè)計(jì)3.2.1合法單詞判斷模塊設(shè)計(jì)在系統(tǒng)的起始階段,對(duì)于輸入的英文單詞,本文要判斷他的單詞長(zhǎng)度是否在1到20之前。超過(guò)20個(gè)字母的單詞屬于不常用單詞,本文不對(duì)其進(jìn)行分析。同時(shí)創(chuàng)建一個(gè)dictionary.txt文件,里面包含著牛津高階詞典的全部單詞。本文還需要判斷單詞是否在詞典中存在,本系統(tǒng)不會(huì)為一個(gè)不存在的單詞分類(lèi)。因?yàn)檫@樣沒(méi)有意義。3.2.2分類(lèi)屬性計(jì)算模塊設(shè)計(jì)根據(jù)系統(tǒng)的定義,長(zhǎng)度越短的單詞難度越低,長(zhǎng)度越長(zhǎng)的單詞難度越大。因此系統(tǒng)設(shè)定的第一個(gè)影響單詞分類(lèi)的屬性X1為單詞長(zhǎng)度。初步設(shè)定一個(gè)單詞的X1值為單詞字母數(shù)量*5。例如hello單詞的長(zhǎng)度為5,那么他的X1=25。根據(jù)系統(tǒng)的定義,單詞中重復(fù)字母?jìng)€(gè)數(shù)越多,單詞難度越低。反而單詞難度越高。系統(tǒng)規(guī)定,只要單詞中出現(xiàn)兩個(gè)或兩個(gè)以上的重復(fù)字母。那么這些字母屬于重復(fù)字母,比如hello中就有兩個(gè)l為重復(fù)字母。重復(fù)字母越多,單詞的難度越低。將單詞去重處理,例如hello經(jīng)過(guò)去重就變?yōu)榱薶elo,在此設(shè)定第二個(gè)影響單詞分類(lèi)的屬性X2為去重后的單詞長(zhǎng)度/去重前的單詞長(zhǎng)度*25。例如hello的X2=4/5*25=20。根據(jù)系統(tǒng)的設(shè)定,單詞中不同字母的出現(xiàn)頻率各不相同,如果一個(gè)單詞中包含的常用字母的個(gè)數(shù)越多,那么意味著這個(gè)單詞難度越低。反之難度越高。根據(jù)Algoritmy網(wǎng)站在統(tǒng)計(jì)了40000個(gè)單詞后得出的字母頻率表格如下:表1字母頻率表字母英語(yǔ)中出現(xiàn)的頻率頻率分?jǐn)?shù)a8.167%3b1.492%20c2.782%12d4.253%10e12.702%1f2.228%16g2.015%17h6.094%8i6.966%5j0.153%23k0.772%22l4.025%11m2.406%14n6.749%6o7.507%4p1.929%19q0.095%25r5.987%9s6.327%7t9.056%2u2.758%13v0.978%21w2.360%15x0.150%24y1.974%18z0.074%26本文設(shè)定第三個(gè)影響單詞分類(lèi)的屬性X3為每個(gè)字母的頻率分?jǐn)?shù)S之和/單詞長(zhǎng)度。例如hello單詞的5個(gè)字母頻率分?jǐn)?shù)為:8、1、11、11、4。那么X3=(8+1+11+11+4)/5=7。3.2.3基于Lasso回歸的單詞分類(lèi)模塊設(shè)計(jì)根據(jù)本文上述設(shè)定的三個(gè)影響單詞分類(lèi)的屬性,可以利用lasso回歸模型構(gòu)建回歸方程,將三個(gè)屬性作為自變量,單詞難度系數(shù)作為因變量。利用Python腳本計(jì)算單詞難度系數(shù)。至此本文的模型主體部分基本完成。3.2.4基于樸素貝葉斯的分類(lèi)結(jié)果驗(yàn)證模塊設(shè)計(jì)對(duì)于本文利用Lasso回歸模型得出的分類(lèi)結(jié)果,使用樸素貝葉斯分類(lèi)器對(duì)其進(jìn)行驗(yàn)證。如果兩個(gè)分類(lèi)系統(tǒng)得出的分類(lèi)結(jié)果一致性達(dá)到90%。確定該模型的分類(lèi)效果好。如果達(dá)不到90%,不斷修改Lasso回歸模型,以提高模型的正確性。3.3系統(tǒng)實(shí)現(xiàn)3.3.1功能簡(jiǎn)介該英文文本自動(dòng)分類(lèi)系統(tǒng)旨在對(duì)輸入的英文單詞進(jìn)行難度評(píng)估與分類(lèi)。系統(tǒng)首先通過(guò)合法單詞判斷模塊,確保單詞長(zhǎng)度在1至20字母范圍內(nèi)且存在于預(yù)設(shè)的牛津高階詞典中。接著,系統(tǒng)運(yùn)用三個(gè)屬性計(jì)算模塊:1.單詞長(zhǎng)度屬性模塊:以字母數(shù)量乘以5計(jì)算單詞長(zhǎng)度屬性X1,反映單詞長(zhǎng)度與難度的關(guān)系。2.單詞重復(fù)字母屬性模塊:通過(guò)去重處理計(jì)算單詞長(zhǎng)度變化比例,以此生成屬性X2,表示重復(fù)字母數(shù)量對(duì)難度的影響。3.單詞各字母頻率分?jǐn)?shù)屬性模塊:依據(jù)字母頻率表計(jì)算單詞內(nèi)各字母的頻率分?jǐn)?shù)總和除以單詞長(zhǎng)度,得出屬性X3,反映常用字母占比與難度的關(guān)系。隨后,系統(tǒng)運(yùn)用Lasso回歸模型,結(jié)合X1、X2、X3三個(gè)屬性,計(jì)算得到單詞的難度系數(shù)。最后,采用樸素貝葉斯模型對(duì)Lasso回歸的分類(lèi)結(jié)果進(jìn)行對(duì)比驗(yàn)證,以增強(qiáng)模型準(zhǔn)確度。該系統(tǒng)通過(guò)多維屬性分析與機(jī)器學(xué)習(xí)算法,實(shí)現(xiàn)了對(duì)英文單詞難度的有效量化與分類(lèi)。3.3.2項(xiàng)目結(jié)構(gòu)project/│├──letter_frequencies.py#存儲(chǔ)字母頻率表數(shù)據(jù)│├──modules/│├──dictionary.txt#牛津高階詞典文件│├──test_result.txt#測(cè)試集結(jié)果文件│├──test_sets.txt#測(cè)試集(待分類(lèi)數(shù)據(jù))│├──training_sets.txt#訓(xùn)練集│├──legitimacy_judgment.py #單詞合法性判斷│├──attribute_calculation.py #三大屬性計(jì)算│├──lasso_regression.py #Lasso回歸分類(lèi)│└──naive_bayes.py #樸素貝葉斯驗(yàn)證│└──main.py#主程序入口3.3.3合法單詞判斷模塊實(shí)現(xiàn)defword_in_dictionary(word,dictionary_path="dictionary.txt"):"""檢查單詞是否存在于詞典文件中。"""withopen(dictionary_path,'r',encoding="utf-8")asf:returnword.lower()inf.read().lower()defis_valid_word(word,max_length=20):"""判斷單詞是否合法:長(zhǎng)度在1到max_length之間且存在于詞典中。"""iflen(word)>max_lengthornotword_in_dictionary(word):returnFalsereturnTrueif__name__=="__main__":word="dictionary"ifis_valid_word(word):print("此單詞為合法單詞")else:print("此單詞為不合法單詞")該模塊主要實(shí)現(xiàn)單詞的合法性判斷功能,一個(gè)合法的單詞需要滿(mǎn)足兩個(gè)條件,分別是單詞長(zhǎng)度在1到20之前,二是屬于牛津詞典里面的英語(yǔ)單詞。項(xiàng)目中的dictionary.txt文件包含著牛津詞典里的所有單詞列表。本文將這兩個(gè)判斷分別封裝在word_in_dictionary函數(shù)和is_valid_word函數(shù)中。3.3.4三大屬性計(jì)算模塊實(shí)現(xiàn)fromletter_frequenciesimportLETTER_FREQUENCIESdefcalculate_length_attribute(word):"""計(jì)算單詞長(zhǎng)度屬性X1。"""returnlen(word)*5.0defcalculate_repeated_letters_ratio(word):"""計(jì)算單詞重復(fù)字母屬性X2。"""unique_chars=set(word)returnlen(unique_chars)/len(word)*25defcalculate_frequency_score_sum(word):"""計(jì)算單詞各字母頻率分?jǐn)?shù)屬性X3。"""score_sum=sum(LETTER_FREQUENCIES[letter]forletterinword.lower())returnscore_sum/len(word)if__name__=="__main__":word="hello"x1=calculate_length_attribute(word)x2=calculate_repeated_letters_ratio(word)x3=calculate_frequency_score_sum(word)print("屬性x1的值為:",x1,"\n""屬性x2的值為:",x2,"\n""屬性x3的值為:",x3,"\n")該模塊主要實(shí)現(xiàn)單詞初試設(shè)定的三個(gè)屬性值的計(jì)算,本文將26個(gè)字母頻率的字典文件放在了letter_frequencies.py里,在這里就不詳細(xì)介紹了。本文將計(jì)算三個(gè)屬性的功能封裝成了三個(gè)接口,方便后期的調(diào)用。3.3.5Lasso模型分類(lèi)模塊實(shí)現(xiàn)該模塊是本分類(lèi)系統(tǒng)的最主要模塊,具有多種功能接口,分別為:屬性計(jì)算接口、訓(xùn)練集生成接口、分類(lèi)分界點(diǎn)計(jì)算接口、從測(cè)試文件中讀取接口、從測(cè)試文件讀取并生成測(cè)試結(jié)果接口、對(duì)單獨(dú)單詞的分類(lèi)接口、Lasso回歸分類(lèi)接口。本模塊實(shí)現(xiàn)了兩種分類(lèi)方式,一種是從輸入端輸入單詞,對(duì)單個(gè)單詞進(jìn)行分類(lèi)。假設(shè)需要一次性對(duì)大量單詞進(jìn)行分類(lèi)。本文可以調(diào)用從文本讀取分類(lèi)接口。兩種接口,滿(mǎn)足了不同需求。是系統(tǒng)代碼編寫(xiě)的比較優(yōu)異的地方。模塊代碼如下:importnumpyasnpfromsklearn.linear_modelimportLassofromsklearn.model_selectionimporttrain_test_split,GridSearchCVfromsklearn.metricsimportmean_squared_error,r2_scorefromsklearn.preprocessingimportStandardScalerfromattribute_calculationimportcalculate_length_attribute,calculate_repeated_letters_ratio,calculate_frequency_score_sumfromlegitimacy_judgmentimportis_valid_word#計(jì)算給定單詞的attribute1、attribute2和attribute3的實(shí)現(xiàn)defcalculate_attributes(word):attribute1_value=calculate_length_attribute(word)attribute2_value=calculate_repeated_letters_ratio(word)attribute3_value=calculate_frequency_score_sum(word)return{'attribute1':attribute1_value,'attribute2':attribute2_value,'attribute3':attribute3_value}#訓(xùn)練集生成接口deftraining_set_generation(filename="training_sets.txt"):"""從包含詞-難度對(duì)的文本文件中生成training_data列表,并利用提供的calculate_attributes函數(shù)計(jì)算每個(gè)詞的屬性值。參數(shù):calculate_attributes(函數(shù)):接收一個(gè)詞作為輸入,返回一個(gè)字典,其中包含鍵'attribute1','attribute2','attribute3'及其對(duì)應(yīng)的計(jì)算值。filename(str,可選):包含詞-難度對(duì)的文本文件路徑。默認(rèn)為"training_sets.txt"。返回:list[dict]:按照指定格式生成的training_data列表。"""#初始化一個(gè)空列表用于存儲(chǔ)訓(xùn)練數(shù)據(jù)training_data=[]#打開(kāi)并讀取'training_sets.txt'文件withopen(filename,"r")asf:forlineinf:#將每一行拆分為詞和難度值word,difficulty_str=line.strip().split("\t")difficulty=float(difficulty_str)#使用提供的attribute_calculator函數(shù)計(jì)算當(dāng)前詞的屬性值computed_attributes=calculate_attributes(word)#將計(jì)算出的屬性與詞和難度值合并成一個(gè)單一的字典條目entry={'word':word,**computed_attributes,'difficulty':difficulty,}#將該條目添加到training_data列表中training_data.append(entry)returntraining_data#根據(jù)訓(xùn)練集計(jì)算分界點(diǎn)defboundary_point_calculation(training_data):"""根據(jù)給定訓(xùn)練集training_data中的difficulty字段,將難度值按順序三等分,得出兩個(gè)分界點(diǎn)值,用于劃分簡(jiǎn)單、中等、困難三個(gè)難度等級(jí)。參數(shù):training_data(list[dict]):包含難度系數(shù)的訓(xùn)練數(shù)據(jù)集。返回:tuple[float,float]:分別代表簡(jiǎn)單與中等、中等與困難之間的分界點(diǎn)值。"""difficulties=np.array([sample['difficulty']forsampleintraining_data])difficulties_sorted=np.sort(difficulties)#計(jì)算簡(jiǎn)單與中等、中等與困難之間的分界點(diǎn)n_samples=len(difficulties_sorted)mid_index=n_samples//2first_boundary=difficulties_sorted[mid_index-n_samples//6]second_boundary=difficulties_sorted[mid_index+n_samples//6]returnfirst_boundary,second_boundary#從測(cè)試集文件中讀取測(cè)試單詞defread_words_from_file(filename):"""從指定文件中讀取單詞列表。參數(shù):filename(str):包含單詞的文本文件路徑。返回:list[str]:單詞列表。"""withopen(filename,"r")asf:words=[line.strip()forlineinf]returnwords#從文件讀取測(cè)試集,并生成測(cè)試結(jié)果defpredict_and_write_test_results(test_filename="test_sets.txt",output_filename="test_result.txt"):"""讀取測(cè)試集文件,使用已訓(xùn)練的Lasso回歸模型預(yù)測(cè)每個(gè)單詞的難度系數(shù),并將結(jié)果寫(xiě)入輸出文件。參數(shù):test_filename(str,可選):包含測(cè)試單詞的文本文件路徑。默認(rèn)為"test_sets.txt"。output_filename(str,可選):存儲(chǔ)預(yù)測(cè)結(jié)果的文本文件路徑。默認(rèn)為"test_result.txt"。lasso_model(Lasso,可選):已訓(xùn)練好的Lasso回歸模型。scaler(StandardScaler,可選):用于特征標(biāo)準(zhǔn)化的Scaler對(duì)象,與訓(xùn)練模型時(shí)使用的相同。返回:None"""X_train,y_train,lasso_model,scaler=lasso_regression(training_data)#**新增:對(duì)alpha進(jìn)行網(wǎng)格搜索**num_samples=10#調(diào)整為您期望生成的樣本數(shù)alpha_grid=np.logspace(-4,0.5,num_samples)#生成一個(gè)包含不同alpha值的網(wǎng)格lasso_params={'alpha':alpha_grid}grid_search=GridSearchCV(Lasso(),lasso_params,scoring='neg_mean_squared_error',cv=5)grid_search.fit(X_train,y_train)best_alpha=grid_search.best_params_['alpha']print(f"最佳a(bǔ)lpha值(由網(wǎng)格搜索得到):{best_alpha:.2f}")#使用最佳a(bǔ)lpha重新訓(xùn)練Lasso回歸模型lasso_model=Lasso(alpha=best_alpha)lasso_model.fit(X_train,y_train)withopen(output_filename,"w")asoutput_file:forwordinread_words_from_file(test_filename):#判斷單詞是否合法ifnotis_valid_word(word):print(f"測(cè)試集中的單詞'{word}'不合法,跳過(guò)該單詞。")continue#計(jì)算新單詞的屬性值attributes=calculate_attributes(word)#使用訓(xùn)練好的模型預(yù)測(cè)新單詞的難度系數(shù)new_word_attributes=np.array([attributes['attribute1'],attributes['attribute2'],attributes['attribute3']])new_word_attributes_scaled=scaler.transform(new_word_attributes.reshape(1,-1))#注意進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化new_word_difficulty=lasso_model.predict(new_word_attributes_scaled)[0]ifnew_word_difficulty<=first_boundary:new_word_difficulty_type="簡(jiǎn)單單詞"elifnew_word_difficulty>=second_boundary:new_word_difficulty_type="困難單詞"else:new_word_difficulty_type="中等單詞"#寫(xiě)入預(yù)測(cè)結(jié)果到輸出文件output_file.write(f"{word}\t{new_word_difficulty}\t{new_word_difficulty_type}\n")print("測(cè)試集分類(lèi)成功,測(cè)試集分類(lèi)結(jié)果已寫(xiě)入test_result.txt文件中")#單獨(dú)對(duì)某個(gè)單詞進(jìn)行分類(lèi)defsingle_word_test():first_boundary=4.191019392859152second_boundary=5.530670055978451training_data=training_set_generation()X_train,y_train,lasso_model,scaler=lasso_regression(training_data)#**新增:對(duì)alpha進(jìn)行網(wǎng)格搜索**num_samples=10#調(diào)整為您期望生成的樣本數(shù)alpha_grid=np.logspace(-4,0.5,num_samples)#生成一個(gè)包含不同alpha值的網(wǎng)格lasso_params={'alpha':alpha_grid}grid_search=GridSearchCV(Lasso(),lasso_params,scoring='neg_mean_squared_error',cv=5)grid_search.fit(X_train,y_train)best_alpha=grid_search.best_params_['alpha']print(f"最佳a(bǔ)lpha值(由網(wǎng)格搜索得到):{best_alpha:.2f}")#使用最佳a(bǔ)lpha重新訓(xùn)練Lasso回歸模型lasso_model=Lasso(alpha=best_alpha)lasso_model.fit(X_train,y_train)#在這里增加一段輸入新單詞的代碼,并調(diào)用attribute_calculation.py接口計(jì)算屬性值new_word=input("請(qǐng)輸入需要分類(lèi)的單詞:")#判斷單詞是否合法ifnotis_valid_word(new_word):print("輸入的單詞不合法,程序終止。")exit(1)#當(dāng)單詞不合法時(shí),調(diào)用exit(1)結(jié)束程序,狀態(tài)碼為1表示有錯(cuò)誤發(fā)生new_word_attribute1=calculate_length_attribute(new_word)new_word_attribute2=calculate_repeated_letters_ratio(new_word)new_word_attribute3=calculate_frequency_score_sum(new_word)print("單詞",new_word,"的三個(gè)屬性值為","\n""x1=",new_word_attribute1,"\n""x2=",new_word_attribute2,"\n""x3=",new_word_attribute3,"\n")#使用訓(xùn)練好的模型預(yù)測(cè)新單詞的難度系數(shù)henew_word_attributes=np.array([new_word_attribute1,new_word_attribute2,new_word_attribute3])new_word_attributes_scaled=scaler.transform(new_word_attributes.reshape(1,-1))#注意進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化new_word_difficulty=lasso_model.predict(new_word_attributes_scaled)[0]print("單詞",new_word,"的難度系數(shù)為:",new_word_difficulty)ifnew_word_difficulty<=first_boundary:print("單詞",new_word,"為簡(jiǎn)單單詞")elifnew_word_difficulty>=second_boundary:print("單詞",new_word,"為困難單詞")else:print("單詞",new_word,"為中等單詞")returnnew_word_difficulty,new_word#Lasso回歸分類(lèi)接口deflasso_regression(training_data,test_size=0.2,alpha=1.0):"""使用Lasso回歸來(lái)預(yù)測(cè)單詞難度系數(shù)。Args:training_data(list[dict]):包含屬性值和難度系數(shù)的訓(xùn)練數(shù)據(jù)集。test_size(float,optional):測(cè)試集比例,默認(rèn)為0.2。alpha(float,optional):Lasso正則化強(qiáng)度,默認(rèn)為1.0。Returns:tuple[np.ndarray,np.ndarray,Lasso]:X_train,y_train,lasso_model"""#提取特征和標(biāo)簽features=np.array([[sample['attribute1'],sample['attribute2'],sample['attribute3']]forsampleintraining_data])labels=np.array([sample['difficulty']forsampleintraining_data])#數(shù)據(jù)標(biāo)準(zhǔn)化scaler=StandardScaler()features=scaler.fit_transform(features)#劃分訓(xùn)練集和測(cè)試集X_train,X_test,y_train,y_test=train_test_split(features,labels,test_size=test_size,random_state=42)#構(gòu)建并訓(xùn)練Lasso回歸模型lasso_model=Lasso(alpha=alpha)lasso_model.fit(X_train,y_train)#計(jì)算訓(xùn)練集和測(cè)試集上的均方誤差與R2分?jǐn)?shù)mse_train=mean_squared_error(y_train,lasso_model.predict(X_train))mse_test=mean_squared_error(y_test,lasso_model.predict(X_test))r2_train=r2_score(y_train,lasso_model.predict(X_train))r2_test=r2_score(y_test,lasso_model.predict(X_test))print(f"TrainingMSE:{mse_train:.2f},R2:{r2_train:.2f}")print(f"TestMSE:{mse_test:.2f},R2:{r2_test:.2f}")#打印特征系數(shù)print("Featurecoefficients:")fori,coefinenumerate(lasso_model.coef_,start=1):print(f"Attribute{i}:{coef:.2f}")returnX_train,y_train,lasso_model,scalerif__name__=="__main__":#生成訓(xùn)練數(shù)據(jù)集training_data=training_set_generation()#print(training_data)#分界點(diǎn)生成first_boundary,second_boundary=boundary_point_calculation(training_data)#print(first_boundary,second_boundary)#從文件分類(lèi)單詞predict_and_write_test_results()#單獨(dú)輸入一個(gè)單詞分類(lèi)#single_word_test()3.3.6樸素貝葉斯驗(yàn)證模塊實(shí)現(xiàn)在上一模塊中使用了Lasso回歸模型作為分類(lèi)系統(tǒng)的主模塊。但是使用一種算法來(lái)分類(lèi),系統(tǒng)的科學(xué)性有待考究。因此在本模塊,本文又實(shí)現(xiàn)了一個(gè)基于樸素貝葉斯分類(lèi)器的分類(lèi)系統(tǒng)。再次對(duì)訓(xùn)練集里面的數(shù)據(jù)進(jìn)行訓(xùn)練。并將測(cè)試集里的單詞進(jìn)行分類(lèi)。本文驚人的發(fā)現(xiàn),基于樸素貝葉斯算法的分類(lèi)結(jié)果和基于Lasso回歸模型的結(jié)果出奇的一致。并且本文依次測(cè)試了10個(gè)單詞,分類(lèi)結(jié)果都相同。具體如下圖:圖2驗(yàn)證成功圖模塊代碼如下:importnumpyasnpfromsklearn.naive_bayesimportGaussianNBfromsklearn.model_selectionimporttrain_test_splitfromattribute_calculationimportcalculate_length_attribute,calculate_repeated_letters_ratio,calculate_frequency_score_sumfromlegitimacy_judgmentimportis_valid_wordfromlasso_regressionimportsingle_word_test#計(jì)算給定單詞的attribute1、attribute2和attribute3的實(shí)現(xiàn)defcalculate_attributes(word):attribute1_value=calculate_length_attribute(word)attribute2_value=calculate_repeated_letters_ratio(word)attribute3_value=calculate_frequency_score_sum(word)return{'attribute1':attribute1_value,'attribute2':attribute2_value,'attribute3':attribute3_value}#從文件中加載訓(xùn)練集數(shù)據(jù)defload_training_data(filename="training_sets.txt"):training_data=[]withopen(filename,"r")asf:forlineinf:word,difficulty_str=line.strip().split("\t")difficulty=float(difficulty_str)computed_attributes=calculate_attributes(word)ifdifficulty<=4.191019392859152:difficulty_type="簡(jiǎn)單單詞"elifdifficulty>=5.530670055978451:difficulty_type="困難單詞"else:difficulty_type="中等單詞"entry={'word':word,**computed_attributes,'difficulty':difficulty,'difficulty_type':difficulty_type,}training_data.append(entry)returntraining_data#訓(xùn)練樸素貝葉斯模型deftrain_naive_bayes(training_data):features=np.array([[sample['attribute1'],sample['attribute2'],sample['attribute3']]forsampleintraining_data])labels=np.array([sample['difficulty_type']forsampleintraining_data])model=GaussianNB()model.fit(features,labels)returnmodel#預(yù)測(cè)單詞難度等級(jí)defpredict_word_class(model,word):attributes=calculate_attributes(word)feature_vector=np.array([attributes['attribute1'],attributes['attribute2'],attributes['attribute3']])difficulty=model.predict([feature_vector])[0]print(f"樸素貝葉斯分類(lèi)器將單詞{word}分類(lèi)為{difficulty}")returndifficulty#難度等級(jí)劃分函數(shù)defclassify_difficulty(difficulty):iffloat(difficulty)<=4.191019392859152:return"簡(jiǎn)單單詞"eliffloat(difficulty)>=5.530670055978451:return"困難單詞"else:return"中等單詞"#主程序if__name__=="__main__":#加載訓(xùn)練數(shù)據(jù)training_data=load_training_data()#訓(xùn)練樸素貝葉斯模型nb_model=train_naive_bayes(training_data)#假設(shè)已知Lasso回歸模型預(yù)測(cè)的單詞難度系數(shù)(例如,從您的Lasso回歸系統(tǒng)中獲?。﹍asso_difficulty,word=single_word_test()#請(qǐng)?zhí)鎿Q為實(shí)際的Lasso回歸預(yù)測(cè)結(jié)果#將Lasso回歸預(yù)測(cè)的難度系數(shù)轉(zhuǎn)化為難度等級(jí)lasso_class=classify_difficulty(lasso_difficulty)#使用樸素貝葉斯模型預(yù)測(cè)同一單詞的難度等級(jí)nb_class=predict_word_class(nb_model,word)#判斷兩個(gè)模型預(yù)測(cè)的難度等級(jí)是否一致iflasso_class==nb_class:print("樸素貝葉斯模型與Lasso回歸模型對(duì)單詞難度等級(jí)的預(yù)測(cè)結(jié)果一致,驗(yàn)證成功.")else:print("樸素貝葉斯模型與Lasso回歸模型對(duì)單詞難度等級(jí)的預(yù)測(cè)結(jié)果不一致,驗(yàn)證失敗.")3.4系統(tǒng)測(cè)試與分析3.4.1測(cè)試說(shuō)明該系統(tǒng)在項(xiàng)目開(kāi)發(fā)過(guò)程中進(jìn)行了測(cè)試工作。通過(guò)測(cè)試盡可能的發(fā)現(xiàn)和糾正系統(tǒng)中的錯(cuò)誤來(lái)提高運(yùn)行的可靠性,實(shí)現(xiàn)系統(tǒng)的合理化。本文會(huì)使用不同的單詞數(shù)據(jù)去運(yùn)行四個(gè)模塊的代碼。找到可能的錯(cuò)誤并修改他。3.4.2測(cè)試步驟在系統(tǒng)開(kāi)發(fā)過(guò)程中,運(yùn)行了每個(gè)功能模塊的測(cè)試,確保每個(gè)子模塊單獨(dú)都可以正確執(zhí)行。在系統(tǒng)開(kāi)發(fā)的末尾階段。本文進(jìn)行了系統(tǒng)集成測(cè)試。用以查看整個(gè)系統(tǒng)是否能正確執(zhí)行,并完成分類(lèi)功能,驗(yàn)證功能。3.4.3測(cè)試結(jié)果合法單詞判斷模塊測(cè)試首先選取牛津字典文件里的合法單詞acknowledge進(jìn)行測(cè)試圖3合法單詞判斷模塊測(cè)試1再次選取非牛津字典文件里的不合法單詞apdwfsw進(jìn)行測(cè)試圖4合法單詞判斷模塊測(cè)試2屬性計(jì)算模塊測(cè)試選取單詞acknowledge進(jìn)行屬性計(jì)算測(cè)試,結(jié)果如下:圖5屬性計(jì)算模塊測(cè)試Lasso回歸模型分類(lèi)模塊測(cè)試首先測(cè)試從文件中讀取多個(gè)單詞并分類(lèi)的功能,結(jié)果如下:圖6Lasso回歸模型分類(lèi)模塊測(cè)試1其次,測(cè)試輸入單個(gè)單詞進(jìn)行分類(lèi)的功能,本文還是已a(bǔ)cknowledge單詞為例,結(jié)果如下:圖6Lasso回歸模型分類(lèi)模塊測(cè)試2樸素貝葉斯驗(yàn)證模塊測(cè)試在此,本文使用項(xiàng)目test_sets.txt文件里的irony、irrigate、ratify單詞進(jìn)行測(cè)試,查看基于Lasso回歸模型和樸素貝葉斯算法的兩種分類(lèi)結(jié)果是否相同,結(jié)果是三個(gè)單詞在兩種模型下

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論