亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

語法編譯方法、語義解析方法以及對應裝置與流程

文檔序號:12005819閱讀:239來源:國知局
語法編譯方法、語義解析方法以及對應裝置與流程
語法編譯方法、語義解析方法以及對應裝置【技術領域】本發(fā)明涉及計算機應用技術領域,特別涉及一種語法編譯方法、語義解析方法以及對應裝置。

背景技術:
語音識別和口語語義解析是語音交互產(chǎn)品的兩個重要技術,語音識別是將語音的內容轉換成文字,口語語義解析是理解口語語音信號承載的信息。語音識別率和口語語義解析的準確度直接影響用戶體驗。為了提高語音識別率和口語語義解析的準確度,目前主要采用的是W3C(萬維網(wǎng)聯(lián)盟)規(guī)范的兩種上下文無關語法來構建識別空間,即利用BNF(巴克斯范式)形式的語法或基于XML(可擴展標記語言)格式的語法。人們說話的方式為自然口語,行為、措詞和文本輸入都有較大差異,例如口語中存在語法不嚴格和語序顛倒,W3C推薦的BNF語法和XML格式的語法為主流的大詞匯量連續(xù)語音識別器所應用,但由于BNF和XML的解釋層級深,采用這兩種語法進行的語義映射和句法理解定義非常復雜,具有可讀性差和可維護性差的缺陷,且很難進行相關的語法編譯和語義解析。

技術實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種語法編譯方法、語義解析方法以及對應裝置,以便于提高可讀性和可維護性。具體技術方案如下:一種語法編譯方法,按照語義的常用語句表達采用基于邏輯語法直觀語言LGML預先定義對應的語法描述文件和詞類描述文件,在所述語法描述文件中由詞類、操作符和函數(shù)構成常用語句的描述,所述詞類描述文件用于描述詞類的具體取值;將所述語法描述文件和詞類描述文件分別按照預設順序的歸約方法生成語法描述文件的語法樹和詞類描述文件的詞類樹;將所述詞類樹掛接在所述語法樹中對應詞類的位置,形成所述語義的語法樹。根據(jù)本發(fā)明一優(yōu)選實施方式,所述詞類描述文件中包含詞項,或者除了包含詞項外還包含操作符和函數(shù)中的至少一種以描述各詞項之間的關系。根據(jù)本發(fā)明一優(yōu)選實施方式所述操作符包括以下至少一種:操作符+表示兩個以上的操作數(shù)串聯(lián);操作符|表示兩個以上的操作數(shù)并列關系;操作符()表示操作數(shù)形成一個不可忽略的組合;操作符[]表示操作數(shù)形成一個可忽略的組合;操作符;表示語句結束;操作符:表示詞類描述文件中詞類的解釋關系;操作符“”表示引用了外部詞典。根據(jù)本發(fā)明一優(yōu)選實施方式,所述語法描述文件中的函數(shù)包括以下函數(shù)中的至少一種:函數(shù)&repeat(EXP,min,max)表示把語法片段EXP重復最少min遍,最多max遍;函數(shù)&repeat(EXP,n)表示把EXP重復n遍;函數(shù)&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列;函數(shù)&grammar(gammar_name)表示語法名稱為grammar_name的語法描述文件;函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)實現(xiàn)EXP到語義標簽key的映射;其中函數(shù)&magic(EXP,key,default)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為T,否則key的值為default;函數(shù)&magic(EXP,key,default,display)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為display,否則key的值為default。根據(jù)本發(fā)明一優(yōu)選實施方式,所述詞類描述文件中的函數(shù)包括以下函數(shù)中的至少一種:函數(shù)&repeat(EXP,min,max)表示把語法片段EXP重復最少min遍,最多max遍;函數(shù)&repeat(EXP,n)表示把EXP重復n遍;函數(shù)&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述語義的語法樹中,葉節(jié)點為詞類描述文件中的詞項或者引用的外部詞典,非葉節(jié)點為操作符或函數(shù)名,非葉節(jié)點的操作數(shù)為該非葉節(jié)點的各子樹表示的內容。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述語義的語法樹中所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)作為非葉節(jié)點進行標識,保存所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)對應的映射表。一種語義解析方法,該語義解析方法包括:將待解析文本在采用上述語法編譯方法得到的語法樹上按照所述預設順序進行匹配,如果所述待解析文本完全與所述語法樹匹配,則將所述語法樹所對應的語義確定為所述待解析文本的語義。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述匹配的過程中,如果所述待解析文本中某文本片段與所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則在解析結果中所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。一種語義解析方法,該語義解析方法包括:將待解析文本在采用上述語法編譯方法得到的語法樹上按照所述預設順序進行前向最大匹配,如果所述待解析文本中存在文本片段與所述語法樹中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則將所述語法樹所對應的語義確定為所述待解析文本的語義。根據(jù)本發(fā)明一優(yōu)選實施方式,在解析結果中匹配的函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。根據(jù)本發(fā)明一優(yōu)選實施方式,只有所述待解析文本中存在文本片段與所述語法樹中預設的關鍵函數(shù)&magic(EXP,key,default,display)或關鍵函數(shù)&magic(EXP,key,default)所標識的子樹匹配,才將所述語法樹所對應的語義確定為所述待解析文本的語義。一種語義解析方法,該語義解析方法包括:S1、將待解析文本在采用上述語法編譯方法得到的語法樹上按照所述預設順序進行匹配,如果所述待解析文本完全與所述語法樹匹配,則將所述語法樹所對應的語義確定為所述待解析文本的語義;否則執(zhí)行步驟S2;S2、將所述待解析文本在所述語法樹上按照所述預設順序進行前向最大匹配,如果所述待解析文本中存在文本片段與所述語法樹中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則將所述語法樹所對應的語義確定為所述待解析文本的語義。根據(jù)本發(fā)明一優(yōu)選實施方式,在解析結果中匹配的函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。一種語法編譯裝置,該語法編譯裝置包括:文件存儲單元,用于存儲語義對應的語法描述文件和詞類描述文件,所述語法描述文件和詞類描述文件是按照語義的常用語句表達采用基于邏輯語法直觀語言LGML預先定義的,在所述語法描述文件中由詞類、操作符和函數(shù)構成常用語句的描述,所述詞類描述文件用于描述詞類的具體取值;語法樹生成單元,用于將所述語法描述文件和詞類描述文件分別按照預設順序的歸約方法生成語法描述文件的語法樹和詞類描述文件的詞類樹,將所述詞類樹掛接在所述語法樹中對應詞類的位置,形成所述語義的語法樹。根據(jù)本發(fā)明一優(yōu)選實施方式,所述詞類描述文件中包含詞項,或者除了包含詞項外還包含操作符和函數(shù)中的至少一種以描述各詞項之間的關系。根據(jù)本發(fā)明一優(yōu)選實施方式,所述操作符包括以下至少一種:操作符+表示兩個以上的操作數(shù)串聯(lián);操作符|表示兩個以上的操作數(shù)并列關系;操作符()表示操作數(shù)形成一個不可忽略的組合;操作符[]表示操作數(shù)形成一個可忽略的組合;操作符;表示語句結束;操作符:表示詞類描述文件中詞類的解釋關系;操作符“”表示引用了外部詞典。根據(jù)本發(fā)明一優(yōu)選實施方式,所述語法描述文件中的函數(shù)包括以下函數(shù)中的至少一種:函數(shù)&repeat(EXP,min,max)表示把語法片段EXP重復最少min遍,最多max遍;函數(shù)&repeat(EXP,n)表示把EXP重復n遍;函數(shù)&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列;函數(shù)&grammar(gammar_name)表示語法名稱為grammar_name的語法描述文件;函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)實現(xiàn)EXP到語義標簽key的映射;其中函數(shù)&magic(EXP,key,default)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為T,否則key的值為default;函數(shù)&magic(EXP,key,default,display)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為display,否則key的值為default。根據(jù)本發(fā)明一優(yōu)選實施方式,所述詞類描述文件中的函數(shù)包括以下函數(shù)中的至少一種:函數(shù)&repeat(EXP,min,max)表示把語法片段EXP重復最少min遍,最多max遍;函數(shù)&repeat(EXP,n)表示把EXP重復n遍;函數(shù)&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述語義的語法樹中,葉節(jié)點為詞類描述文件中的詞項或者引用的外部詞典,非葉節(jié)點為操作符或函數(shù)名,非葉節(jié)點的操作數(shù)為該非葉節(jié)點的各子樹表示的內容。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述語義的語法樹中所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)作為非葉節(jié)點進行標識,所述文件存儲單元進一步保存所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)對應的映射表。一種語義解析裝置,該語義解析裝置包括:整句匹配單元,用于將待解析文本在由上述語法編譯裝置得到的語法樹上按照所述預設順序進行匹配,如果所述整句匹配單元確定所述待解析文本完全與所述語法樹匹配,則將匹配結果發(fā)送給結果確定單元;結果確定單元,用于接收到所述匹配結果時,將所述語法樹所對應的語義確定為所述待解析文本的語義。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述匹配的過程中,如果所述待解析文本中某文本片段與所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則在所述結果確定單元得到的解析結果中所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。一種語義解析裝置,該語義解析裝置包括:語義映射匹配單元,用于將待解析文本在由上述語法編譯裝置得到的語法樹上按照所述預設順序進行前向最大匹配,如果所述待解析文本中存在文本片段與所述語法樹中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則將匹配結果發(fā)送給結果確定單元;結果確定單元,用于在接收到所述匹配結果時,將所述語法樹所對應的語義確定為所述待解析文本的語義。根據(jù)本發(fā)明一優(yōu)選實施方式,在所述結果確定單元得到的解析結果中所述函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。根據(jù)本發(fā)明一優(yōu)選實施方式,所述語義映射匹配單元只有在所述待解析文本中存在文本片段與所述語法樹中預設的關鍵函數(shù)&magic(EXP,key,default,display)或關鍵函數(shù)&magic(EXP,key,default)所標識的子樹匹配時,才將匹配結果發(fā)送給所述結果確定單元。一種語義解析裝置,該語義解析裝置包括:整句匹配單元,用于將待解析文本在由語法編譯裝置得到的語法樹上按照所述預設順序進行匹配,如果所述整句匹配單元確定所述待解析文本完全與所述語法樹匹配,則將匹配結果發(fā)送給結果確定單元;否則,觸發(fā)語義映射匹配單元;語義映射匹配單元,用于受到觸發(fā)后,將所述待解析文本在所述語法樹上按照所述預設順序進行前向最大匹配,如果所述待解析文本中存在文本片段與所述語法樹中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則將匹配結果發(fā)送給結果確定單元;結果確定單元,用于接收到匹配結果時,將所述語法樹對應的語義確定為所述待解析文本的語義。根據(jù)本發(fā)明一優(yōu)選實施方式,所述結果確定單元如果接收到所述語義映射匹配單元的匹配結果,則在解析結果中匹配的函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。由以上技術方案可以看出,本發(fā)明提供的語法編譯方法和語義解析方法基于LGML預先定義的語法描述文件和詞類描述文件,其更接近于人的口語表達,相比較BNF和XML解釋層級淺,可讀性更強且更易維護?!靖綀D說明】圖1a為本發(fā)明實施例提供的一個語法描述文件的語法樹示意圖;圖1b、圖1c和圖1d為本發(fā)明實施例提供的詞類描述文件的詞類樹示意圖;圖1e為本發(fā)明實施例提供的一個語義的語法樹示意圖;圖2a為本發(fā)明實施例提供的一個語法描述文件的語法樹實例圖;圖2b和圖2c為本發(fā)明實施例提供的一個詞類描述文件的詞類樹實例圖;圖2d為本發(fā)明實施例提供的一個語義的語法樹實例圖;圖3為本發(fā)明實施例提供的針對查詢天氣的語義對應的語法樹;圖4為本發(fā)明實施例提供的語法編譯裝置的結構圖;圖5為本發(fā)明實施例提供的第一種語義解析裝置的結構圖;圖6為本發(fā)明實施例提供的第二種語義解析裝置的結構圖;圖7為本發(fā)明實施例提供的第三種語義解析裝置的結構圖?!揪唧w實施方式】為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖和具體實施例對本發(fā)明進行詳細描述。本發(fā)明所提供的語法編譯方法基于一種新的語法描述語言,即基于邏輯語法直觀語言(LGML,LogicalGrammarbyManifestLanguage),該LGML不同于現(xiàn)有的BNF或XML的復雜結構,而更接近于自然口語的順序和描述方式。針對各語義的常用語句表達采用LGML預先定義對應的語法,采用LGML定義的語法由兩部分構成:語法描述文件和詞類描述文件。在語法描述文件中由操作符,詞類和函數(shù)構成常用的語句描述,該語法描述文件通常采用窮舉的方式預先定義各種語句描述。詞類和函數(shù)在語法描述文件中通常作為操作符的操作數(shù),詞類除了在語法描述文件中作為一個獨立的操作對象出現(xiàn)之外,也可以作為函數(shù)中的參數(shù)出現(xiàn)。詞類是對若干具有相同含義的詞項(指詞匯或詞組)所進行的統(tǒng)一標識,一個詞類具體包含的詞項在該詞類對應的詞類描述文件中定義,也就是說,詞類描述文件用于描述詞類的具體取值,在詞類描述文件中也會包含操作符和/或函數(shù)來描述各詞項之間的關系。詞類描述文件可以采用人工定義的方式,也可以采用機器挖掘的結果。下面對本發(fā)明實施例提供的LGML的上述具體構成進行詳細描述。首先語法描述文件和詞類描述文件中的操作符可以包括但不限于以下幾種:操作符+表示兩個以上的操作數(shù)串聯(lián),所謂串聯(lián)就是按順序描述語句。操作符|表示兩個以上的操作數(shù)并列的關系,所謂并列的關系就是操作數(shù)擇一的表達相同含義。操作符()表示操作數(shù)形成一個不可忽略的組合。操作符[]表示操作數(shù)形成一個可忽略的組合。操作符;表示語句結束。操作符:表示詞類描述文件中詞類的解釋關系。操作符“”表示引用了外部詞典,詞典中的詞匯是并列關系。詞類描述文件中的函數(shù)可以包括但不限于以下幾種:函數(shù)&repeat(EXP,min,max)表示把語法片段EXP重復最少min遍,最多max遍。函數(shù)&repeat(EXP,n)表示把EXP重復n遍。函數(shù)&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。例如:&perm(EXP1,EXP2,EXP3)等價于6個串聯(lián)項的并列:(EXP1+EXP2+EXP3)|(EXP1+EXP3+EXP2)|(EXP2+EXP3+EXP1)|(EXP2+EXP1+EXP3)|(EXP3+EXP1+EXP2)|(EXP3+EXP2+EXP1)語法描述文件中除了上面的函數(shù)&repeat(EXP,min,max)、函數(shù)&repeat(EXP,n)和函數(shù)&perm(EXP1,EXP2,…)之外,還可以包括但不限于以下幾種函數(shù):函數(shù)&grammar(gammar_name)通常寫在語法文件開頭,表示一個語句表達的語法名稱為grammar_name,該grammar_name標識該語句表達的語法描述文件。函數(shù)&magic(EXP,key,default,display)和函數(shù)&magic(EXP,key,default)實現(xiàn)EXP到語義標簽key的映射。其中函數(shù)&magic(EXP,key,default)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為T。否則key的值為default。函數(shù)&magic(EXP,key,default,display)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為display,否則key的值為default。下面舉一個例子,假設針對查詢天氣的語句表達預先定義語法描述文件和詞類描述文件,則語法描述文件可以定義為:詞類描述文件可以定義為:【意愿】:我+(想|想要);【查詢】:知道|查詢;【時間】:今天|明天;【地點】:&repeat(“place.dic”+[省|市],1,2);【天氣指標】:氣溫|濕度;……本發(fā)明中提供的語法編譯是將語義基于LGML編譯成一棵語法樹,在編譯語法樹的過程中對上述語法描述文件和詞類描述文件采用預設順序(本發(fā)明實施例中采用從左至右的順序)的歸約方法,按照函數(shù)和操作符所約束的關系生成的語法樹。具體地,采用從左至右的歸約方法,將語法描述文件生成語法樹,并且采用從左至右的歸約方法將詞類描述文件生成詞類樹,然后將詞類樹掛接在語法樹中對應詞類的位置,最終各詞類樹掛接在語法樹的葉子節(jié)點上。在將語法描述文件生成語法樹時,葉節(jié)點為詞類,非葉節(jié)點為操作符,作為非葉結點的操作符的操作數(shù)為該非葉結點的各子樹表示的內容。由于函數(shù)&repeat(EXP,min,max)、&repeat(EXP,n)、&perm(EXP1,EXP2,…)都可以表示成語法片段EXP與操作符的組合的形式,而函數(shù)&magic(EXP,key,default,display)和&magic(EXP,key,default)由于實現(xiàn)的是映射關系,因此需要在語法樹中對&magic函數(shù)進行標識,標識的方式可以是作為一個非葉節(jié)點出現(xiàn),同時存在該&magic函數(shù)所對應的映射表,例如該&magic函數(shù)的標識與其對應的映射表之間可以存在一個位置指向。下面舉一些簡單的例子:假設某語義的語法描述文件的內容為:[【A】+【B】]|【C】從左至右進行歸約,生成的語法描述文件的語法樹如圖1a所示,在圖1a中,葉節(jié)點為詞類【A】、【B】和【C】,非葉結點為操作符,其中非葉節(jié)點“+,[]”的操作數(shù)為【A】和【B】,非葉節(jié)點“|”為其各子樹的內容,左邊分支的子樹內容為[【A】+【B】],右邊分支的子樹內容為【C】。如果該語義的詞類描述文件分別為:【A】:a+b;【B】:[c+d]+e;【C】:f|g;那么分別對各詞類進行從左至右的歸約,詞類【A】、【B】和【C】對應的詞類樹分別為圖1b、圖1c和圖1d所示。然后將各詞類樹掛接在語法描述文件的語法樹上對應詞類的位置,最終形成上述語義的語法樹如圖1e所示。假設某語義的語法描述文件的內容為:&magic((【X】|【Y】),key,default,display)從左至右歸約,生成的語法描述文件的語法樹如圖2a所示,非葉節(jié)點“magic,+”標識&magic函數(shù),并且存在一個magic映射表,并指示出該magic函數(shù)的語法樹在映射表中的位置。假設該語義的詞類描述文件為:【X】:[a+b]+c;【Y】:[a+b]+d;那么分別對各詞類進行從左至右的歸約,詞類【X】和【Y】對應的詞類樹分別為圖2b和圖2c所示。然后將各詞類樹掛接在語法描述文件的語法樹上對應詞類的位置,最終形成該語義的語法樹如圖2d所示。也就是說,最終形成的語義的語法樹中,葉節(jié)點為詞類描述文件中的詞項或者引用的外部詞典,非葉節(jié)點為操作符或函數(shù)名,非葉節(jié)點的操作數(shù)為該非葉節(jié)點的各子樹表示的內容。如果在語法描述文件中存在兩個以上的&magic函數(shù),則可以將語法描述文件中的所有&magic函數(shù)的映射表合并形成一個映射表,以方便存儲和查詢。在完成上述語法編譯后,就可以在語法編譯形成的語法樹的基礎上進行語義解析。待解析文本可以是諸如對用戶的語音進行識別的文本結果,從而對該文本結果進行語義解析得到其所表達的語義,也可以是諸如用戶輸入搜索引擎的文本,對用戶輸入的該文本進行語義解析得到其所表達的語義,等等,在此不再一一窮舉。在進行語義解析時,是將待解析文本與各語法樹進行匹配,在匹配時采用從左至右的匹配方式,將匹配的語法樹所對應的語義確定為待解析文本的語義。在匹配過程中可以采用整句匹配的方式,也可以采用語義映射匹配的方式,或者采用整句匹配和語義映射匹配相結合的方式,即先整句匹配,若無匹配結果再進行語義映射匹配的方式。所謂整句匹配是待解析文本能夠完全與某語義的LGML的語法樹匹配,這種匹配方式是一種通用的、準確度較高的匹配方式,無論LGML中采用什么函數(shù)均適用。語義映射匹配是待解析文本中的文本片段能夠與&magic函數(shù)定義的語法片段匹配,即待解析文本中的全部或部分文本能夠與語法樹中&magic函數(shù)所標識的子樹匹配,則確定該解析文本的語義包含該&magic函數(shù)所映射的語義。整句匹配時,將待解析文本與語法樹的匹配方式與現(xiàn)有語法樹匹配方式基本相同,只是順序是按照從左至右的順序進行,只有待解析文本能夠在語法樹上完全匹配到,則確定匹配成功。特別地,在匹配過程中,如果匹配到&magic函數(shù)所標識的子樹,則根據(jù)&magic函數(shù)所標識的子樹的匹配結果從該&magic函數(shù)所指示的映射表中獲取映射結果作為解析結果。即,如果待解析文本中某文本片段與&magic函數(shù)所標識的子樹完全匹配,則在解析結果中該&magic函數(shù)所指示的映射表中的key的取值為該文本片段或映射表中display的取值。以圖2b所示語法樹為例,假設待解析文本為:abd,那么從左至右在語法樹上進行匹配,“|”左邊子樹沒有匹配,但右邊子樹能夠完全匹配,因此可以確定abd的語義解析結果為該語義樹所對應的語義,在解析結果中key的取值為display的取值。如果待解析文本為eabdc,則與該語法樹不匹配,該語法樹所對應的語義不是該待解析文本的語義。對于&magic函數(shù)這種特殊的函數(shù),對其所標識的子樹可以采用語義映射匹配的方式,即將&magic函數(shù)所標識的子樹與待解析文本做前向最大匹配,如果待解析文本中存在文本片段與&magic函數(shù)所標識的子樹匹配,則可以確定該待解析文本的語義為該語法樹對應的語義,在解析結果中該&magic函數(shù)所指示的映射表中的key的取值為該文本片段或映射表中display的取值。同樣以圖2b所示語法樹為例,假設待解析文本為eabdc,將該語法樹與待解析文本進行前向最大匹配(即從e作為待解析文本的開始進行匹配,如果匹配不成功再從a開始作為待解析文本的開始進行匹配,如果不成功再從b開始,依次類推),結果是其中的文本片段abd能夠與該語法樹匹配,則可以確定待解析文本的語義為該語法樹對應的語義,解析結果中key的取值為display的取值。鑒于整句匹配的準確性和語義映射匹配的高覆蓋率,為了整合兩種匹配方式的優(yōu)點,在本發(fā)明實施例中可以采取先整句匹配后語義映射匹配的方式,即如果整句匹配失敗再進行語義映射匹配。下面舉一個具體的實例,假設針對查詢天氣的語義對應的語法樹如圖3所示,需要說明的是,在該圖中為了描述方便將該&magic的標識magic進行了編號,在實際情況中語法樹中的節(jié)點magic標識是相同的,但存在與其對應的magic映射表的位置指向,圖3中為了清楚沒有采用位置指向的方式,而是將magic標識采用編號的方式來呈現(xiàn)與magic映射表的指向關系。另外,在實際情況中可以將各magic映射表合并成一張映射表的形式。如果待解析文本為“我想知道北京溫度”,能夠整句匹配成功,magic1映射到“today”,magic2映射到“北京”,magic3映射到“weather”,因此該待解析文本的語義為查詢天氣,解析結果中date的取值為“today”,place的取值為“北京”,weather的取值為“weather”,用戶雖然沒有說今天,但由于語法中規(guī)定magic1的操作符為[]是可忽略的,因此取默認值“today”。如果待解析文本為“告訴我溫度”,由于語法中未定義“告訴我”的相關語法片段,因此整句匹配失敗,然后進行語義映射匹配,其中“溫度”這一文本片段與magic3的子樹匹配成功,則語義映射匹配成功,仍可以認為該待解析文本的語義為查詢天氣,magic1映射到“today”,magic2映射到“LBS”,magic3映射到“weather”,因此解析結果中date的取值為“today”,place的取值為“LBS”,weather的取值為“weather”。另外在語義映射匹配過程中可以對關鍵的magic函數(shù)進行設置,只有關鍵的magic函數(shù)對應的子樹匹配成功才認為語義映射匹配成功。例如可以將圖3所示的語法樹中magic3函數(shù)設置為關鍵的magic函數(shù),只有該magic函數(shù)對應的子樹匹配成功才認為語義映射匹配成功。舉個例子,當待解析文本為“我想知道北京”,雖然“我想知道北京”整句匹配失敗,但“北京”這一文本片段與magic2函數(shù)對應的子樹匹配成功,但由于關鍵的magic3函數(shù)沒有匹配成功,仍不會認為語義映射匹配成功,不能認為該待解析文本為查詢天氣的語義。還可能存在這樣的情況,在一個語義的語法樹中進行語義映射匹配時,存在多個&magic函數(shù)的子樹都能夠與待解析文本匹配的情況,為了解決這種情況下的沖突,可以采用預先定義各子樹的優(yōu)先級的方式來解決,或者以匹配的詞項數(shù)目最大等約束條件來解決。以上是對本發(fā)明所提供的方法進行的描述,下面結合實施例對本發(fā)明提供的裝置進行詳細描述。圖4為本發(fā)明實施例提供的語法編譯裝置的結構圖,如圖4所示,該語法編譯裝置主要包括文件存儲單元41和語法樹生成單元42。文件存儲單元41存儲語義對應的語法描述文件和詞類描述文件,語法描述文件和詞類描述文件是按照語義的常用語句表達采用基于LGML預先定義的,在語法描述文件中由詞類、操作符和函數(shù)構成常用語句的描述,詞類描述文件用于描述詞類的具體取值。在詞類描述文件中包含詞項,或者除了包含詞項外還包含操作符和函數(shù)中的至少一種以描述各詞項之間的關系。上述的操作符可以包括但不限于以下操作符中的至少一種:操作符+表示兩個以上的操作數(shù)串聯(lián);操作符|表示兩個以上的操作數(shù)并列關系;操作符()表示操作數(shù)形成一個不可忽略的組合;操作符[]表示操作數(shù)形成一個可忽略的組合;操作符;表示語句結束;操作符:表示詞類描述文件中詞類的解釋關系;操作符“”表示引用了外部詞典。詞類描述文件中的函數(shù)可以包括但不限于以下幾種:函數(shù)&repeat(EXP,min,max)表示把語法片段EXP重復最少min遍,最多max遍。函數(shù)&repeat(EXP,n)表示把EXP重復n遍。函數(shù)&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。例如:&perm(EXP1,EXP2,EXP3)等價于6個串聯(lián)項的并列:(EXP1+EXP2+EXP3)|(EXP1+EXP3+EXP2)|(EXP2+EXP3+EXP1)|(EXP2+EXP1+EXP3)|(EXP3+EXP1+EXP2)|(EXP3+EXP2+EXP1)語法描述文件中除了上面的函數(shù)&repeat(EXP,min,max)、函數(shù)&repeat(EXP,n)和函數(shù)&perm(EXP1,EXP2,…)之外,還可以包括但不限于以下幾種函數(shù):函數(shù)&grammar(gammar_name)通常寫在語法文件開頭,表示一個語句表達的語法名稱為grammar_name,該grammar_name標識該語句表達的語法描述文件。函數(shù)&magic(EXP,key,default,display)和函數(shù)&magic(EXP,key,default)實現(xiàn)EXP到語義標簽key的映射。其中函數(shù)&magic(EXP,key,default)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為T。否則key的值為default。函數(shù)&magic(EXP,key,default,display)在語法匹配過程中,當EXP與一個文本片段T匹配成功時,key的值為display,否則key的值為default。語法樹生成單元42負責將語法描述文件和詞類描述文件分別按照預設順序(例如采用從左至右的順序)的歸約方法生成語法描述文件的語法樹和詞類描述文件的詞類樹,將詞類樹掛接在語法樹中對應詞類的位置,形成語義的語法樹。在將語法描述文件生成語法樹時,葉節(jié)點為詞類,非葉節(jié)點為操作符,作為非葉結點的操作符的操作數(shù)為該非葉結點的各子樹表示的內容。由于函數(shù)&repeat(EXP,min,max)、&repeat(EXP,n)、&perm(EXP1,EXP2,…)都可以表示成語法片段EXP與操作符的組合的形式,而函數(shù)&magic(EXP,key,default,display)和&magic(EXP,key,default)由于實現(xiàn)的是映射關系,因此需要在語法樹中對&magic函數(shù)進行標識,標識的方式可以是作為一個非葉節(jié)點出現(xiàn),同時進一步保存該&magic函數(shù)所對應的語義映射,例如該&magic函數(shù)的標識與其對應的映射表之間可以存在一個位置指向。在最終生成的語義的語法樹中,葉節(jié)點為詞類描述文件中的詞項或者引用的外部詞典,非葉節(jié)點為操作符或函數(shù)名,非葉節(jié)點的操作數(shù)為該非葉節(jié)點的各子樹表示的內容。如果在語法描述文件中存在兩個以上的&magic函數(shù),則可以將語法描述文件中的所有&magic函數(shù)的映射表合并形成一個映射表,以方便存儲和查詢。基于圖4所示的語法編譯裝置得到的語義的語法樹,本發(fā)明提供的語義解析裝置可以采用三種結構實現(xiàn),一種單純采用整句匹配的方式,另一種單純采用語義映射匹配的方式,還有一種采用整句匹配和語義映射匹配相結合的方式。圖5為本發(fā)明實施例提供的第一種語義解析裝置的結構圖,該語義解析裝置單純采用整句匹配的方式,如圖5所示,該語義解析裝置包括:整句匹配單元51和結果確定單元52。整句匹配單元51將待解析文本在上述語義的語法樹上按照預設順序進行匹配,如果確定待解析文本完全與語法樹匹配,則將匹配結果發(fā)送給結果確定單元52。結果確定單元52接收到匹配結果時,將語法樹所對應的語義確定為待解析文本的語義。可以看出,整句匹配是待解析文本能夠完全與某語義的LGML的語法樹匹配,這種匹配方式是一種通用的、準確度較高的匹配方式,無論LGML中采用什么函數(shù)均適用。特別地,在整句匹配的過程中可能會匹配到&magic函數(shù)所標識的子樹,如果待解析文本中某文本片段與函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則在結果確定單元52得到的解析結果中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。圖6為本發(fā)明實施例提供的第二種語義解析裝置的結構圖,該語義解析裝置單純采用語義映射匹配,這種方式應用于包含將&magic函數(shù)所標識的子樹的語法樹,如圖6所示,該語義解析裝置包括:語義映射匹配單元61和結果確定單元62。語義映射匹配單元61將待解析文本在語義的語法樹上按照預設順序進行前向最大匹配,如果待解析文本中存在文本片段與語法樹中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則將匹配結果發(fā)送給結果確定單元62。結果確定單元62在接收到匹配結果時,將語法樹所對應的語義確定為待解析文本的語義。更進一步地,在結果確定單元62得到的解析結果中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。另外在語義映射匹配過程中可以對關鍵的magic函數(shù)進行設置,只有關鍵的magic函數(shù)對應的子樹匹配成功才認為語義映射匹配成功。即語義映射匹配單元61只有在待解析文本中存在文本片段與語法樹中預設的關鍵函數(shù)&magic(EXP,key,default,display)或關鍵函數(shù)&magic(EXP,key,default)所標識的子樹匹配時,才將匹配結果發(fā)送給結果確定單元62。圖7為本發(fā)明實施例提供的第三種語義解析裝置的結構圖,該語義解析裝置采用整句匹配和語義映射匹配相結合的方式,其中語義映射匹配通常適用于語法樹中包含&magic函數(shù)對應的子樹的情況。如圖7所示,該語義解析裝置包括:整句匹配單元71、語義映射匹配單元72和結果確定單元73。整句匹配單元71將待解析文本在語義的語法樹上按照預設順序進行匹配,如果整句匹配單元71確定待解析文本完全與語法樹匹配,則將匹配結果發(fā)送給結果確定單元73;否則,觸發(fā)語義映射匹配單元72。語義映射匹配單元72受到觸發(fā)后,將待解析文本在語法樹上按照預設順序進行前向最大匹配,如果待解析文本中存在文本片段與語法樹中函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所標識的子樹匹配,則將匹配結果發(fā)送給結果確定單元73。結果確定單元73無論接收到整句匹配單元71匹配結果還是語義映射匹配單元72的匹配結果,都可以將語法樹對應的語義確定為待解析文本的語義。更進一步地,結果確定單元73如果接收到語義映射匹配單元72的匹配結果,則在解析結果中匹配的函數(shù)&magic(EXP,key,default,display)或函數(shù)&magic(EXP,key,default)所對應的映射表中key的取值為該文本片段或映射表中display的取值。同樣,在語義映射匹配過程中可以對關鍵的magic函數(shù)進行設置,只有關鍵的magic函數(shù)對應的子樹匹配成功才認為語義映射匹配成功。即語義映射匹配單元72只有在待解析文本中存在文本片段與語法樹中預設的關鍵函數(shù)&magic(EXP,key,default,display)或關鍵函數(shù)&magic(EXP,key,default)所標識的子樹匹配時,才將匹配結果發(fā)送給結果確定單元73。需要特別說明的是,在語義解析的過程中,通常是對各語義的語法樹逐個進行匹配從而確定待解析文本對應的語義的,在本發(fā)明的實施例中均以在一個語法樹上進行匹配為例進行的描述,對于各語法樹的匹配過程相同。另外,在一些應用中,采用多層次的語義分析,那么可以在每一層次的語義分析中均采用本發(fā)明實施例提供的語義解析方法和語義解析裝置來實現(xiàn)。在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(Read-OnlyMemory,ROM)、隨機存取存儲器(RandomAccessMemory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1