棗品質(zhì)決策系統(tǒng)對棗信息進(jìn)行分詞預(yù)處理大學(xué)本科畢業(yè)論文_第1頁
棗品質(zhì)決策系統(tǒng)對棗信息進(jìn)行分詞預(yù)處理大學(xué)本科畢業(yè)論文_第2頁
棗品質(zhì)決策系統(tǒng)對棗信息進(jìn)行分詞預(yù)處理大學(xué)本科畢業(yè)論文_第3頁
棗品質(zhì)決策系統(tǒng)對棗信息進(jìn)行分詞預(yù)處理大學(xué)本科畢業(yè)論文_第4頁
棗品質(zhì)決策系統(tǒng)對棗信息進(jìn)行分詞預(yù)處理大學(xué)本科畢業(yè)論文_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要棗因其營養(yǎng)價值高,易種植,耐存活且在不同地域擁有不同特色而成為許多地方特別是山區(qū)高原致富之道,但由于技術(shù)方面的欠缺使得果農(nóng)無法用專業(yè)知識去評估自己手中果實的品質(zhì)和正確價值導(dǎo)向,由此帶來一系列問題,信息消息的滯后導(dǎo)致農(nóng)戶盲目種植,產(chǎn)品積壓,銷售停滯。因此就要找到相關(guān)途徑,知己之道,才能讓棗農(nóng)更快發(fā)展富裕起來。由此需求設(shè)計了《棗品質(zhì)決策系統(tǒng)》,它是依托當(dāng)前信息的網(wǎng)絡(luò)化、快速化,使用網(wǎng)絡(luò)評估果實品質(zhì),給出相關(guān)建議等服務(wù)為前提的綜合信息評估服務(wù)系統(tǒng)的設(shè)計。通過短信接收果農(nóng)給出的棗信息的初始描述,進(jìn)行劃句分詞,得到相應(yīng)的屬性,并反饋給果農(nóng)及專家。通過《棗品質(zhì)決策系統(tǒng)》進(jìn)行果實評估給出建議,方便即果農(nóng)專家進(jìn)行相關(guān)工作,又減少成本??s短果農(nóng)與專家的距離。在此項目中選擇了JavaWeb作為開發(fā)語言,用到了面向?qū)ο蟮拈_發(fā)思想和中文分詞技術(shù)。在接口設(shè)計上,實現(xiàn)了數(shù)據(jù)封裝和信息隱藏。關(guān)鍵字:棗品質(zhì)評估、JavaWeb、中文分詞。

AbstractDatesbecauseofitshighnutritionalvalue,easytogrow,resistancetosurviveandindifferentregionshavedifferentcharacteristicsandbecomerichinmanyplaces,especiallyinmountainousplateau,butduetothelackoftechnologymakethefruitcannotuseprofessionalknowledgetoevaluatethequalityoftheirownhandsthefruitandthecorrectvalueguidance,leadingtoaseriesofproblems,informationmessagesdelayleadtofarmersplantingblindly,productbacklog,salesstalled.Sowillfindrelevantway,bosomfriend,togetthemostrichfasterdevelopment.Thusdemand"jujubequalitydecisionsystemisdesigned,itisrelyingonthecurrentinformationnetwork,rapidness,usingthenetworkevaluatingfruitquality,andprovideadviceandotherservicesastheprerequisiteofcomprehensiveassessmentinformationservicesystemdesign.Throughthedescriptionoftheinitialdateinformationispresentedinshortmessagereceivingfruit,iszonedwordsegmentation,togetthecorrespondingattribute,andgivefeedbacktothefarmersandexperts.Throughthejujubequalitydecision-makingsystemtoevaluatefruitrecommendations,namelyfruitexpertsforarelatedwork,andreducecosts.Shortenthedistanceofgrowersandexperts.InthisprojectweselectJavaWebasadevelopmentlanguage,usetheobject-orienteddevelopmentthoughtandthedesignconceptoftheMVCdesignpattern.Intheinterfacedesign,realizedthedataencapsulationandinformationhiding.Keywords:Jujubequalityassessment,JavaWeb,ChineseWordSegmentation.目錄1.引言 31.1背景和意義 31.1.1背景 31.1.2意義 31.2國內(nèi)的現(xiàn)狀 31.3本文的重點 52.技術(shù)支持 62.1開發(fā)工具和環(huán)境 62.1.1開發(fā)環(huán)境 62.1.2開發(fā)軟件 62.1.3系統(tǒng)環(huán)境配置 62.2JSP技術(shù) 62.2.1JSP介紹 62.2.2JSP技術(shù)開放的技術(shù) 72.2.3JSP的技術(shù)優(yōu)勢 72.3Servlet技術(shù) 82.4Tomcat服務(wù)器 82.4中文分詞技術(shù) 93.需求分析與概要設(shè)計 113.1需求分析 113.1.1設(shè)計思想 113.1.2功能需求 113.2概要設(shè)計 113.2.1系統(tǒng)總體分析 113.2.2系統(tǒng)模塊劃分 113.2.3按模塊分總體設(shè)計 123.2.4按各模塊間關(guān)系 134.詳細(xì)設(shè)計及實現(xiàn) 144.1設(shè)計說明 144.2數(shù)據(jù)結(jié)構(gòu)設(shè)計 144.2.1數(shù)據(jù)庫的選擇 144.2.2數(shù)據(jù)結(jié)構(gòu) 144.3中文分詞流程 164.3.2基礎(chǔ)模塊流程 164.3.2模塊流程圖 174.3.3算法流程圖 184.4中文分詞實現(xiàn) 194.4.1系統(tǒng)設(shè)計模式 194.4.2詞典設(shè)計 204.4.3分詞設(shè)計 224.4.5后臺包及設(shè)計 244.4.6異常處理 244.4.7出現(xiàn)的問題以及解決方法 245結(jié)論 255.1技術(shù)特點 255.2缺點及不足 255.4總結(jié) 25致謝 26參考文獻(xiàn) 271.引言本系統(tǒng)是面向?qū)<液娃r(nóng)戶,基于中小型數(shù)據(jù)庫數(shù)據(jù)挖掘工具。它基于語言開發(fā),不但操作簡單,界面友好,易于操作,實用性強(qiáng);同時還能夠跨平臺運行。1.1背景和意義1.1.1背景棗本身的功能價值賦予的,棗的補(bǔ)血、美容、保健、營養(yǎng)、抗癌、抗疲勞、鎮(zhèn)靜、護(hù)發(fā)、降脂、降糖、養(yǎng)生等等效果符合現(xiàn)代人追求的時尚要素國務(wù)院總理溫家寶3月5日在十二屆全國人大一次會議上作政府工作報告時提出,要促進(jìn)農(nóng)業(yè)穩(wěn)定發(fā)展和農(nóng)民持續(xù)增收。堅持把解決好“三農(nóng)”問題作為各項工作的重中之重。黨的十六大以來,黨中央明確要把解決好“三農(nóng)”問題放在全黨工作重中之重的位置,著力統(tǒng)籌城鄉(xiāng)經(jīng)濟(jì)社會發(fā)展,加快形成城鄉(xiāng)發(fā)展一體化新格局。黨的十八大從中國特色社會主義事業(yè)總體布局出發(fā),推出了“促進(jìn)工業(yè)化、信息化、城鎮(zhèn)化、農(nóng)業(yè)現(xiàn)代化同步發(fā)展”,明確“城鄉(xiāng)發(fā)展一體化”是解決“三農(nóng)”問題的根本途徑。隨著計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速崛起,計算機(jī)日漸深刻的在改變著人們的生產(chǎn)生活方式。而互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道,并逐步進(jìn)入科學(xué)種植決策領(lǐng)域。1.1.2意義棗樹的種植區(qū)域地理環(huán)境和人文環(huán)境特征賦予的,棗樹的種植不僅僅有它的經(jīng)濟(jì)意義,更有重要的環(huán)境意義和社會價值,棗樹種植的區(qū)域主要分布在我過干旱、半干旱、風(fēng)沙荒漠化和土地鹽堿化的區(qū)域,棗樹的種植可以極大的改善這些區(qū)域的生態(tài)環(huán)境,符合人類與自然和諧相處的命題,同時這些區(qū)域主要為中國經(jīng)濟(jì)發(fā)展相對滯后的區(qū)域,是我國改善這些區(qū)域人民生活環(huán)境、提高他們生活水平,增加收入來源的重要抓手,對于縮小區(qū)域經(jīng)濟(jì)差異,促進(jìn)經(jīng)濟(jì)和諧發(fā)展有著重要意義。1.2國內(nèi)的現(xiàn)狀隨著計算機(jī)網(wǎng)絡(luò)的飛速普及,人們已經(jīng)進(jìn)入了信息時代。在這個信息社會里,信息的重要性與日俱增,無論是個人,企業(yè),乃至政府都需要獲取大量有用的信息。誰掌握了信息,誰就能在競爭中處于有利位置。在這種環(huán)境下,搜索引擎技術(shù)逐漸成為技術(shù)人員的開發(fā)熱點,而其中最為重要的技術(shù)就是分詞技術(shù)。分詞技術(shù)屬于自然語言理解技術(shù)的范疇,是語義理解的首要環(huán)節(jié),它是能將語句中的詞語正確切分開的一種技術(shù)。它是文本分類,信息檢索,機(jī)器翻譯,自動標(biāo)引,文本的語音輸入輸出等領(lǐng)域的基礎(chǔ)。而由于中文本身的復(fù)雜性及其書寫習(xí)慣,使中文分詞技術(shù)成為了分詞技術(shù)中的難點。近年來人們對中文分詞技術(shù)有了一定的研究提出了多種多樣的中文分詞算法。目前的中文分詞算法主要分為三大類:基于詞典的方法,基于統(tǒng)計的方法和基于規(guī)則的方法。由于中文分詞的三種基本算法,都有其各自的優(yōu)缺點,所以為了能夠達(dá)到更好的分詞效果,人們開始有目的的把分詞的幾種基本算法以及其他知識結(jié)合起來,這就形成了現(xiàn)在日新月異的混合型分詞算法。(1)吳建勝等提出的基于自動機(jī)的分詞方法,這種算法的基本思想是:在數(shù)據(jù)結(jié)構(gòu)方面,把詞典組織成自動機(jī)形式,在匹配算法上采用最大向前匹配算法,把二者有機(jī)的結(jié)合到一起,以達(dá)到更好的分詞效果。(2)趙偉等提出的一種規(guī)則與統(tǒng)計相結(jié)合的漢語分詞方法,這種分詞算法的基本思想是:基于一個標(biāo)注好了的語料庫,并且結(jié)合了規(guī)則和語料庫統(tǒng)計兩種分詞方法。(3)張長利等提出的一種基于后綴數(shù)組的無詞典分詞方法,這種分詞算法的基本思想是:通過后綴數(shù)組和利用散列表獲得漢字的結(jié)合模式,通過置信度篩選詞,能夠快速準(zhǔn)確地抽取文檔中的中、高頻詞,適用于對詞條頻度敏感、對計算速度要求高的中文信息處理。(4)孫曉等提出的基于動態(tài)規(guī)劃的最小代價路徑漢語自動分詞方法,這種分詞算法的基本思想是:基于最長次長匹配的方法建立漢語切分路徑有向圖,將漢語自動分詞轉(zhuǎn)換為在有向圖中選擇正確的切分路徑,其中有向圖中的節(jié)點代價對應(yīng)單詞頻度,而邊代價對應(yīng)所連接的兩個單詞的接續(xù)頻度;運用改進(jìn)后Dijkstra最小代價路徑算法,求出有向圖中路徑代價最小的切分路徑作為切分結(jié)果?;旌闲头衷~算法多種多樣,所結(jié)合的知識點也有很多,可以結(jié)合數(shù)據(jù)結(jié)構(gòu)知識來形成新的詞典機(jī)制;也可以結(jié)合標(biāo)記語料庫的方法更好的完善分詞算法。顯而易見,混合型分詞算法在大多數(shù)方面要優(yōu)于基本型分詞算法。它將成為今后分詞算法研究中的一個熱點。由于中文詞與詞之間不象西文那樣有明顯的分隔符,所以構(gòu)成了中文在自動切分上的極大困難。在現(xiàn)有的中文自動分詞方法中,基于詞典的分詞方法占有主導(dǎo)地位。而中文分詞的主要困難不在于詞典中詞條的匹配,而是在于切分歧義消解和未登錄詞語的識別。在中文分詞過程中,這兩大難題一直沒有完全突破。(1)歧義處理歧義是指同樣的一句話,可能有兩種或者更多的切分方法。目前主要分為交集型歧義、組合型歧義和真歧義三種。其中交集型歧義字段數(shù)量龐大,處理方法多樣;組合型歧義字段數(shù)量較少,處理起來相對較難;而真歧義字段數(shù)量更為稀少,且很難處理。分詞歧義處理之所以是中文分詞的困難之一原因在于歧義分為多種類型,針對不同的歧義類型應(yīng)采取不同的解決方法。除了需要依靠上、下文語義信息;增加語義、語用知識等外部條件外,還存在難以消解的真歧義,增加了歧義切分的難度。同時未登錄詞中也存在著歧義切分的問題,這也增加了歧義切分的難度。所以歧義處理是影響分詞系統(tǒng)切分精度的重要因素,是自動分詞系統(tǒng)設(shè)計中的一個最困難也是最核心的問題。(2)未登錄詞識別新詞,專業(yè)術(shù)語稱為未登錄詞。也就是那些在字典中都沒有收錄過詞。未登錄詞可以分為專名和非專名兩大類。其中專名包括中國人名、外國譯名、地名等,而非專名包括新詞、簡稱、方言詞語、文言詞語、行業(yè)用詞等。無論是專名還是非專名的未登錄詞都很難處理,因為其數(shù)量龐大,又沒有相應(yīng)的規(guī)范,而且隨著社會生活的變遷,使未登錄詞的數(shù)量大大增加,這又為未登錄詞的識別增加了難度。因此,未登錄詞識別是中文分詞的另一大難點。1.3本文的重點敘述如何使用中文分詞技術(shù)實現(xiàn)對棗信息的劃分,并得出相應(yīng)的屬性。2.技術(shù)支持2.1開發(fā)工具和環(huán)境2.1.1開發(fā)環(huán)境主機(jī)操作系統(tǒng):WINDOWS2007、windowsXP2.1.2開發(fā)軟件JDK1.6級以上版本集成開發(fā)環(huán)境:Myeclipse數(shù)據(jù)庫:SQLSEVVER2008. Web應(yīng)用服務(wù)器:Tomcat6.0級以上版本2.1.3系統(tǒng)環(huán)境配置使用進(jìn)java環(huán)境下開發(fā)程序,必須在電腦中安裝jdk和tomcat,并配置系統(tǒng)環(huán)境變量,一邊程序正常運行。系統(tǒng)所處環(huán)境變量設(shè)置如下:Setjava_homec:\JDK1.6.0SetCatalina_homeD:\Apache-tomcat-6.0.18SetCLASSPATH%java_home%\lib;%java_home%\lib\tools.jar;C:\ProgramFiles(x86)\SetsqlpathMicrosoftSQLServer\jdbcdriver\sqljdbc_3.0\chs\sqljdbc.jar.;%java_home%lib\tool.jar;%java_home%\lib\dt.jar;%catalina_home%\lib\jsp-api.jar;%catalina_home%lib\servlet-api.jar;2.2JSP技術(shù)2.2.1JSP介紹JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。2.2.2JSP技術(shù)開放的技術(shù)1、平臺和服務(wù)器的獨立性JSP技術(shù)只要寫入后編譯一次,之后,可以運行在任何具有支持Java開發(fā)環(huán)境中運行的。2、Jsp開放的原代碼JSP技術(shù)是由SUN應(yīng)用JAVA團(tuán)隊性過程開發(fā)。Apache,Sun和許多其他公司個人公開成立一個強(qiáng)大的咨詢機(jī)構(gòu)以便任何企業(yè)公司和個人都能得到免費的代碼和信息。3、技術(shù)開發(fā)方面JSP和ASP從技術(shù)方面都能使編程人員實現(xiàn)通添加網(wǎng)頁的組件制作交互式的動態(tài)內(nèi)容和應(yīng)用程序的WEB節(jié)點實現(xiàn)超鏈接網(wǎng)頁。而ASP只支持組件對象模型COM,但是JSP能提供的組件都是基于JavabeansTM技術(shù)或JSP標(biāo)簽庫等技術(shù)。2.2.3JSP的技術(shù)優(yōu)勢(1)只要編譯一次,就能在其他環(huán)境中運行。比其他語言優(yōu)秀更。(2)用JSP做的系統(tǒng)的可以再跨平臺運行?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP等語言的局限性是顯而易見的。(3)強(qiáng)大的嵌入性。很多jar文件就可以運行Servlet/JSP,比如servlet-api.jar、catalina.jar等,可以處理很多對象信息比如application對象還有response對象,顯示了一個巨大的適應(yīng)性。(4)開發(fā)工具強(qiáng)大。有Java和tomcat等強(qiáng)大的開發(fā)工具,因為Java開發(fā)工具強(qiáng)大可以看出jsp據(jù)用強(qiáng)大的生命力,強(qiáng)大的后臺語言技術(shù)開發(fā)工具支持。動態(tài)HTML頁動態(tài)HTML頁MySql服務(wù)器Tomcat服務(wù)JSPJavaBean實體類圖圖2-1jsp模式圖2.3Servlet技術(shù)Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨立于平臺和協(xié)議的特性,可以生成動態(tài)的Web頁面。它擔(dān)當(dāng)客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。2.4Tomcat服務(wù)器Tomcat服務(wù)器傳送(serves)頁面使瀏覽器可以瀏覽,然而應(yīng)用程序服務(wù)器提供的是客戶端應(yīng)用程序可以調(diào)用(call)的方法(methods)。確切一點,你可以說:Web服務(wù)器專門處理HTTP請求(request),但是應(yīng)用程序服務(wù)器是通過很多協(xié)議來為應(yīng)用程序提供(serves)商業(yè)邏輯(businesslogic)。Tomcat服務(wù)器可以解析(handles)HTTP協(xié)議。當(dāng)Web服務(wù)器接收到一個HTTP請求(request),會返回一個HTTP響應(yīng)(response),例如送回一個HTML頁面。為了處理一個請求(request),Web服務(wù)器可以響應(yīng)(response)一個靜態(tài)頁面或圖片,進(jìn)行頁面跳轉(zhuǎn)(redirect),或者把動態(tài)響應(yīng)(dynamicresponse)的產(chǎn)生委托(delegate)給一些其它的程序例如CGI腳本,JSP(JavaServerPages)腳本,servlets,ASP(ActiveServerPages)腳本,服務(wù)器端(server-side)JavaScript,或者一些其它的服務(wù)器端(server-side)技術(shù)。無論它們(譯者注:腳本)的目的如何,這些服務(wù)器端(server-side)的程序通常產(chǎn)生一個HTML的響應(yīng)(response)來讓瀏覽器可以瀏覽。Web服務(wù)器的代理模型(delegationmodel)非常簡單。當(dāng)一個請求(request)被送到Web服務(wù)器里來時,它只單純的把請求(request)傳遞給可以很好的處理請求(request)的程序(譯者注:服務(wù)器端腳本)。Web服務(wù)器僅僅提供一個可以執(zhí)行服務(wù)器端(server-side)程序和返回(程序所產(chǎn)生的)響應(yīng)(response)的環(huán)境,而不會超出職能范圍。服務(wù)器端(server-side)程序通常具有事務(wù)處理(transactionprocessing),數(shù)據(jù)庫連接(databaseconnectivity)和消息(messaging)等功能。2.4中文分詞技術(shù)中文分詞技術(shù)屬于自然語言處理技術(shù)范疇,對于一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機(jī)也能理解。其處理過程就是分詞算法?,F(xiàn)有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計的分詞方法。1、基于字符串匹配的分詞方法這種方法又叫做機(jī)械分詞方法,它是按照一定的策略將待分析的漢字串與一個“充分大的”機(jī)器詞典中的詞條進(jìn)行匹配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優(yōu)先匹配的情況,可以分為最大(最長)匹配和最?。ㄗ疃蹋┢ヅ洌话凑帐欠衽c詞性標(biāo)注過程相結(jié)合,又可以分為單純分詞方法和分詞與標(biāo)注相結(jié)合的一體化方法。常用的幾種機(jī)械分詞方法如下:1)正向最大匹配法(由左到右的方向);2)逆向最大匹配法(由右到左的方向);3)最少切分(使每一句中切出的詞數(shù)最?。?。還可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結(jié)合起來構(gòu)成雙向匹配法。由于漢語單字成詞的特點,正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高于正向匹配,遇到的歧義現(xiàn)象也較少。統(tǒng)計結(jié)果表明,單純使用正向最大匹配的錯誤率為1/169,單純使用逆向最大匹配的錯誤率為1/245。但這種精度還遠(yuǎn)遠(yuǎn)不能滿足實際的需要。實際使用的分詞系統(tǒng),都是把機(jī)械分詞作為一種初分手段,還需通過利用各種其它的語言信息來進(jìn)一步提高切分的準(zhǔn)確率。一種方法是改進(jìn)掃描方式,稱為特征掃描或標(biāo)志切分,優(yōu)先在待分析字符串中識別和切分出一些帶有明顯特征的詞,以這些詞作為斷點,可將原字符串分為較小的串再來進(jìn)機(jī)械分詞,從而減少匹配的錯誤率。另一種方法是將分詞和詞類標(biāo)注結(jié)合起來,利用豐富的詞類信息對分詞決策提供幫助,并且在標(biāo)注過程中又反過來對分詞結(jié)果進(jìn)行檢驗、調(diào)整,從而極大地提高切分的準(zhǔn)確率。2、基于理解的分詞方法這種分詞方法是通過讓計算機(jī)模擬人對句子的理解,達(dá)到識別詞的效果。其基本思想就是在分詞的同時進(jìn)行句法、語義分析,利用句法信息和語義信息來處理歧義現(xiàn)象。它通常包括三個部分:分詞子系統(tǒng)、句法語義子系統(tǒng)、總控部分。在總控部分的協(xié)調(diào)下,分詞子系統(tǒng)可以獲得有關(guān)詞、句子等的句法和語義信息來對分詞歧義進(jìn)行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和信息。由于漢語語言知識的籠統(tǒng)、復(fù)雜性,難以將各種語言信息組織成機(jī)器可直接讀取的形式,因此目前基于理解的分詞系統(tǒng)還處在試驗階段。3、基于統(tǒng)計的分詞方法從形式上看,詞是穩(wěn)定的字的組合,因此在上下文中,相鄰的字同時出現(xiàn)的次數(shù)越多,就越有可能構(gòu)成一個詞。因此字與字相鄰共現(xiàn)的頻率或概率能夠較好的反映成詞的可信度??梢詫φZ料中相鄰共現(xiàn)的各個字的組合的頻度進(jìn)行統(tǒng)計,計算它們的互現(xiàn)信息。定義兩個字的互現(xiàn)信息,計算兩個漢字X、Y的相鄰共現(xiàn)概率?;ガF(xiàn)信息體現(xiàn)了漢字之間結(jié)合關(guān)系的緊密程度。當(dāng)緊密程度高于某一個閾值時,便可認(rèn)為此字組可能構(gòu)成了一個詞。這種方法只需對語料中的字組頻度進(jìn)行統(tǒng)計,不需要切分詞典,因而又叫做無詞典分詞法或統(tǒng)計取詞方法。但這種方法也有一定的局限性,會經(jīng)常抽出一些共現(xiàn)頻度高、但并不是詞的常用字組,例如“這一”、“之一”、“有的”、“我的”、“許多的”等,并且對常用詞的識別精度差,時空開銷大。實際應(yīng)用的統(tǒng)計分詞系統(tǒng)都要使用一部基本的分詞詞典(常用詞詞典)進(jìn)行串匹配分詞,同時使用統(tǒng)計方法識別一些新的詞,即將串頻統(tǒng)計和串匹配結(jié)合起來,既發(fā)揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結(jié)合上下文識別生詞、自動消除歧義的優(yōu)點。3.需求分析與概要設(shè)計3.1需求分析3.1.1用戶必須登錄進(jìn)入相關(guān)角色才能使用相關(guān)權(quán)限的功能。詞典庫中必須有一定的類別及屬性詞條,作為初始庫。分詞過程中通過查詢詞典文件來分詞,將分詞結(jié)果與屬性表進(jìn)行匹配以找到相關(guān)的屬性,并顯示在頁面。3.1.功能劃分:詞典庫的初始化。接收前臺中用戶輸入的信息。利用中文分詞算法對信息處理,得到單獨的詞條。對每個詞條進(jìn)行分析,得出對應(yīng)的屬性。將分析結(jié)果反饋給用戶,并擴(kuò)充詞典庫。3.2概要設(shè)計3.2.1系統(tǒng)總體分析總體分析如圖1—4:數(shù)據(jù)庫數(shù)據(jù)庫JavaBeanServletJsp,Javascript,AJAX圖圖3-1系統(tǒng)總分析圖3.2.2系統(tǒng)模塊劃分模塊一,決策樹生成模塊。(由張金磊完成) 負(fù)責(zé)用JDBC橋接數(shù)據(jù)庫,使用ID3算法生成ID3型決策樹,根據(jù)輸入屬性完成品質(zhì)評估,樣本數(shù)據(jù)管理,屬性評估。前臺頁面設(shè)計。數(shù)據(jù)庫表設(shè)計。用戶增刪改查。 模塊二,分詞模塊,顯示模塊。(由臧進(jìn)進(jìn)完成) 負(fù)責(zé)根據(jù)輸入的對于果實的通俗描述語句,分出相應(yīng)屬性詞語,并將新描述詞填入詞庫。 模塊三,數(shù)據(jù)導(dǎo)入模塊,基礎(chǔ)模塊。(由富兆慧完成) 負(fù)責(zé)完成單條數(shù)據(jù)錄入數(shù)據(jù)和用excel表批量導(dǎo)入數(shù)據(jù)庫。3.2.棗品質(zhì)決策系統(tǒng)棗品質(zhì)決策系統(tǒng)基礎(chǔ)模塊決策樹模塊數(shù)據(jù)導(dǎo)入模塊分詞模塊顯示模塊獲取數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲提供相關(guān)接口決策樹生成品質(zhì)評估決策樹評估單條數(shù)據(jù)導(dǎo)入批量數(shù)據(jù)導(dǎo)入語句劃分智能加入新詞接收用戶操作顯示評估信息顯示相關(guān)數(shù)據(jù)圖3-2總體設(shè)計圖3.2.4按各模塊間關(guān)系接收用戶操作接收用戶操作顯示評估信息顯示相關(guān)數(shù)據(jù)語句劃分智能填詞決策樹生成品質(zhì)評估決策樹評估批量數(shù)據(jù)導(dǎo)入單條數(shù)據(jù)導(dǎo)入獲取數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)存儲提供相關(guān)接口顯示模塊分詞模塊決策樹模塊數(shù)據(jù)導(dǎo)入模塊基礎(chǔ)模塊圖3-3各模塊間關(guān)系4.詳細(xì)設(shè)計及實現(xiàn)4.1設(shè)計說明本模塊主要是實現(xiàn)通過短信獲得果農(nóng)描述的棗信息,利用中文分詞技術(shù),對信息進(jìn)行劃分,最終得到對應(yīng)的屬性,并以短信形式返回給果農(nóng),并為系統(tǒng)進(jìn)行棗品質(zhì)估計做準(zhǔn)備。由于時間有限,接受果農(nóng)短信這一功能并未實現(xiàn),而是直接輸入棗信息。最終得到的結(jié)果頁只是展示到網(wǎng)頁上。4.2數(shù)據(jù)結(jié)構(gòu)設(shè)計由于數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)復(fù)雜并且關(guān)系緊密,因此設(shè)計一個合理的數(shù)據(jù)結(jié)構(gòu),用來存儲數(shù)據(jù)庫內(nèi)部表與表、字段與表、字段與字段之間的關(guān)系和信息是很有必要的。4.2.1數(shù)據(jù)庫的選擇在開發(fā)這個系統(tǒng)上,通用性是我們考慮的一個重要因素,因為主要用于服務(wù)器運行web系統(tǒng),所以選擇sql數(shù)據(jù)庫。在匹配上比較適合系統(tǒng)。4.2.2數(shù)據(jù)結(jié)構(gòu)根據(jù)系統(tǒng)面對用戶,數(shù)據(jù)庫設(shè)計以下結(jié)構(gòu):數(shù)據(jù)庫信息結(jié)構(gòu):數(shù)據(jù)庫名稱(fruit)數(shù)據(jù)庫表信息結(jié)構(gòu):1.user表createtableusers( user_idintidentity(1,1)notnullprimarykey, user_namevarchar(16)notnull, passwordvarchar(20)notnull, emailvarchar(40), phonevarchar(20), remarksvarchar(50), limitintnotnullcheck(limit>=0andlimit<=2))用戶數(shù)據(jù)表記錄用戶相關(guān)數(shù)據(jù),用戶名,密碼(md5加密),電子郵件,權(quán)限(管理員0,專家1,用戶2)。2.Oldinfor表:createtableoldinfor( id_1intidentity(1,1)notnullprimarykey, infor_1varchar(200))用戶輸入的原始數(shù)據(jù),編號,內(nèi)容(最多200字符)3.Newinfor表:createtablenewinfor( id_2intidentity(1,1)notnullprimarykey,foreignkey(id_2)referencesoldinfor(id_1), infor_2varchar(200))進(jìn)行劃分后的信息。編號,內(nèi)容(最多200字符),引用外鍵oldinfor表的id_1。4.datainfor表createtabledatainfor(idintidentity(1,1)primarykeynotnull,typevarchar(20),attrubutevarchar(20),valueint)該表的功能相當(dāng)于查詢表,當(dāng)?shù)玫阶址?,與該表匹配,得到相應(yīng)的屬性,類別。表內(nèi)容:編號,類別,屬性,對應(yīng)值。表內(nèi)容如下:圖圖4-1棗屬性圖4.3中文分詞流程4.3.2用戶輸入棗描述信息加載分詞的詞典利用分詞函數(shù)得到字符串將字符串與棗屬性表進(jìn)行匹配根據(jù)匹配結(jié)果得到對應(yīng)的屬性輸出結(jié)果。4.3.2模塊流程登錄登錄否是否注冊否是否注冊注冊是注冊是果實評估果實評估進(jìn)行分詞進(jìn)行分詞查詢詞典查詢詞典否否是否含詞條是否含詞條擴(kuò)充詞典擴(kuò)充詞典是是與屬性表匹配與屬性表匹配輸出結(jié)果輸出結(jié)果圖圖4-2模塊流程圖開始4.3.3算法流程圖開始去當(dāng)前字符串前m個字符作為匹配字段去當(dāng)前字符串前m個字符作為匹配字段·查找字典,進(jìn)行匹配查找字典,進(jìn)行匹配成功?成功?否否匹配字段右去一個詞匹配字段右去一個詞是是否否匹配字段為0?匹配字段為0?是是切分出該字,在字符串中去除m個字符切分出該字,在字符串中去除m個字符否否結(jié)尾結(jié)尾是是結(jié)束結(jié)束圖圖4-3算法流程圖4.4中文分詞實現(xiàn)4.4.1系統(tǒng)設(shè)計模式面向?qū)ο缶幊淌墙鼇沓绦蜷_發(fā)的主流,和以往的面向過程編程相比,它更具有可維護(hù)性和可擴(kuò)展性。無論是從程序設(shè)計還是到程序開發(fā),都展現(xiàn)出了面向過程無法比擬的優(yōu)點。首先,它從人類認(rèn)識世界的角度出發(fā),提出了“萬物皆對象”的思想。其次,對象具有的繼承、封裝和多態(tài)的特征,為程序的開發(fā)和維護(hù)帶來了很大的便利。再次,面向?qū)ο蟮脑O(shè)計重點放在了對象和對象接口設(shè)計上,從而擺脫了以往面向過程的把主要精力放在如何實現(xiàn)的細(xì)節(jié)上。從面向?qū)ο蟮乃枷氤霭l(fā),我們開發(fā)數(shù)據(jù)庫查詢和分析工具的基礎(chǔ)模塊,在開發(fā)基礎(chǔ)模塊之前我們要把握好以下幾點:模塊封裝性要好:一個模塊分解是否成功的標(biāo)志是看該模塊自身的數(shù)據(jù)和細(xì)節(jié)封裝的程度的大小。一個好的模塊,可以把所有的實現(xiàn)細(xì)節(jié)隱藏起來,提供各外部的API與自己的具體實現(xiàn)區(qū)分開來。這樣各個模塊之間就只通過API進(jìn)程通信,而不考慮具體的實現(xiàn)細(xì)節(jié)。模塊擴(kuò)展性要好:系統(tǒng)的最大特點就是要做到通用性,要想實現(xiàn)通用性,這就要求我們?nèi)嬷С炙械臄?shù)據(jù)庫,當(dāng)有新的數(shù)據(jù)庫出現(xiàn)時,我們應(yīng)該做到在不更改源代碼的基礎(chǔ)上實現(xiàn)功能的擴(kuò)展。要求我們嚴(yán)格遵守開閉原則,即對擴(kuò)展開放,對修改關(guān)閉。設(shè)計明確的接口:由于其他模塊的開發(fā)不是有我來完成的,因此,為其他模塊提供一個簡單明了且不變動的接口也是軟件開發(fā)的關(guān)鍵。系統(tǒng)維護(hù)性要好:由于系統(tǒng)開發(fā)出來之后,功能不會全部實現(xiàn),有可能以后需要別人來維護(hù)系統(tǒng),因此系統(tǒng)在開發(fā)過程中要生成完整的文檔,以供系統(tǒng)維護(hù)。中文分詞模塊如下:IKSegmentation主分析器IKSegmentation主分析器量詞處理子單元字母處理子單量詞處理子單元字母處理子單元中文處理子單元中文處理子單元詞典配置管理模塊詞典檢索算法單元詞典配置管理模塊詞典檢索算法單元詞典加載管理詞典加載管理詞典文件詞典文件圖圖4-3中文分詞模塊4.4.2詞典初始化詞典采用Dictionary類的靜態(tài)方法進(jìn)行詞典初始化,只有當(dāng)Dictionary類被實際調(diào)用時,才會開始載入詞典,這將延長首次分詞操作的時間。該方法提供了一個在應(yīng)用加載階段就初始化字典的手段 publicstaticDictionaryinitial(Configurationcfg){ if(singleton==null){ synchronized(Dictionary.class){ if(singleton==null){ singleton=newDictionary(cfg); returnsingleton; }}} returnsingleton;}2.加載主詞典及擴(kuò)展詞典建立一個主詞典實例_MainDict=newDictSegment((char)0);讀取主詞典文件InputStreais=this.getClass().getClassLoader().getResourceAsStream(cfg.getMainDictionary());加載擴(kuò)展詞典this.loadExtDict();3.詞典樹分段(表示詞典樹的一個分枝)Hitmatch(char[]charArray,intbegin,intlength,HitsearchHit){ if(searchHit==null){ searchHit=newHit();//如果hit為空,新建 searchHit.setBegin(begin); //設(shè)置hit的起始文本位置 }else{ searchHit.setUnmatch();//否則要將HIT狀態(tài)重置 } searchHit.setEnd(begin); //設(shè)置hit的當(dāng)前處理位置 CharacterkeyChar=newCharacter(charArray[begin]); DictSegmentds=null; //引用實例變量為本地變量,避免查詢時遇到更新的同步問題 DictSegment[]segmentArray=this.childrenArray; Map<Character,DictSegment>segmentMap=this.childrenMap; //STEP1在節(jié)點中查找keyChar對應(yīng)的DictSegment if(segmentArray!=null){ //在數(shù)組中查找 DictSegmentkeySegment=newDictSegment(keyChar); intposition=Arrays.binarySearch(segmentArray,0,this.storeSize,keySegment); if(position>=0){ ds=segmentArray[position]; } }elseif(segmentMap!=null){ //在map中查找 ds=(DictSegment)segmentMap.get(keyChar); } //STEP2找到DictSegment,判斷詞的匹配狀態(tài),是否繼續(xù)遞歸,還是返回結(jié)果 if(ds!=null){ if(length>1){ //詞未匹配完,繼續(xù)往下搜索 returnds.match(charArray,begin+1,length-1,searchHit); }elseif(length==1){ //搜索最后一個char if(ds.nodeState==1){ //添加HIT狀態(tài)為完全匹配 searchHit.setMatch(); } if(ds.hasNextNode()){ //添加HIT狀態(tài)為前綴匹配 searchHit.setPrefix(); //記錄當(dāng)前位置的DictSegment searchHit.setMatchedDictSegment(ds); } returnsearchHit; } } //STEP3沒有找到DictSegment,將HIT設(shè)置為不匹配 returnsearchHit; }4.hit一次詞典匹配的命中Hit不匹配privatestaticfinalintUNMATCH=0x00000000;Hit完全匹配privatestaticfinalintMATCH=0x00000001;Hit前綴匹配privatestaticfinalintPREFIX=0x00000010;4.4.3分詞設(shè)計1.初始化初始化詞典單例Dictionary.initial(this.cfg);初始化分詞上下文this.context=newAnalyzeContext(this.cfg);加載子分詞器this.segmenters=this.loadSegmenters();2.分詞,獲取下一個詞元 *@returnLexeme詞元對象 publicsynchronizedLexemenext()throwsIOException{ Lexemel=null; while((l=context.getNextLexeme())==null){從reader中讀取數(shù)據(jù),填充buffer,如果reader是分次讀入buffer的,那么buffer要進(jìn)行移位處理,移位處理上次讀入的但未處理的數(shù)據(jù) intavailable=context.fillBuffer(this.input); if(available<=0){ context.reset();returnnull;//reader已經(jīng)讀完 }else{ context.initCursor();//初始化指針 do{ //遍歷子分詞器 for(ISegmentersegmenter:segmenters){ segmenter.analyze(context); } //字符緩沖區(qū)接近讀完,需要讀入新的字符 if(context.needRefillBuffer()){ break; } }while(context.moveCursor());//向前移動指針 //重置子分詞器,為下輪循環(huán)進(jìn)行初始化 for(ISegmentersegmenter:segmenters){segmenter.reset(); } } //將分詞結(jié)果輸出到結(jié)果集,并處理未切分的單個CJK字符 context.outputToResult(); context.markBufferOffset(); //記錄本次分詞的緩沖區(qū)位移 } returnl;}3.中文子分詞 publicvoidanalyze(AnalyzeContextcontext){ if(CharacterUtil.CHAR_USELESS!=context.getCurrentCharType()){ if(!this.tmpHits.isEmpty()){//優(yōu)先處理tmpHits中的hit //處理詞段隊列 Hit[]tmpArray=this.tmpHits.toArray(newHit[this.tmpHits.size()]); for(Hithit:tmpArray){ hit=Dictionary.getSingleton().matchWithHit(context.getSegmentBuff(),context.getCursor(),hit); if(hit.isMatch()){ //輸出當(dāng)前的詞LexemenewLexeme=newLexeme(context.getBufferOffset(),hit.getBegin(),context.getCursor()-hit.getBegin()+1,Lexeme.TYPE_CNWORD); context.addLexeme(newLexeme); if(!hit.isPrefix()){//不是詞前綴,hit不需要繼續(xù)匹配,移除 this.tmpHits.remove(hit);} }elseif(hit.isUnmatch()){ this.tmpHits.remove(hit);//hit不是詞,移除}}} //再對當(dāng)前指針位置的字符進(jìn)行單字匹配HitsingleCharHit=Dictionary.getSingleton().matchInMainDict(context.getSegmentBuff(),context.getCursor(),1); if(singleCharHit.isMatch()){//首字成詞 //輸出當(dāng)前的詞 LexemenewLexeme=newLexeme(context.getBufferOffset(),context.getCursor(),1,Lexeme.TYPE_CNWORD); context.addLexeme(newLexeme); if(singleCharHit.isPrefix

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論