欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自然語言語法分析器及其方法

文檔序號:6438079閱讀:427來源:國知局
專利名稱:一種自然語言語法分析器及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及自然語言的語法分析,特別是涉及一種能夠降低復(fù)雜度提高準確率的自然語言語法分析器及其方法。
背景技術(shù)
傳統(tǒng)的自然語言語法分析器的基本工作原理是將特定詞性的單詞依照句法規(guī)則逐步合并為最終的語法分析樹。
生成的語法分析樹的具體的做法是以一個葉子節(jié)點代表一個單詞的一個詞性;幾個連續(xù)的葉子節(jié)點依照句法規(guī)則生成一個中間節(jié)點;幾個連續(xù)的葉子節(jié)點或者中間節(jié)點依照句法規(guī)則生成一個更高層次的中間節(jié)點。重復(fù)直至最后一個中間節(jié)點包括了輸入句子的所有單詞。一個完整的句子結(jié)構(gòu)就生成了。
傳統(tǒng)的自然語言語法分析器使用合并規(guī)則時允許重復(fù)使用。
典型的語法分析器的數(shù)據(jù)結(jié)構(gòu)使用一個節(jié)點表保存已經(jīng)生成的節(jié)點。對該節(jié)點表中的節(jié)點使用語法規(guī)則。
語法分析時采用窮盡搜索法。搜索過程中,既可以使用傳統(tǒng)的句法規(guī)則,也可以結(jié)合啟發(fā)式或者統(tǒng)計式規(guī)則使最可能正確的結(jié)果最先出現(xiàn)。語法分析結(jié)束條件一種情況是一個或者幾個完整的語法分析樹已經(jīng)生成了;另一種情況是沒有生成任何完整的語法分析樹,那么就拼湊出最可能的完整的語法分析樹。
這種窮盡搜索法的致命缺點是復(fù)雜度隨單詞數(shù)目呈指數(shù)級增長,直至系統(tǒng)資源耗盡而中斷。
當然,語法分析過程中還可以利用優(yōu)先參數(shù)進行裁減。對于語法分析過程中的每一個狀態(tài),節(jié)點表中有特定數(shù)目的節(jié)點。應(yīng)用所有可行的句法規(guī)則后,會相應(yīng)生成一些新的中間接點。但不是將所有這些新的中間接點直接加入到節(jié)點表中,而是通過一定的手段從中選擇一個最可能是正確的新的中間節(jié)點加入到節(jié)點表中。這樣就不是窮盡搜索了。進行裁減時,其數(shù)據(jù)結(jié)構(gòu)就是在節(jié)點表之外再附加一個候選表。節(jié)點表中的節(jié)點應(yīng)用句法規(guī)則后生成的新節(jié)點首先放進候選表中。候選表中的所有節(jié)點都被賦予一個優(yōu)先參數(shù)來描述它是正確的可能性。最終加入節(jié)點表中的候選節(jié)點就是該候選表中優(yōu)先參數(shù)值最大的節(jié)點。
裁減法也會帶來下面兩個問題一個就是復(fù)雜度隨單詞數(shù)目呈指數(shù)級增長,導(dǎo)致可能的語法分析樹太多;另一個就是如何來確定正確的語法分析樹。
綜上,如果用裁減法,很多可能的語法分析樹都被裁減掉了,根本就沒有生成最終的語法分析樹;如果用傳統(tǒng)的窮盡搜索法,盡管理論上可以產(chǎn)生包括正確語法分析樹在內(nèi)的所有的語法分析樹,但是無法保證正確的語法分析樹是第一個生成的。由于前面所述的復(fù)雜度隨單詞數(shù)目呈指數(shù)級增長的難題,程序在生成第一個完整的語法分析樹之后,再繼續(xù)分析時只會使有限數(shù)目的新的節(jié)點加入到節(jié)點表中。所以如果第一個生成的完整的語法分析樹不正確的話,就無法保證在剩下的有限步驟內(nèi)找到正確的語法分析樹。
所以在自然語言語法分析的領(lǐng)域中,迫切需要能提出一個新的技術(shù)方案,以保證語法分析過程不受計算機有限資源的限制,從而保證正確的語法分析樹一定能生成出來。與此同時能夠有效的消除復(fù)雜度指數(shù)級增長的難題。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提出一種自然語言語法分析器及其方法,以保證語法分析過程不受計算機有限資源的限制,從而保證能生成出正確的語法分析樹,并且能夠有效地消除復(fù)雜度指數(shù)級增長的難題。
本發(fā)明所述自然語言語法分析器,包括輸入模塊,用于存放輸入的句子,并通過查找數(shù)據(jù)庫詞典,將輸入的句子按照單詞的各種可能的詞性分解成一個個子表;例如子表1,子表2,......,子表N;數(shù)據(jù)庫,用于存放詞典資源,為運算處理提供詞性比較,確定每個單詞在詞典中所有可能的詞性;子表控制模塊,用于子表的保存、調(diào)用、排序、查找、索引、子表狀態(tài)保存以及計算機系統(tǒng)資源調(diào)用和分配等控制,將需要處理的子表送到運算處理模塊進行分析運算;運算處理模塊,包括一個規(guī)則庫,用于對當前的某一個子表通過與規(guī)則庫的規(guī)則進行比較運算,根據(jù)運算結(jié)果作出相應(yīng)處理。如果發(fā)現(xiàn)了明顯不可能的語言現(xiàn)象,就將該子表丟棄。
本發(fā)明所述一種自然語言語法分析方法,包括如下步驟第一步、輸入句子,查找每個單詞在詞典的所有詞性,生成子表列表,所述子表列表中每個子表包含輸入句子的所有單詞,且每個單詞只有一個詞性;第二步、子表控制模塊判斷子表列表中是否還有尚未進行運算處理的子表,如果沒有,轉(zhuǎn)第五步,如果有,繼續(xù);第三步、將該子表放入運算處理模塊,與規(guī)則庫比較進行運算處理,既利用排除規(guī)則將肯定錯誤的子表裁減掉,也利用生成規(guī)則合并出新的中間節(jié)點;第四步、判斷處理過的子表是否可以排除,如果能排除,則返回到第二步;如果不能排除,則將該子表更新并做好標記后,放回到第一步中的子表列表的尾部;第五步、結(jié)束。
采用本發(fā)明,可以實現(xiàn)在現(xiàn)有計算機性能的前提下,使語法分析運算過程不受計算機有限資源的限制,保證能夠正確生成語法分析樹,同時能夠有效消除復(fù)雜度指數(shù)級增長的難題,從而提高準確度和實用性。


圖1為本發(fā)明自然語言分析器的結(jié)構(gòu)示意圖;圖2為本發(fā)明所述語法分析方法流程示意圖。
圖3為本發(fā)明所述語法分析方法的具體例子示意圖。
具體實施例方式
圖1給出了本發(fā)明自然語言分析器的模塊結(jié)構(gòu),包括數(shù)據(jù)庫10、輸入模塊20、子表控制模塊30和運算處理模塊40。
數(shù)據(jù)庫10數(shù)據(jù)庫的內(nèi)容為各種詞典資源,存放于硬盤中,在程序運行時可以將其中的一部分調(diào)入內(nèi)存。其中的句法詞典11為處理模塊提供詞性查找功能,用來確定每個單詞在詞典中所有可能的詞性。
輸入模塊20該模塊位于內(nèi)存中,包含輸入緩存區(qū)21和子表展開程序22。首先將待處理的輸入句子暫時存放在輸入緩存區(qū)21中;然后子表展開程序22查詢數(shù)據(jù)庫10之中的句法詞典11獲取每個單詞的所有可能的詞性;最后子表展開程序22將輸入句子分解成一個個子表。每個子表交給子表控制模塊30保存。
子表控制模塊30包括位于內(nèi)存中的子表控制程序31和位于存儲器中的子表文件32;子表控制程序31用于子表的保存、調(diào)用、排序、查找、索引、子表狀態(tài)保存以及計算機系統(tǒng)資源調(diào)用和分配等控制,將結(jié)果保存子表文件32中。
運算處理模塊40該模塊位于內(nèi)存中,包括規(guī)則庫、分析控制程序41和當前子表分析單元42。分析控制程序41將還需要進行語法分析的子表從子表控制模塊中取出來放入當前子表分析單元42之中,然后將當前子表的句子內(nèi)容與規(guī)則庫的規(guī)則進行比較。如果發(fā)現(xiàn)了明顯錯誤的語言現(xiàn)象,就將該子表丟棄;否則,就按照生成規(guī)則進行分析,然后將分析結(jié)果及其狀態(tài)標志放回子表控制模塊30。
圖2是本發(fā)明自然語言翻譯方法的流程圖。
200開始接受所輸入句子,就可以進行語法分析運算了;210查找詞典,確定每個單詞在詞典中的所有詞性;220按照每個子表包含輸入句子的所有單詞而且每個單詞只有一個詞性的規(guī)則生成子表列表。其中子表的存儲通過調(diào)用子表控制模塊來實現(xiàn),最終的結(jié)果保存在子表列表中。
230判斷子表列表中是否還有需要進行語法分析運算的子表。如果沒有,就進入280,程序結(jié)束;如果有,就繼續(xù);240從子表列表中取出一個需要進行語法分析運算的子表,放入當前子表處理單元中。
250對于當前子表處理單元中的子表,判斷此時該表是否完全滿足了某種排除規(guī)則的所有條件而需要排除掉。如果需要排除掉,就將當前子表處理單元清空,返回230;如果不需要排除掉,就繼續(xù);260判斷是否可以將該子表的節(jié)點合并。
如果能夠合并節(jié)點,則將合并節(jié)點后的子表送回到220中的子表列表里。此時,也可以對合并處理過的子表的屬性作出標記。例如,可以針對其應(yīng)用過的生成規(guī)則,作出相應(yīng)的標記。這樣,有多少種可應(yīng)用的生成規(guī)則,就可以對應(yīng)多少種標記,從而提高了下一輪的分析運算的速度。本發(fā)明稱這種做法為“廣度分析”,意思是先對每一個子表廣泛地進行分析運算,然后,在此基礎(chǔ)上再反復(fù)進行下一輪。當然,本發(fā)明還可以采用“深度分析”的做法,這就是如果能夠合并節(jié)點,則將合并節(jié)點后的子表再送回到240中的當前子表處理單元里,再次進行邏輯運算。這樣,對該子表反復(fù)進行多次排除、合并,直至不能再合并了才轉(zhuǎn)270。
如果判斷的結(jié)果是該子表不能進行合并了,則直接轉(zhuǎn)270;270根據(jù)運算結(jié)果對該子表進行更新并作出“結(jié)束”標記;將更新的子表送到子表列表的尾部;清空當前子表處理單元。
280結(jié)束。
從以上的本發(fā)明所述方法可以總結(jié)其具有如下的特點排除規(guī)則既可以直接應(yīng)用于代表單詞的葉子節(jié)點,也可以應(yīng)用于代表短語或者從句等等的中間節(jié)點。
每一輪完整的動作是先將絕對不可能的情形通過排除規(guī)則裁減掉,后按照生成規(guī)則合并為中間節(jié)點,簡單地講就是先裁減后生成;而傳統(tǒng)的語法分析使用優(yōu)先參數(shù)進行裁減時,每一輪完整的動作是先按照生成規(guī)則合并為中間節(jié)點,然后對中間節(jié)點計算優(yōu)先參數(shù),再將優(yōu)先參數(shù)值小的中間節(jié)點裁減掉,簡單地講就是先生成后裁減。
本發(fā)明語法分析既包括應(yīng)用排除規(guī)則的丟棄過程,也包括傳統(tǒng)的應(yīng)用生成規(guī)則的合并過程。這兩者是交錯重復(fù)進行的一輪丟棄過程,接著一輪合并過程,再一輪丟棄過程,再接著一輪合并過程......。這個交錯分析過程的結(jié)束條件是再也沒有任何生成規(guī)則可以使得節(jié)點繼續(xù)合并了。
值得一提的是,本發(fā)明還可以從信息理論角度來理解。信息理論將信息分成“絕對正確、可能正確、絕對錯誤”三種情況。傳統(tǒng)的語法分析方法將“絕對正確,可能正確,絕對錯誤”這三種信息全部通過優(yōu)先參數(shù)的途徑來使用,難免魚目混珠;由于優(yōu)先參數(shù)方法本身從理論上講必然存在著一定程度的信息丟失,所以傳統(tǒng)方法在使用絕對錯誤信息的過程中必然存在一定程度上的信息丟失,也就是沒有充分利用絕對錯誤信息。而本方法對于絕對錯誤的信息直接使用,發(fā)現(xiàn)了具有絕對錯誤的子表就丟棄,就沒有任何信息丟失。另外,傳統(tǒng)的語法分析主要是利用生成規(guī)則,極少使用排除規(guī)則;而本發(fā)明方法在充分利用了排除規(guī)則的基礎(chǔ)上,又完全繼承了傳統(tǒng)的生成規(guī)則,所以總體的有價值信息比傳統(tǒng)方法豐富得多。
下面結(jié)合圖1和圖2進一步詳細說明本發(fā)明。
如背景技術(shù)所介紹的現(xiàn)有技術(shù)的語法分析運算方法,如果終結(jié)條件許可的話,可以產(chǎn)生所有的語法分析運算樹,但是也會產(chǎn)生錯誤的語法分析運算樹。通常情況下,錯誤的分析結(jié)果在正確結(jié)果之前產(chǎn)生。更糟糕的是,在滿足終結(jié)條件以前根本就不會產(chǎn)生正確的結(jié)果。
本發(fā)明為了克服上述現(xiàn)有技術(shù)的缺點,其基本解決思路提出了先按句法特性盡可能多地展開為子表,然后再用規(guī)則庫的規(guī)則對子表進行運算處理,包括通過排除規(guī)則排除錯誤子表。
假設(shè)一個句子有n個單詞,其中的第i個單詞有Ni種詞性(名詞/動詞/形容詞等等),那么整個句子所有詞性的組合總共為Tn=N1·N2·N3·...·Nn.
結(jié)合圖1和圖2,本發(fā)明的做法是首先將所有的組合全部展開為Tn個子表,使得每個子表中的每個單詞都只有一種詞性。
然后依次對每一個子表進行語法分析運算。由于每一個子表中的每個單詞只有一個確定的詞性,所以對一個子表的語法分析運算要簡單得多。
在對每個子表進行傳統(tǒng)的語法分析運算的同時,也要利用一系列的排除規(guī)則將肯定錯誤的子表裁減掉。
在生成子表的過程中,由于生成的子表數(shù)量大,本發(fā)明所述方法在實現(xiàn)時需要一個專門的子表控制模塊30。通過所述子表控制模塊30的控制、調(diào)度和管理,保證語法分析運算過程不受計算機有限資源的限制。
例如內(nèi)存中放不下時自動完成CPU、內(nèi)存和磁盤文件之間的交換。假設(shè)一個句子生成總共需要生成200個子表,而計算機的內(nèi)存中無法同時放下100個子表。句子從開始生成的第1個,第2個,......,第99個子表都放在內(nèi)存中,這時子表控制模塊就暫時停止從句子繼續(xù)生成新的子表的過程;將內(nèi)存中的第1至第99個子表保存到硬盤文件中;將內(nèi)存空間釋放出來;重新啟動從句子繼續(xù)生成新的子表的過程;這樣第100個至第198個子表存放在內(nèi)存中;子表控制模塊又一次暫時停止從句子繼續(xù)生成新的子表的過程;將內(nèi)存中的第100至第198個子表保存到硬盤文件中;將內(nèi)存空間釋放出來;重新啟動從句子繼續(xù)生成新的子表的過程......。了解計算機技術(shù)的人士都知道,具體的內(nèi)存與硬盤文件的交換技術(shù)可以分為單機環(huán)境的文本數(shù)據(jù)庫,客戶機-服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫,基于網(wǎng)絡(luò)結(jié)構(gòu)的分布式數(shù)據(jù)庫等等。
本發(fā)明中,排除規(guī)則的使用時機既可以在一個子表完全生成以后,也可以在子表的生成過程之中利用已經(jīng)生成的部分單詞的信息進行排除。
例如句子“I know that he likes football.”由于英語語法中不可能出現(xiàn)一個形容詞緊靠在一個人稱代詞前面,所以可以得出一個句法排除規(guī)則“形容詞+人稱代詞”。
一種方式是首先將整個句子所有的子表都展開。那么就得到兩個子表子表1=“I(人稱代詞)know(動詞)that(形容詞)he(人稱代詞)likes(及物動詞)football(名詞).”;子表2=“I(人稱代詞)know(動詞)that(連接代詞)he(人稱代詞)likes(及物動詞)football.(名詞).”;然后依次對兩個子表使用排除規(guī)則進行分析。對于子表1,“that(形容詞)he(人稱代詞)”就滿足句法排除規(guī)則“形容詞+人稱代詞”,所以丟棄該子表;對于子表2,沒有滿足條件的排除規(guī)則,改子表2最后分析出正確的語法分析樹。
另外一種方式是在子表的生成過程之中邊生成邊進行排除分析。當句子生成到中間狀態(tài)“I(人稱代詞)know(動詞)that(形容詞)he(人稱代詞)likes football.”時,已經(jīng)完成了左邊4個單詞的詞性分配,右邊兩個單詞的詞性還沒有分配出來。這時進行排除分析,發(fā)現(xiàn)已經(jīng)分配了詞性的句子局部“I(人稱代詞)know(動詞)that(形容詞)he(人稱代詞)”之中的“that(形容詞)he(人稱代詞)”滿足句法排除規(guī)則“形容詞+人稱代詞”,所以丟棄該局部子表。也就是說,不用再考慮右邊兩個還沒有分配詞性的單詞,就直接丟棄。由此很容易就能明白,如果該句子后面還有由多個單詞組成的從句,僅僅依據(jù)左邊4個單詞分配的詞性就決定了后面所有可能的子表都必然被丟棄,這樣最后生成的子表就比先將子表完全生成然后再分析的子表總數(shù)要少很多。
眾所周知,類似的句法排除規(guī)則還有很多。尤其對于長句子,運用在子表的生成過程之中進行排除分析的方法,能夠有效地消除語法分析運算隨單詞數(shù)目呈指數(shù)級增長的復(fù)雜度。
圖3是本發(fā)明的一個具體例子,所輸入的例句為“they considered him afool”,通過該例句可以進一步說明本發(fā)明所具有的獨特優(yōu)點。
如圖3-1所示,輸入模塊20首先將輸入的句子“they considered him a fool”暫時存放在輸入緩存器21中,然后對句子的每個單詞查找數(shù)據(jù)庫10中的句法詞典11,確定每個單詞在句法詞典11中所有可能的詞性。其中,只有“fool”這個單詞的詞性有兩種,即名詞或者動詞。
隨后,圖3-2中,輸入模塊20將整個句子所有的單詞詞性組合展開為一個個的子表,得到兩個子表子表1和子表2;保證每個子表中的每個單詞只有一個詞性。
子表1為they(名詞)considered(動詞)him(名詞)a(冠詞)fool(名詞);子表2為they(名詞)considered(動詞)him(名詞)a(冠詞)fool(動詞);所有展開的子表通過子表控制模塊30進行管理,它具體負責子表的保存、調(diào)用、排序、查找、索引、子表狀態(tài)參數(shù)保存以及計算機系統(tǒng)資源調(diào)用和分配等等控制功能。從圖3-2中可以看出,剛剛完成分表操作的時候,子表控制模塊30中有兩個子表子表1和子表2,它們的狀態(tài)屬性都為初始態(tài)。而當前子表處理單元42中為空。
從圖3-3開始,就開始進入循環(huán)過程。每次將子表控制模塊30中的第一個需要進行語法分析的子表取出來放進當前子表處理單元42中進行語法分析運算。
首先,將子表控制模塊30中的子表1取出來,放進當前子表處理單元42中進行語法分析運算。這樣子表控制模塊30中就只剩下一個子表2,其狀態(tài)為初始態(tài)。當前子表處理單元對子表1進行語法分析,最終得到了一個完整的語法分析樹,即名詞短語+動詞短語。
圖3-4表示的是當前子表處理單元42中的語法分析運算結(jié)束后,將分析后的子表1的狀態(tài)標注為結(jié)束,再添加到子表控制模塊30的尾部。這樣當前子表處理單元42的狀態(tài)又變?yōu)榭?,而子表控制模塊中有兩個子表,一個是子表2,其狀態(tài)為初始態(tài);另一個是子表1,其狀態(tài)為結(jié)束態(tài)。
圖3-5中,將子表控制模塊30中的當前第一個表即子表2取出來,放進當前子表處理單元42中進行語法分析運算。這樣子表控制模塊30中就只剩下一個子表1,其狀態(tài)為結(jié)束;當前子表處理單元42中的子表2處于初始狀態(tài)。對其進行語法分析的過程中,發(fā)現(xiàn)可以應(yīng)用一個句法排除規(guī)則即“冠詞+動詞”(DET+V),表明這種“冠詞+動詞”的現(xiàn)象是絕對不可能形成任何正確完整的語法分析樹的,所以整個子表都沒有必要再進行任何更進一步的語法分析。所以當前子表處理單元42就將子表2排除掉,不再加入到子表控制模塊中。
圖3-6表示,當前子表處理單元42變?yōu)榭蘸螅颖砜刂颇K30中只有一個子表1,其狀態(tài)為結(jié)束。已經(jīng)沒有需要進行語法分析得子表了,此時已經(jīng)完成所有的語法分析運算,這樣整個語法分析過程就結(jié)束了。如果前面的語法分析運算過程中已經(jīng)消除了所有的錯誤歧義,那么結(jié)果中就只有唯一正確的完整的語法分析運算樹。如果前面的語法過程中沒有完全消除所有的錯誤的歧義,那么結(jié)果中就可能會有多個完整的語法分析運算樹,但可以保證其中之一為正確的完整的語法分析運算樹。
由于整個語法分析運算過程中,通過子表控制模塊30對系統(tǒng)資源進行有效的處理,所以不用擔心因為系統(tǒng)資源耗盡而終止語法分析運算過程。所以在應(yīng)用語法規(guī)則的時候可以充分地進行窮盡搜索。這樣就保證一定會生成正確的完整的語法分析運算樹。
最后所應(yīng)說明的是以上實施例僅用以說明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解依然可以對本發(fā)明進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1.一種自然語言語法分析器,運行在計算機系統(tǒng)中,其特征在于,包括輸入模塊,用于存放輸入的句子,并通過查找數(shù)據(jù)庫詞典,將輸入的句子按照單詞的各種可能的詞性分解成一個個子表;數(shù)據(jù)庫,用于存放詞典資源,為運算處理提供詞性比較,確定每個單詞在詞典中所有可能的詞性;子表控制模塊,用于子表的保存、調(diào)用、排序、查找、索引、子表狀態(tài)保存以及計算機系統(tǒng)資源調(diào)用和分配等控制,將需要處理的子表送到運算處理模塊;運算處理模塊,包括一個規(guī)則庫,對當前的某一個子表通過與規(guī)則庫的規(guī)則進行比較運算,根據(jù)運算結(jié)果作出相應(yīng)處理,如果發(fā)現(xiàn)了明顯不可能的語言現(xiàn)象,就將該子表丟棄。
2.根據(jù)權(quán)利要求1所述的自然語言語法分析器,其特征在于,所述數(shù)據(jù)庫包括句法詞典(11),存放于硬盤中,在程序運行時可以將其中的一部分調(diào)入內(nèi)存。
3.根據(jù)權(quán)利要求1或2所述的自然語言語法分析器,其特征在于,所述輸入模塊20位于內(nèi)存中,包含輸入緩存區(qū)(21)和子表展開程序(22);所述輸入緩存區(qū)(21)用于暫時存放待處理的輸入句子,所述子表展開程序(22)查詢數(shù)據(jù)庫(10)之中的句法詞典(11)獲取每個單詞的所有可能的詞性,并將輸入句子分解成一個個子表,將每個子表送往子表控制模塊(30)保存。
4.根據(jù)權(quán)利要求1或2所述的自然語言語法分析器,其特征在于,所述子表控制模塊(30)包括位于內(nèi)存中的子表控制程序(31)和位于存儲器中的子表文件(32),所述子表控制程序(31)負責子表的調(diào)用,排序,查找,索引,子表狀態(tài)保存以及計算機系統(tǒng)資源調(diào)用和分配等控制,將結(jié)果保存子表文件(32)中。
5.根據(jù)權(quán)利要求4所述的自然語言語法分析器,其特征在于,所述運算處理模塊(40)位于內(nèi)存中,包括分析控制程序(41)和當前子表分析單元(42);所述分析控制程序(41)將需要進行語法分析的子表從子表控制模塊中取出來,放入當前子表分析單元(42)之中,并對當前子表的句子通過與規(guī)則庫的規(guī)則的比較進行分析運算;如果發(fā)現(xiàn)了明顯錯誤的語言現(xiàn)象,就將該子表丟棄;否則,就將分析后的帶有狀態(tài)標志的子表放回到子表控制模塊(30)。
6.一種自然語言語法分析方法,首先建立詞典庫和規(guī)則庫,所述規(guī)則庫包括排除規(guī)則庫和生成規(guī)則庫,其特征在于,包括如下步驟第一步、輸入句子,查找每個單詞在詞典的所有詞性,生成子表列表,所述子表列表中每個子表包含輸入句子的所有單詞,且每個單詞只有一個詞性;第二步、子表控制模塊判斷子表列表中是否還有尚未進行運算處理的子表,如果沒有,轉(zhuǎn)第五步,如果有,繼續(xù);第三步、將該子表放入運算處理模塊,調(diào)用規(guī)則庫進行運算處理;第四步、判斷處理過的子表是否可以排除,如果能排除,則返回到第二步;如果不能排除,則將該子表更新并做好標記后,放回到第一步中的子表列表的尾部;第五步、結(jié)束。
7.根據(jù)權(quán)利要求6所述的自然語言語法分析方法,其特征在于,所述生成子表列表的過程中,可以將子表內(nèi)容與所述規(guī)則庫中的排除規(guī)則相比較,丟棄明顯錯誤的子表。
8.根據(jù)權(quán)利要求6或7所述的自然語言語法分析方法,其特征在于,所述第四步中,如果處理過的子表不能排除,則與所述規(guī)則庫中的生成規(guī)則相比較,判斷是否能進行節(jié)點的合并,如果能合并,則在合并后送到第一步中的子表列表中;或者送到第三步中的運算處理模塊中繼續(xù)進行比較運算。
9.根據(jù)權(quán)利要求8所述的自然語言語法分析方法,其特征在于,所述子表的節(jié)點合并后,還包括對合并后的子表的屬性作出標記。
10.根據(jù)權(quán)利要求9所述的自然語言語法分析方法,其特征在于,針對子表合并時應(yīng)用過的生成規(guī)則,對合并后的子表的屬性,作出相應(yīng)的標記。
11.根據(jù)權(quán)利要求8所述的自然語言語法分析方法,其特征在于,如果判斷子表不能進行合并,則根據(jù)運算結(jié)果對該子表進行更新并作出“結(jié)束”標記,將更新的子表送到第一步中的子表列表的尾部。
12.根據(jù)權(quán)利要求6所述的自然語言語法分析方法,其特征在于,所述子表的生成展開后,首先存放在計算機的內(nèi)存中,如果所占內(nèi)存空間超過預(yù)先設(shè)定的閾值,則將已經(jīng)生成的所有子表全部保存到硬盤文件中。
13.根據(jù)權(quán)利要求12所述的自然語言語法分析方法,其特征在于,內(nèi)存與硬盤文件的交換方式包括單機環(huán)境的文本數(shù)據(jù)庫、客戶機-服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫、基于網(wǎng)絡(luò)結(jié)構(gòu)的分布式數(shù)據(jù)庫等等。
14.根據(jù)權(quán)利要求6、7、9-12任一所述的自然語言語法分析方法,其特征在于,所述對子表的保存、調(diào)用、排序、查找、索引、子表狀態(tài)的保存以及計算機系統(tǒng)資源調(diào)用和分配是通過子表控制模塊的控制進行的。
全文摘要
本發(fā)明公開一種自然語言語法分析器及其方法,所述方法包括步驟輸入句子,查找每個單詞在詞典的所有詞性,生成子表列表,所述子表列表中每個子表包含輸入句子的所有單詞,且每個單詞只有一個詞性;子表控制模塊判斷子表列表中是否還有尚未進行運算處理的子表;將該子表放入運算處理模塊,與規(guī)則庫比較進行運算處理,判斷處理過的子表是否可以排除,如果能排除,則返回到子表控制模塊;如果不能排除,則將該子表更新并做好標記后,放回到子表列表的尾部;本發(fā)明可實現(xiàn)在現(xiàn)有計算機性能的前提下,使語法分析運算過程不受計算機有限資源的限制,保證能夠正確生成語法分析樹,同時能夠有效消除復(fù)雜度指數(shù)級增長的難題,從而提高準確度和實用性。
文檔編號G06F17/30GK1519752SQ03100779
公開日2004年8月11日 申請日期2003年1月20日 優(yōu)先權(quán)日2003年1月20日
發(fā)明者黃致輝 申請人:黃致輝
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阿拉善右旗| 韶关市| 绵阳市| 榆中县| 临江市| 长治市| 阿拉善盟| 海南省| 西丰县| 海晏县| 武义县| 邛崃市| 天等县| 京山县| 革吉县| 万源市| 尚志市| 体育| 海林市| 双牌县| 屏南县| 如东县| 麻阳| 丹阳市| 景德镇市| 道真| 海伦市| 洪江市| 赤水市| 开鲁县| 荔浦县| 乐都县| 循化| 卢湾区| 黄梅县| 嘉兴市| 英德市| 曲松县| 尖扎县| 灌阳县| 灵宝市|