【正文】
//輸入文件的長度 char scrbuf[MD]。 //查找成功 else if(strcmp(tt[mid],aidkey)0) high=mid1。 } 屏幕分詞函數(shù): void scrposcutword(){ int i,j,k。rp=0。 break。i=0。 rp++。 bp=bp+k。 mask=1。 break。 } buffer[i]=0。 //所以要減去回車的次數(shù) while(1) { c=fgetc(fp1)。 //將文件指針定位在文件開始處 j=fread(source,1,filelen,fp1)。 六、結(jié)論 本文對漢語分詞技術(shù)進(jìn)行了詳細(xì)的介紹,并對一些方面進(jìn)行了分析,最后嘗試實(shí)現(xiàn)正向最大匹配算法,最終設(shè)計出了采用正向最大匹配算法的程序, 在測試中,對于此程序的分詞速度和分詞結(jié)果還是比較滿意的,但是此程序 也存在著很大的 缺陷,例如對于歧義字段和未登錄詞無法有效的識別和切分,分詞的效率和準(zhǔn)確性受到詞庫容量的約束等。 內(nèi)部資料 , 請勿外傳! XuyUP2kNXpRWXm Aamp。 gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。 gTXRm 6X4NGpP$vSTTamp。ksv*3t nGK8!z89Am YWpazadNuKNamp。gTXRm 6X4NGpP$vSTTamp。gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。ksv*3。qYpEh5pDx2zVkumamp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。MuWFA5ux^Gj qv^$UE9wEwZQcUE% amp。849Gx^Gj qv^$UE9wEwZQcUE%amp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。 MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。 849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5ux^Gjqv^$UE9wEwZQcUE% amp。 849Gx^Gj qv^$UE9wEwZQcUE%amp。由于個人能力有限,論文中難免出現(xiàn)一些錯誤,忘大家給予指正。 } 到此,程序的分詞主程序部分就介紹完了,程序主面板的設(shè)計在此就不一一列出了,下邊對程序進(jìn)行分詞測試。 if(c==EOF) break。 } 33 以上的是屏幕分詞的主程序部分,文件分詞主程序 部分與其基本相同,現(xiàn)只列出文件分詞初始化函數(shù): int preposcutword() { int i,j。 strcat(scrres,buffer)。} else{ buffer[1]=0。 } else //如果查不到 { A: if(i==1){ //若還剩 2個字節(jié),則判斷第一個字節(jié),若大于 0, 說明不是漢字,輸出一個字節(jié) buffer[2]=0。 } strcat(scrres,buffer)。 j=1。 ch[1]=0。 sb=bp。 //為 1標(biāo)示已經(jīng)掃描完待分析文件,反之為 0 int mask=0。 //修改查找區(qū)間下界 } return 1。 //屏幕文件結(jié)果區(qū) 28 最大正向匹配算法是離不開詞典的,分詞時需要對詞典內(nèi)的詞進(jìn)行比較,定義比較函數(shù)為: int pare(const void* a,const void* b) {return strcmp((char*)a,(char*)b)。 圖 4 文件分詞對話框 27 圖 5 文件分詞成功提示對話框 編輯選項中 包含了一些可以對文檔進(jìn)行簡單編輯操作的選項,如圖 6所示。其中分詞功能分為屏幕分詞和文件分詞兩種方式。假設(shè)詞典中最長的詞有 i個漢字字符,先對輸入文本長度進(jìn)行判定,若輸入文本長度小于或等于 i,則 只在最大詞長范圍內(nèi)進(jìn)行處理就行了,若輸入文本長度大于 i, 則用輸入文本的當(dāng)前字符串中的前 i個字作為匹配字段,與字典進(jìn)行匹配,若字典中存在這樣一個 i個字的詞, 則匹配字段就被切分出來。 22 圖 2 減字分詞法過程 上圖就是減字法的分詞過程,為了說明該方法是如何分詞的,我們利用減字法進(jìn)行最大匹配分詞,之所以稱為最大匹配,就是要求每一句的切分結(jié)果中詞組的總數(shù)最少。 (一) 正向 最大匹配算法 在第三章中對現(xiàn)今的中文分詞算法進(jìn)行了介紹,其中介紹了基于字符串匹配的分詞算法,又叫機(jī)械分詞算法,機(jī)械分詞算法里又包含了一 種正向最大匹配算法,正向最大匹配算法里又有兩個分支: 增字匹配法和減字匹配法。通過首字散列表的哈希定位和詞索引表很容易確定指定詞在詞典正文中的可能位置 范圍,進(jìn)而在詞典正文中通過整詞二分進(jìn)行定位。鍵樹的深度 h 則 19 取決于關(guān)鍵字中字符或數(shù)位的個數(shù)。以首字 Hash 詞典機(jī)制的原理為例,據(jù)漢字機(jī)內(nèi)碼的編碼規(guī)律可知,我們就可以通過一對一映射的 Hash 函數(shù)實(shí)現(xiàn)詞首字的快速查找。 那么,在實(shí)際的應(yīng)用中,我們就可以把 三種分詞方法全部利用上,以求達(dá)到最好的效果。因為對于搜索引擎來說,在查詢切分和文檔切分時采用相同的分詞算法,如果有一些文檔切分是分詞是錯誤,在查詢切分時也產(chǎn)生相同的切分錯誤。對于上面這個例子,我們采取組織兩個詞典的措施:一個為專業(yè)詞典,一個為普通詞典。 混合分詞 對于實(shí)際應(yīng)用中的中文信息檢索系統(tǒng)來說,當(dāng)弄不清楚使用哪種分詞算法更好的話,可以試著合并使用多種方法,混合分詞就是 一種簡單且容易實(shí)現(xiàn)的方法,也是大型檢索系統(tǒng)中常用的一種方法,使用混合分詞方法能夠涵蓋更多的詞匯?;ガF(xiàn)信息體現(xiàn)了漢字之間結(jié)合關(guān)系的緊密程度。其基本思想就是在分詞的同時進(jìn)行句法、語義分析,利用句法信息和語義信息來處理歧義現(xiàn)象。可以把機(jī)械分詞作為初步的處理手段,然后再通過進(jìn)一步工作提高結(jié)果的正確率。 減字法的流程為:首先讀入一句句子,取出標(biāo)點(diǎn)符號,這樣句子就被分成相應(yīng)的若干段,然后對每一段進(jìn)行詞典的匹配,如果沒有匹配成功就 13 從段末尾減去一個字,再進(jìn)行匹配,重復(fù)上述過程,直 到匹配上某一個單詞。 三、基本中文分詞算法 自從 1983 年,背景航空航天大學(xué)實(shí)現(xiàn)了我國第一個實(shí)用性的自動分詞系統(tǒng)到現(xiàn)在,國內(nèi)外的研究者在中文分詞領(lǐng)域進(jìn)行了廣泛的研究,提出了許多有效的算法。 例: 挨批評 挨 /批評(√) 挨批 /評( X) 對于交集型歧義字段,真實(shí)文本中偽歧義現(xiàn)象遠(yuǎn)多于真歧義現(xiàn)象。 ( 2)組合型歧義 對于漢字串 AB, A, B, AB 皆可獨(dú)立成詞。 上述的兩個實(shí)例,前者把不是詞的幾個字放在了一起組成了“詞 ” ,而后者把是詞的卻切分開了。 ④非詞語素問題:現(xiàn)代的書面漢語并非純粹的“現(xiàn)代漢語”,其中夾雜著不少文言成分,如“為民除害”、“以逸待勞”、“幫困濟(jì)窮”等等。而產(chǎn)生如此定義涉及多個方面 [3]: ①核心詞典問題:在進(jìn)行分詞時需要有一個核心 (通用的、與領(lǐng)域無關(guān)的 )詞典,即普通詞典,凡在該詞典中存在的詞,在分詞時就應(yīng)該切分出來。當(dāng)然,就當(dāng)今的現(xiàn)狀來說,完全的通用性很難達(dá)到。如果分詞產(chǎn)生錯誤則會在最后的統(tǒng)計結(jié)果中累積起不可忽視的“垃圾”,從而給上層的應(yīng)用系統(tǒng)帶來相當(dāng)嚴(yán)重的影響。) 變聲 —— 如:好酒( hǎojiuh225。 現(xiàn)在的翻譯技術(shù),無論是在線的還是單機(jī)的,在翻譯句子或段落的時候總會讓我們不知所措,語法錯誤明顯,詞不達(dá)意等等。如 Google、 Baidu、 Yahoo 等檢索工具。由于中文詞匯中間是有分隔符的,所以對中文詞組的正確識別就顯得很重要。而中文中,是以字為基本書寫單位,只有段與段、句語句之間有分隔符,而詞匯之間沒有分隔符。 第六章 結(jié)論。 第二章 中文分詞簡介。本文的主要研究內(nèi)容為: (1)分析了當(dāng)前中文分詞的研究背景,介紹了中文分詞的研究意義。這就要求信息處理技術(shù)必須跟上信息發(fā)展的速度,在速度與性能方面具備更高的指標(biāo)。我們知道,在英文文本中,單詞之間是以空格作為自然分界符的。 特此聲明 畢業(yè)論文(設(shè)計)作者簽名: 年 月 日 I 漢語分詞技術(shù)初探 摘 要 所謂漢語分詞,就是將中文語句中的詞匯切分出來的過程。 本畢業(yè)論文(設(shè)計)成果歸蘭州商學(xué)院所有。 [關(guān)鍵詞 ]中文分詞 最大匹配 分詞詞典 自然語言處理 II ABSTRACT Chinese word segmentation, is to cut the sentence in the Vocabulary sub— out process. Since the writing habits of Chinese, Chinese sentence symbol between words is implied. the English words have the spaces between the words, So there is easy to separate. The Chinese word for each sentence, there is no space between words, and therefore must be some kind of technology to separate sentence. Chinese sentence segmentation algorithm from the 20th century, since the 80’S has been a research focus, due to the plexity of the Chinese language has been in a stage of development. Segmentation of natural language processing technology as the basic link, but also one of the key links, and its direct impact on the quality of the subsequent processing steps results. Chinese word segmentation the first step in natural language processing, and its importance can not be ignored. [Key Words] Chinese Word Segmentation, Maximum match, Segmentation Dictionary, Chinese Information Processing III 目 錄 一、 引言 ............................................................................................................................ 1 二、中文分詞簡介 ............................................................................................................ 3 (一)中文分詞的概念 ................................................................................................... 3 什么是 中文分詞 ................................................................................................... 3 中文分詞的應(yīng)用 ................................................................................................... 4 (二)中文分詞的目標(biāo) ................................................................................................... 5 準(zhǔn)確性 ................................................................................................................... 6 運(yùn)行效率 ....