專利名稱:近似文本分析的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及本發(fā)明涉及自然語言處理領(lǐng)域中的文本分析的裝置與方法,屬于國際專利分類(IPC)的子類G06F 17/27,具體是指一種近似文本分析的裝置和方法。
背景技術(shù):
大部分的文本分析工作,都包括兩個(gè)步驟,即詞法分析與句法分析。詞法分析,其目的是判斷哪些字符可構(gòu)成單字,以及哪些單字可以構(gòu)成詞組;句法分析(或稱語法分析),其目的則是判斷哪些單字或詞組可構(gòu)成語法成分,哪些語法成分可以繼續(xù)歸約,直到構(gòu)成一個(gè)句子。在句法分析的基礎(chǔ)上,還可以進(jìn)一步的進(jìn)行語義分析,即分析不同語法成分所代表的概念,進(jìn)而分析哪些概念可以組合成更復(fù)雜的概念。
無論詞法分析,語法分析,還是語義分析,從自底向上分析的角度來看,其實(shí)質(zhì)都是根據(jù)一定的規(guī)則對語言實(shí)體進(jìn)行歸約,構(gòu)成新的語言實(shí)體的過程。
在此基礎(chǔ)上進(jìn)一步抽象,不難發(fā)現(xiàn),所謂文本分析,其目的在于識別出文本中的各種語言實(shí)體及其相互之間的關(guān)系。所謂的語言單元關(guān)系是指,哪些語言單元根據(jù)特定的歸約規(guī)則,歸約出特定的語言單元。
語言實(shí)體在不同語言層次上的具體所指是不同,比如在詞法層面,可以指單字或詞組;在句法層面可以指語法成分;或者在語義層面,可以指不同的語義概念。當(dāng)然,隨著文本處理領(lǐng)域研究的不斷深入,所說的語言層次可能會有所增加或變動。
語言實(shí)體在實(shí)施時(shí),一般被構(gòu)造成由標(biāo)記表達(dá)的數(shù)據(jù)結(jié)構(gòu)(語言單元)。在詞法層面,語言單元用來代表字母,單字或詞組;在語法層面,則代表單字,詞組或語法成分;在語義層面,則代表語法成分,或者語義概念。
傳統(tǒng)文本分析方法,其著眼點(diǎn)在于了解語言單元之間的必然關(guān)系,但是,在某些場合,人們需要(或者不得不)獲知各個(gè)語言單元相互之間可能的,而非必然的關(guān)系。比如,在短時(shí)間內(nèi),對大量文本進(jìn)行非嚴(yán)格的分析,以期得到某些具有統(tǒng)計(jì)意義的結(jié)論;在干擾文字或者與分析無關(guān)字符存在的情況下進(jìn)行文本分析,如果要使用傳統(tǒng)的確然的文本分析技術(shù),就要采取文本去噪,這需要專門的領(lǐng)域知識以及較高的知識建模的技術(shù),以至于在一些應(yīng)用場合效果不夠理想;這時(shí),傳統(tǒng)的確然的文本分析方法(包括詞法分析,語法分析)就不適用,而應(yīng)采取近似文本分析。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種進(jìn)行近似文本分析的裝置與方法,可對大量文本進(jìn)行非嚴(yán)格的分析,從而在干擾文字或者與分析無關(guān)字符存在的情況下進(jìn)行文本分析,得到具有統(tǒng)計(jì)意義的結(jié)論。
為了實(shí)現(xiàn)上述的目的,本發(fā)明的近似文本分析的裝置和方法如下該近似文本分析的裝置,其主要特點(diǎn)是,所述的裝置包括(1)緩沖隊(duì)列的存儲部件,用于緩存待送入廣義歸約部件的語言單元;所說的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)廣義歸約部件,用于對語言單元進(jìn)行廣義歸約;(3)輸入部件,用于從外部得到語言單元;(4)分析部件,用于當(dāng)緩沖隊(duì)列為空時(shí),通過輸入部件得到語言單元并加入緩沖隊(duì)列;從緩沖隊(duì)列中取出一個(gè)語言單元成員,送入廣義歸約部件,以及接收來自廣義歸約部件的語言單元,并加入隊(duì)列;(5)輸出部件,將產(chǎn)生的新的語言單元輸出;
所述的輸入部件的輸出與所述的分析部件的輸入相連,該分析部件的輸出與所述的輸出部件的輸入相連,且該分析部件與緩沖隊(duì)列的存儲部件相連,并與廣義歸約部件之間進(jìn)行交互。
該近似文本分析的裝置的輸入部件從文本中抽取單字構(gòu)造語言單元。
該近似文本分析的裝置的廣義歸約部件采用增量式廣義歸約。
該近似文本分析的裝置還包括語言單元表,包含若干表項(xiàng),每個(gè)表項(xiàng)用以存儲分析過程中涉及的語言單元;所述的分析裝置中,每當(dāng)有新的語言單元加入隊(duì)列時(shí),同時(shí)也記錄在語言單元表中。
該近似文本分析的裝置的語言單元表項(xiàng),還包含唯一表示一個(gè)語言單元的“標(biāo)識”字段、指明該語言單元通過何種歸約規(guī)則而得到的“歸約規(guī)則”字段和指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元的“參與歸約”字段。
使用上述裝置進(jìn)行近似文本分析的的方法,其主要特點(diǎn)是,所述方法包括以下步驟(1)如果緩沖隊(duì)列為空,通過輸入手段得到語言單元并加入緩沖隊(duì)列;所述的緩沖隊(duì)列的存儲手段,用于緩存待送入進(jìn)行廣義歸約手段處理的語言單元;所說的輸入手段,用于從裝置外得到語言單元;所說的廣義歸約手段,用于對語言單元進(jìn)行廣義歸約;所說的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)從緩沖隊(duì)列取得一個(gè)語言單元,并輸入進(jìn)行廣義歸約手段處理;(3)如果經(jīng)廣義歸約手段處理產(chǎn)生語言單元,則將之加入緩沖隊(duì)列;轉(zhuǎn)步驟(1)。
該近似文本分析的方法的輸入手段為從文本中抽取單字構(gòu)造語言單元。
該近似文本分析的方法的廣義歸約手段,采用增量式廣義歸約。
該近似文本分析的方法還包括語言單元表,包含若干表項(xiàng),每個(gè)表項(xiàng)用以存儲分析過程中涉及的語言單元;所說的分析手段中,每當(dāng)有新的語言單元加入隊(duì)列時(shí),同時(shí)也記錄在語言單元表中。
該近似文本分析的方法的語言單元表項(xiàng),還包含“標(biāo)識”字段,用以唯一表示一個(gè)語言單元;所述的語言單元表項(xiàng),還包含“歸約規(guī)則”字段,用以指明該語言單元通過什么歸約規(guī)則得到;所說的語言單元表項(xiàng),還包含“參與歸約”字段,用以指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元。
存儲有實(shí)現(xiàn)上述的近似文本分析方法的程序的計(jì)算機(jī)可讀的存儲介質(zhì),其主要特點(diǎn)是,所述的程序執(zhí)行以下步驟(1)如果緩沖隊(duì)列為空,通過輸入手段得到語言單元并加入緩沖隊(duì)列;所述的緩沖隊(duì)列的存儲手段,用于緩存待送入進(jìn)行廣義歸約手段處理的語言單元;所述的輸入手段,用于從裝置外得到語言單元;所述的廣義歸約手段,用于對語言單元進(jìn)行廣義歸約;所述的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)從緩沖隊(duì)列取得一個(gè)語言單元,并輸入進(jìn)行廣義歸約手段處理;(3)如果經(jīng)廣義歸約手段處理產(chǎn)生語言單元,則將之加入緩沖隊(duì)列;轉(zhuǎn)步驟(1)。
該存儲介質(zhì)的輸入手段為從文本中抽取單字構(gòu)造語言單元。
該存儲介質(zhì)的廣義歸約手段,采用增量式廣義歸約。
該存儲介質(zhì)還包括語言單元表,包含若干表項(xiàng),每個(gè)表項(xiàng)用以存儲分析過程中涉及的語言單元;所說的分析手段中,每當(dāng)有新的語言單元加入隊(duì)列時(shí),同時(shí)也記錄在語言單元表中。
該存儲介質(zhì)的語言單元表項(xiàng),還包含“標(biāo)識”字段,用以唯一表示一個(gè)語言單元;所述的語言單元表項(xiàng),還包含“歸約規(guī)則”字段,用以指明該語言單元通過什么歸約規(guī)則得到;所說的語言單元表項(xiàng),還包含“參與歸約”字段,用以指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元。
采用了該發(fā)明的近似文本分析的裝置和方法,由于對文本進(jìn)行近似分析,從而得到語言單元相互之間基于預(yù)先給定歸約規(guī)則的各種可能的關(guān)系;由于近似文本分析給出的語言單元關(guān)系比傳統(tǒng)方法要多,所以,在近似文本分析基礎(chǔ)上所做的后續(xù)分析,將得到一些基于傳統(tǒng)文本分析無法得到的結(jié)論;在應(yīng)用上,本發(fā)明適合作為大規(guī)模定量文本分析,文本數(shù)據(jù)挖掘的前導(dǎo)階段,從而為后續(xù)的分析,尤其是基于統(tǒng)計(jì)學(xué)的分析提供信息。
不過,由于近似分析,相對于傳統(tǒng)的分析,對語言單元關(guān)系的識別范圍放寬,導(dǎo)致了每個(gè)被識別語言單元關(guān)系在邏輯上不是必然成立。一方面,某些關(guān)系是邏輯上成立的,有些甚至不能由傳統(tǒng)的分析手段得到的。比如,在一個(gè)句群中,前一分句中的主語通過代詞影響隨后分句中的謂語,這在傳統(tǒng)分析方法中是不能被直接識別的;另一方面,也會有一些關(guān)系是錯(cuò)誤的,即邏輯上不成立,而是碰巧在形式上符合特定的歸約規(guī)則;所以,為了減小錯(cuò)誤關(guān)系對后續(xù)分析的影響,可以通過引入權(quán)重機(jī)制,對語料進(jìn)行機(jī)器學(xué)習(xí)等技術(shù)來達(dá)到此目的。
另外,以緩沖隊(duì)列為實(shí)現(xiàn)手段的迭代方式的文本分析,保證了本方法是增量式的,這意味著近似分析的時(shí)間開銷將受到控制,從而使近似文本分析更有實(shí)用意義。
圖1為本發(fā)明以迭代廣義歸約進(jìn)行近似文本分析的裝置的功能結(jié)構(gòu)框圖。
圖2為圖1中裝置的硬件結(jié)構(gòu)框圖。
圖3為本發(fā)明的語言單元的結(jié)構(gòu)框圖。
圖4為以迭代廣義歸約進(jìn)行近似文本分析方法的主過程MainProc的流程圖。
圖5為本發(fā)明的語言單元表的結(jié)構(gòu)框圖。
圖6為增量式廣義歸約方法中主過程MainProc的流程圖。
圖7為被圖6中的主過程MainProc調(diào)用、用于尋找語言單元組合以產(chǎn)生新語言單元的過程GenNewUnit流程圖。
圖9為被圖7中的過程GenNewUnit調(diào)用、根據(jù)給定的語言單元棧產(chǎn)生新語言單元的過程Stk2Unit的流程圖。
具體實(shí)施例方式
為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。
請參閱圖1所示,分析部件102從緩沖隊(duì)列105中取語言單元輸入廣義歸約部件,并接收廣義歸約部件在歸約后輸出的新語言單元并加入緩沖隊(duì)列尾部。每當(dāng)分析部件102從從緩沖隊(duì)列105取語言單元時(shí),都要判斷隊(duì)列是否為空。如果緩沖隊(duì)列105為空時(shí),分析部件102則通過輸入部件101得到語言單元,并加入緩沖隊(duì)列。具體的以迭代廣義歸約進(jìn)行近似文本分析方法將在隨后描述。
再請參閱圖2所示,處理器201執(zhí)行隨后將描述的以迭代廣義歸約進(jìn)行近似文本分析的程序。RAM202提供了此程序執(zhí)行時(shí)所需要的存儲區(qū)域。此外,還用于存儲廣義歸約部件104所用到的數(shù)據(jù)和程序,以及緩沖隊(duì)列105。ROM203存儲以迭代廣義歸約進(jìn)行近似文本分析的程序。I/O接口204與輸入部件101與輸出部件103相連。輸入部件101可以是鍵盤,OCR,接收器或者是儲存有待處理語言單元的內(nèi)存等。輸出部件103可以是顯示設(shè)備,打印機(jī),網(wǎng)絡(luò)接口,或者是內(nèi)存等??偩€205聯(lián)接以上各個(gè)部件。
所說的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;特別地,語言單元存儲的信息以標(biāo)記方式描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體。
語言單元的實(shí)現(xiàn)方式有多種,比如1.用單個(gè)標(biāo)記來表示語言實(shí)體的類屬;2.用多個(gè)標(biāo)記來表示語言實(shí)體在不同方面的類屬,這些標(biāo)記構(gòu)成一個(gè)集合。
單標(biāo)記是多數(shù)語言分析裝置或軟件在歸約時(shí)都采用的方法,其好處是簡單直接;多標(biāo)記集合方法在功能合一文法等文本分析方法中采用。為了簡便起見,本實(shí)施例采用單標(biāo)記的實(shí)現(xiàn)方法。掌握計(jì)算機(jī)科學(xué)一般知識的技術(shù)人員,參照本實(shí)施例,不難將語言單元實(shí)現(xiàn)為多標(biāo)記集合以實(shí)施本發(fā)明。
在實(shí)施時(shí),可以選擇語言單元是否包含文本區(qū)域信息以說明語言實(shí)體在文本中占據(jù)的區(qū)域。
如果不使用文本區(qū)域,則歸約規(guī)則各子前件之間不存在位置關(guān)系的限定,這時(shí)的歸約是無順序歸約。無順序歸約可被用于某些場合,比如對于某些語言的文本進(jìn)行分析,比如拉丁文,各詞匯的語法上的角色通過詞格變化區(qū)分,而非詞匯在句子中的位置;在語法要求不是很嚴(yán)格的情況下分析文本;或者對文本進(jìn)行時(shí)間要求高但準(zhǔn)確度要求不是很高的分析。
另一方面,如果使用文本區(qū)域,則歸約規(guī)則各子前件之間存在位置關(guān)系的限定,這時(shí)的歸約是有順序歸約。大部分自然語言,比如中文,英文等,都適用有順序歸約的方式。
本實(shí)施例采用有順序歸約的模式,所以語言單元中包含文本區(qū)域。掌握計(jì)算機(jī)科學(xué)一般知識的技術(shù)人員,參照本實(shí)施例,不難以無順序歸約方式實(shí)施本發(fā)明。
本實(shí)施例中語言單元所采用的結(jié)構(gòu)請參見圖3所示。由于是有順序歸約模式,每個(gè)語言單元301包含主體302與文本區(qū)域303;主體302包含標(biāo)記304與輔助信息305。如果是無順序歸約模式,則語言單元301不包含文本區(qū)域303。
標(biāo)記304用于標(biāo)識不同的語言層次下的語言概念可以使用英語中的POS(Part of Speech)標(biāo)記,也可以根據(jù)需要自行定義。如果本發(fā)明被實(shí)施為某個(gè)文本分析裝置或軟件的一個(gè)模塊時(shí),則采用此文本分析裝置或軟件給定的標(biāo)記。以下是一些標(biāo)記的舉例,供實(shí)施時(shí)參考
標(biāo)記可以是相互平級的,即相互間不存在從屬關(guān)系;也可以是有層次關(guān)系的。如果是平級的,在比較標(biāo)記A與B時(shí),判斷A與B是否一致;如果是有層次關(guān)系的,則判斷A是B的子類,還是B是A的子類,或者A與B無關(guān)。在本實(shí)施例中,標(biāo)記相互間關(guān)系是平級的。
輔助信息305用于描述一些標(biāo)記無法描述的信息,比如當(dāng)語言單元表示一個(gè)單字時(shí),用輔助信息存儲這個(gè)單字的字符串形式;或者當(dāng)語言單元表示一個(gè)詞組時(shí),用輔助信息存儲這個(gè)詞組的字符串形式。
文本區(qū)域303描述了語言單元所代表的語言實(shí)體在文本中占據(jù)的區(qū)域,可以實(shí)現(xiàn)為1.以數(shù)字對偶表示的區(qū)間,說明此區(qū)域在文本中的邊界。比如,(3,10)表示文本的區(qū)域從標(biāo)號為3的字符串開始到標(biāo)號為10的字符串結(jié)束。
2.數(shù)字集合,說明哪些位置上的字符串屬于此語言實(shí)體。比如,{3,4,5,10}表示此語言實(shí)體覆蓋標(biāo)號為3,4,5,10的字符串。
在本實(shí)施例中,采用數(shù)字對偶的方式。
以下,結(jié)合若干實(shí)例對結(jié)構(gòu)如圖3的語言單元進(jìn)行說明,標(biāo)記及其含義見上面給出的標(biāo)記示例1.語言單元(WRD,“中”,(3,3))標(biāo)記為WRD,表示該語言單元代表的語言實(shí)體為一個(gè)單字;輔助信息為“中”,表示該單字為“中”;占據(jù)的文本區(qū)域只覆蓋標(biāo)號為3的字符串;2.語言單元(PHR,“中國”,(3,5))
標(biāo)記為PHR,表示該語言單元代表的語言實(shí)體為一個(gè)詞組;輔助信息為“中國”,表示該詞組為“中國”;占據(jù)的文本區(qū)域?yàn)?3,5);3語言單元(V,NULL,(4,7))標(biāo)記為V,表示該語言單元代表的語言實(shí)體為一個(gè)動詞;輔助信息為空,表示語言單元未對此語言實(shí)體進(jìn)一步描述;占據(jù)的文本區(qū)域?yàn)?4,7);近似文本分析的主過程MainProc如下(參見圖4)D01如果緩沖隊(duì)列為空則轉(zhuǎn)步驟D05,否則轉(zhuǎn)步驟D02D02從緩沖隊(duì)列首部取出語言單元成員XD03將X輸入廣義歸約部件D04將廣義歸約部件輸出的語言單元存入緩沖隊(duì)列尾部D05如果可從輸入部件得到新的語言單元,則轉(zhuǎn)步驟D06,否則結(jié)束D06從輸入部件得到一個(gè)語言單元UD07將U加入緩沖隊(duì)列;轉(zhuǎn)步驟D02廣義歸約部件,接收外界輸入的語言單元或語言單元標(biāo)識,判斷其可以與本部件已存儲的哪些語言單元或語言單元標(biāo)識一起,匹配特定的已存儲的歸約規(guī)則,得到新的語言單元,并將此新的語言單元輸出或?qū)⒅c參與歸約的語言單元一起輸出。
作為一種優(yōu)化的實(shí)現(xiàn)方式,廣義歸約部件可采用增量式廣義歸約裝置。
進(jìn)行增量式廣義歸約的裝置包括(1)歸約規(guī)則表的存儲部件,用于存儲歸約規(guī)則;所述的歸約規(guī)則包含一個(gè)或一個(gè)以上子前件,存儲了語言單元匹配時(shí)應(yīng)滿足的條件;所述的歸約規(guī)則還包含一個(gè)后件,所存儲的信息描述了規(guī)則被匹配后將產(chǎn)生的語言單元的全部或部分內(nèi)容;所述的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)候選者隊(duì)列的存儲部件,用于存儲匹配特定規(guī)則的特定子前件的語言單元
(3)歸約部件,用于將由輸入手段得到的語言單元,與各規(guī)則的各子前件逐一進(jìn)行匹配,當(dāng)所述的語言單元與特定規(guī)則的特定子前件匹配時(shí)將之加入到此子前件對應(yīng)的候選者隊(duì)列中;在每個(gè)匹配子前件過程中,若此語言單元匹配的是某個(gè)具有n個(gè)子前件的規(guī)則的最末子前件,運(yùn)用遍歷算法搜索各種語言單元組合,每個(gè)組合滿足(a)第i個(gè)成員來自此規(guī)則的第i個(gè)子前件的候選者隊(duì)列(1≤i≤n-1);(b)第n個(gè)成員為此語言單元;(4)輸入部件,得到從外界輸入的語言單元;(5)輸出部件,將產(chǎn)生的新的語言單元輸出;所述的輸入部件的輸出與所述的歸約部件的輸入相連,該歸約部件的輸出與所述的輸出部件的輸入相連,且該歸約部件還分別與歸約規(guī)則表的存儲部件和候選者隊(duì)列的存儲部件相連;對于每個(gè)語言單元組合,都根據(jù)規(guī)則后件產(chǎn)生新的語言單元并通過輸出部件輸出。
該廣義歸約的裝置的語言單元還包括指明該語言單元所代表的語言實(shí)體在文本中占據(jù)區(qū)域的文本區(qū)域;所述的歸約裝置為(a)在搜索語言單元組合時(shí),每種語言單元組合的第i個(gè)語言單元的文本區(qū)域不重合于第i+1個(gè)語言單元且在其左側(cè)(1≤i≤n-1);(b)得到的新的語言單元的文本區(qū)域,為對應(yīng)語言單元組合中各語言單元的文本區(qū)域的疊加。
其中,歸約部件通過輸入部件得到從外界輸入的語言單元,根據(jù)歸約規(guī)則表,運(yùn)用隨后將描述的增量式廣義歸約的方法,將新得到的語言單元復(fù)制到候選者隊(duì)列表中的符合條件的候選者隊(duì)列中;并在符合特定條件的情況下,在候選者隊(duì)列表中尋找符合特定條件的語言單元組合,由歸約規(guī)則表中特定的規(guī)則得到新的語言單元,將新語言單元由輸出部件輸出到裝置外。
增量式廣義歸約主過程MainProc將新的語言單元與各規(guī)則各子前件一一匹配,只要發(fā)現(xiàn)匹配就將之保存到此子前件對應(yīng)的候選者隊(duì)列中。如果匹配的是某個(gè)規(guī)則的最后一個(gè)子前件,則開始在此規(guī)則各有關(guān)候選者隊(duì)列中進(jìn)行增量式的語言單元組合的搜索。
主過程MainProc可供參考的一種實(shí)現(xiàn)步驟如下(參見圖6)A01從輸入部件得到一個(gè)語言單元UA02得到歸約規(guī)則表的規(guī)則個(gè)數(shù)NA03令I(lǐng)=1A04如果I<=N,則轉(zhuǎn)步驟A05,否則結(jié)束A05得到歸約規(guī)則表的第I個(gè)規(guī)則R(I)A06得到R(I)的子前件個(gè)數(shù)SA07令J=1A08如果J<=S,則轉(zhuǎn)步驟A09,否則轉(zhuǎn)步驟A12A09得到R(I)的第J個(gè)子前件Pre(I,J)A10如果U匹配Pre(I,J),則轉(zhuǎn)A13,否則轉(zhuǎn)步驟A11A11J=J+1;轉(zhuǎn)步驟A08A12I=I+1;轉(zhuǎn)步驟A04A13在候選者隊(duì)列表中找到候選者隊(duì)列Cand(I,J)A14將U加入Cand(I,J)隊(duì)列尾A15如果J=S,則轉(zhuǎn)步驟A16,否則轉(zhuǎn)步驟A11A16調(diào)用過程GenNewUnit(U,I,S),轉(zhuǎn)步驟A12步驟A10所述的匹配是指語言單元符合規(guī)則子前件的要求。具體地,可以參考上文所述的子前件實(shí)現(xiàn)方式中所描述的匹配方式。
主過程調(diào)用遍歷算法在特定規(guī)則的各有關(guān)候選者隊(duì)列中尋找語言單元組合。在實(shí)施例中,即A16調(diào)用方法GenNewUnit來實(shí)現(xiàn)。為了保證搜索是增量式的,語言單元組合的最后一個(gè)元素被限定為剛輸入系統(tǒng)的新語言單元。
有順序歸約模式相對于無順序歸約模式,在搜索語言單元組合時(shí),多了一條限制,即語言單元組合中的每個(gè)成員與其后的成員,在文本區(qū)域上是互不重疊的,且前者在后者的左側(cè)。如語言單元A的文本區(qū)域?yàn)?4,7),語言單元B的文本區(qū)域?yàn)?5,8),則A與B在文本區(qū)域上有公共部分,二者的位置關(guān)系為重疊。又比如,語言單元C的文本區(qū)域?yàn)?8,10),則A與C無重疊,而且A的右邊界為7,仍小于C的左邊界8,故而A在C的左側(cè)。
方法GenNewUnit可供參考的一種實(shí)現(xiàn)步驟如下(參見圖7)B01進(jìn)行初始化,包括得到U在Cand(I,S)中的地址PU;堆棧Stk清空;將<S,PU>入棧StkB02讀取Stk棧頂元素<X,Y>
B03將Y所指向的語言單元的文本區(qū)域賦值給YT,即令YT=Y(jié)->TxtRgnB04如果X>1轉(zhuǎn)步驟B05,否則轉(zhuǎn)步驟B11B05X=X-1B06將指針PC指向候選者隊(duì)列Cand(I,X)的隊(duì)尾B07如果PC到隊(duì)首則轉(zhuǎn)步驟B12,否則轉(zhuǎn)步驟B08B08將PC所指向語言單元的文本區(qū)域賦值給CT,即令CT=PC->TxtRgnB09如果CT與YT不重疊且在YT左側(cè),則轉(zhuǎn)步驟B18,否則轉(zhuǎn)步驟B10B10指針PC向前移動一個(gè)單元,即令PC=PC->Prv;轉(zhuǎn)步驟B07B11調(diào)用過程Stk2Unit(I,Stk)B12彈出Stk棧頂元素B13如果棧Stk為空,則結(jié)束,否則轉(zhuǎn)步驟B14B14讀取Stk棧頂元素<X,Y>
B15如果Y到隊(duì)首,則轉(zhuǎn)步驟B12,否則轉(zhuǎn)步驟B16B16指針Y向前移動一個(gè)單元,即令Y=Y(jié)->PrvB17<X,Y>入棧Stk;轉(zhuǎn)步驟B02B18<X,*PC>入棧Stk;轉(zhuǎn)步驟B02步驟B18的*PC表示PC所指向的語言單元。
步驟B11所調(diào)用的方法Stk2Unit用于由當(dāng)前得到的語言單元組合,特定的后件產(chǎn)生新的語言單元并輸出之。
方法Stk2Unit可供參考的一種實(shí)現(xiàn)步驟如下(參見圖8)C01文本區(qū)域T0初始化C02將指針PS指向堆棧Stk底部C03如果PS到棧頂,則轉(zhuǎn)步驟C06,否則轉(zhuǎn)步驟C04C04得到PS所指向的棧中語言單元的文本區(qū)域T=PS->TxtRgnC05將PS所指向的棧中語言單元的文本區(qū)域疊加到T0,即令T0=T0∪T;轉(zhuǎn)步驟C03C06創(chuàng)建語言單元U0C07將U0的文本區(qū)域設(shè)置為T0,即令U0。TxtRgn=T0C08得到第I個(gè)歸約規(guī)則的后件Post(I)C09將Post(I)復(fù)制到語言單元U0的主體C10向輸出接口輸出U0步驟C05所述的文本區(qū)域的疊加操作,就是數(shù)學(xué)中區(qū)間或集合的“并”操作。比如,語言單元A文本區(qū)域(2,5),語言單元B為(4,6),則疊加的結(jié)果為A∪B=(2,6)如果對上述方法做如下修改1.去除B08、B09、B10;2.讓B07在為假時(shí)轉(zhuǎn)B18;3.去除C04、C05、C07。
則此歸約即為無順序歸約模式。
以上是增量式廣義歸約方法的一種實(shí)施方式。計(jì)算機(jī)科學(xué)領(lǐng)域的一般技術(shù)人員,不難根據(jù)本實(shí)施例,針對具體應(yīng)用背景實(shí)施本發(fā)明。
在前面的以迭代廣義歸約進(jìn)行近似文本分析的過程中,輸入部件負(fù)責(zé)向MainProc反應(yīng)待分析的文本是否已結(jié)束,并在文本未結(jié)束的情況下從文本中抽取單字構(gòu)造而得。如何從文本中識別并抽取單字(完整的英文單詞,漢字,日期等),在計(jì)算機(jī)科學(xué)中屬于公知技術(shù)。可采用的方法有1.定義欲識別不同類型單字(英文單詞、漢字、日期等)的正則表達(dá)式,使用LEX等軟件來構(gòu)造詞法分析程序,用詞法分析程序來識別單字;2.構(gòu)造分析程序,將連續(xù)兩個(gè)高位為1的字符識別為一個(gè)漢字,將連續(xù)的字母序列識別為一個(gè)單詞。
前者的識別能力強(qiáng),但運(yùn)算的時(shí)間開銷與空間開銷相對較大,適用對準(zhǔn)確性要求高,但對時(shí)間要求不是很高的情況;后者簡便快捷,但是有些情況下會發(fā)生錯(cuò)誤識別,適用于對時(shí)間要求較高,對準(zhǔn)確性要求不是很高的情況。
對于單字的識別,可以全部識別,也可以只識別與特定領(lǐng)域有關(guān)的單字字符串。前者適用于開發(fā)通用的分析裝置或軟件,而后者適用于與特定領(lǐng)域有關(guān)的應(yīng)用。
輸入手段在得到單字字符串后,將之構(gòu)造為一個(gè)語言單元。也就是說,創(chuàng)建一個(gè)代表單字的字符串,將輔助信息賦值為此字符串。在有順序歸約模式下,還要將此單字的文本位置設(shè)定為此語言單元的文本區(qū)域。文本位置有多種定義方式,可以是該單字在文本中的偏移位置,也可以是單字編號等。輸入手段可以任選一種文本位置定義方式,也可以根據(jù)具體應(yīng)用需要自定義文本位置。在本實(shí)施例中,采用文本偏移位置的定義方式。
比如,輸入手段從文本中讀取了單字字符串“中”,當(dāng)前單字在文本中偏移位置為3,則對應(yīng)的語言單元為(WRD,“中”,(3,3))。
在應(yīng)用中還可以建立語言單元表,用以存儲分析過程中產(chǎn)生的語言單元。語言單元表的結(jié)構(gòu)如圖5。語言單元表501包含若干語言單元表項(xiàng)(502,503,...,504);每個(gè)語言單元表項(xiàng)(以502為例),包含標(biāo)識505,語言單元506,歸約規(guī)則507,參與歸約508。
標(biāo)識505用于唯一表示一個(gè)語言單元。歸約規(guī)則507用以指明該語言單元通過什么歸約規(guī)則得到;參與歸約508,用以指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元。
以下是一個(gè)具體的近似文本分析的實(shí)例給定歸約規(guī)則如下1.<(WRD,張),(WRD,三)>→(PHR,張三)2.<(PHR,張三)>→(N,NULL)3.<(WRD,不)>→(PHR,否定)4.<(PHR,否定)>→(AD,NULL)5.<(WRD,仔),(WRD,細(xì))>→(PHR,仔細(xì))6.<(PHR,仔細(xì))>→(A,NULL)7.<(WRD,努),(WRD,力)>→(PHR,努力)8.<(PHR,努力)>→(A,NULL)9.<(PHR,努力)>→(AD,NULL)10.<(AD,NULL),(A,NULL)>→(A,NULL)11.<(N,NULL),(A,NULL)>→(EVT,NULL)歸約規(guī)則保存在歸約部件中。
待處理的文本如下所示。每個(gè)方塊代表一個(gè)單字,每個(gè)單字下的數(shù)字代表其文本位置。在本例中,單字的文本位置為此單字在文本中的偏移。每個(gè)漢字單字占兩個(gè)字節(jié),每個(gè)標(biāo)點(diǎn)單字占一個(gè)字節(jié)。
則根據(jù)所描述的近似文本分析方法,得到以下語言單元表
為了說明方便,在如圖5的結(jié)構(gòu)上又增加如下字段1.“歸約輸出”當(dāng)每個(gè)語言單元送入廣義歸約部件后,由廣義歸約部件輸出的新語言單元。
2.“緩沖隊(duì)列”每個(gè)語言單元?jiǎng)傔M(jìn)入緩沖隊(duì)列時(shí),緩沖隊(duì)列的狀態(tài)。
3.“覆蓋文本”每個(gè)語言單元在文本中對應(yīng)的文字。
4.“來源”每個(gè)語言單元是由輸入部件產(chǎn)生,還是由廣義歸約部件產(chǎn)生。
上表即為在給定歸約規(guī)則與文本后進(jìn)行近似文本分析得到的結(jié)果。
以上語言單元表,給出了所有符合給定歸約規(guī)則的語言單元關(guān)系,從而為后續(xù)的分析,比如大規(guī)模定量文本分析或文本數(shù)據(jù)挖掘,提供信息。作為一種簡單的后續(xù)分析,可以是語言單元關(guān)系的關(guān)聯(lián)規(guī)則挖掘,或者是對不同類型語言單元在不同類型文本中頻率差異的分析,等等。
進(jìn)行以迭代廣義歸約進(jìn)行近似文本分析的方法可以用程序的形式存儲在計(jì)算機(jī)可讀的存儲介質(zhì)中,用于存儲程序的存儲介質(zhì)可以是軟盤、硬盤、光盤、磁光盤、CD-ROM、CD-R、磁帶、非易失存儲器或者易失存儲器。
在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種近似文本分析的裝置,其特征在于,所述的裝置包括(1)緩沖隊(duì)列的存儲部件,用于緩存待送入廣義歸約部件的語言單元;所說的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)廣義歸約部件,用于對語言單元進(jìn)行廣義歸約;(3)輸入部件,用于從外部得到語言單元;(4)分析部件,用于當(dāng)緩沖隊(duì)列為空時(shí),通過輸入部件得到語言單元并加入緩沖隊(duì)列;從緩沖隊(duì)列中取出一個(gè)語言單元成員,送入廣義歸約部件,以及接收來自廣義歸約部件的語言單元,并加入隊(duì)列;(5)輸出部件,將產(chǎn)生的新的語言單元輸出;所述的輸入部件的輸出與所述的分析部件的輸入相連,該分析部件的輸出與所述的輸出部件的輸入相連,且該分析部件與緩沖隊(duì)列的存儲部件相連,并與廣義歸約部件之間進(jìn)行交互。
2.根據(jù)權(quán)利要求1所述的近似文本分析的裝置,其特征在于,所述的輸入部件從文本中抽取單字構(gòu)造語言單元。
3.根據(jù)權(quán)利要求1所述的近似文本分析的裝置,其特征在于,所述的廣義歸約部件采用增量式廣義歸約。
4.根據(jù)權(quán)利要求1所述的近似文本分析的裝置,其特征在于,所述的裝置還包括語言單元表,包含若干表項(xiàng),每個(gè)表項(xiàng)用以存儲分析過程中涉及的語言單元;所述的分析裝置中,每當(dāng)有新的語言單元加入隊(duì)列時(shí),同時(shí)也記錄在語言單元表中。
5.根據(jù)權(quán)利要求4所述的近似文本分析的裝置,其特征在于,所述的語言單元表項(xiàng),還包含唯一表示一個(gè)語言單元的“標(biāo)識”字段、指明該語言單元通過何種歸約規(guī)則而得到的“歸約規(guī)則”字段和指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元的“參與歸約”字段。
6.一種使用權(quán)利要求1所述裝置進(jìn)行近似文本分析的的方法,其特征在于,所述方法包括以下步驟(1)如果緩沖隊(duì)列為空,通過輸入手段得到語言單元并加入緩沖隊(duì)列;所述的緩沖隊(duì)列的存儲手段,用于緩存待送入進(jìn)行廣義歸約手段處理的語言單元;所說的輸入手段,用于從裝置外得到語言單元;所說的廣義歸約手段,用于對語言單元進(jìn)行廣義歸約;所說的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)從緩沖隊(duì)列取得一個(gè)語言單元,并輸入進(jìn)行廣義歸約手段處理;(3)如果經(jīng)廣義歸約手段處理產(chǎn)生語言單元,則將之加入緩沖隊(duì)列;轉(zhuǎn)步驟(1)。
7.根據(jù)權(quán)利要求6所述的近似文本分析的方法,其特征在于,所述的輸入手段為從文本中抽取單字構(gòu)造語言單元。
8.根據(jù)權(quán)利要求6所述的近似文本分析的方法,其特征在于,所述的廣義歸約手段,采用增量式廣義歸約。
9.根據(jù)權(quán)利要求6所述的近似文本分析的方法,其特征在于,所述的方法還包括語言單元表,包含若干表項(xiàng),每個(gè)表項(xiàng)用以存儲分析過程中涉及的語言單元;所說的分析手段中,每當(dāng)有新的語言單元加入隊(duì)列時(shí),同時(shí)也記錄在語言單元表中。
10.根據(jù)權(quán)利要求9所述的近似文本分析的方法,其特征在于,所述的語言單元表項(xiàng),還包含“標(biāo)識”字段,用以唯一表示一個(gè)語言單元;所述的語言單元表項(xiàng),還包含“歸約規(guī)則”字段,用以指明該語言單元通過什么歸約規(guī)則得到;所說的語言單元表項(xiàng),還包含“參與歸約”字段,用以指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元。
11.一種存儲有實(shí)現(xiàn)權(quán)利要求6所述的近似文本分析方法的程序的計(jì)算機(jī)可讀的存儲介質(zhì),其特征在于,所述的程序執(zhí)行以下步驟(1)如果緩沖隊(duì)列為空,通過輸入手段得到語言單元并加入緩沖隊(duì)列;所述的緩沖隊(duì)列的存儲手段,用于緩存待送入進(jìn)行廣義歸約手段處理的語言單元;所述的輸入手段,用于從裝置外得到語言單元;所述的廣義歸約手段,用于對語言單元進(jìn)行廣義歸約;所述的語言單元存儲的信息描述了一段文字所對應(yīng)的特定語言層次的語言實(shí)體;(2)從緩沖隊(duì)列取得一個(gè)語言單元,并輸入進(jìn)行廣義歸約手段處理;(3)如果經(jīng)廣義歸約手段處理產(chǎn)生語言單元,則將之加入緩沖隊(duì)列;轉(zhuǎn)步驟(1)。
12.根據(jù)權(quán)利要求11所述的存儲介質(zhì),其特征在于,所說的輸入手段為從文本中抽取單字構(gòu)造語言單元。
13.根據(jù)權(quán)利要求11所述的存儲介質(zhì),其特征在于,所述的廣義歸約手段,采用增量式廣義歸約。
14.根據(jù)權(quán)利要求11所述的存儲介質(zhì),其特征在于,還包括語言單元表,包含若干表項(xiàng),每個(gè)表項(xiàng)用以存儲分析過程中涉及的語言單元;所說的分析手段中,每當(dāng)有新的語言單元加入隊(duì)列時(shí),同時(shí)也記錄在語言單元表中。
15.根據(jù)權(quán)利要求14所述的存儲介質(zhì),其特征在于,所述的語言單元表項(xiàng),還包含“標(biāo)識”字段,用以唯一表示一個(gè)語言單元;所述的語言單元表項(xiàng),還包含“歸約規(guī)則”字段,用以指明該語言單元通過什么歸約規(guī)則得到;所說的語言單元表項(xiàng),還包含“參與歸約”字段,用以指明哪些語言單元參與歸約產(chǎn)生該表項(xiàng)存儲的語言單元。
全文摘要
本發(fā)明涉及一種近似文本分析的裝置與方法。其中的裝置包含(1)緩沖隊(duì)列的存儲手段,用于緩存語言單元;(2)廣義歸約手段,用于進(jìn)行廣義歸約;(3)輸入手段,用于從裝置外得到語言單元;(4)分析手段,用于進(jìn)行近似文本分析,得到語言單元之間可能的關(guān)系。本發(fā)明適合作為大規(guī)模定量文本分析,文本數(shù)據(jù)挖掘的前導(dǎo)階段。
文檔編號G06F17/27GK1648895SQ200510023589
公開日2005年8月3日 申請日期2005年1月26日 優(yōu)先權(quán)日2005年1月26日
發(fā)明者劉健, 吳耿鋒 申請人:上海大學(xué)