一種基于格語義的智能語法分析方法
【專利摘要】本發(fā)明提供一種基于格語義的智能語法分析方法,技術采用的是根據(jù)語義規(guī)則化處理雙向最大分詞的基礎上,把語言指令輸入完整的切分成包含格語義模塊的最小信息單位應用格語法框架和格標記進一步優(yōu)化處理待分語句的分詞結果。大大提高了分詞的準確度,同時保障分詞效率的高效,避免了語境下歧義判斷的不足。
【專利說明】一種基于格語義的智能語法分析方法
【技術領域】
[0001] 本發(fā)明屬于人工智能領域中的智能語法系統(tǒng),具體指一種基于格語義的智能語法 分析方法。
【背景技術】
[0002] 在人工智能領域中,自然語言處理的語法分析技術適用于在人機交互過程中對語 言指令的切分詞。一般語句切分出來詞的語義準確度會直接影響對語言指令的語義自動判 定誤差。目前有一些方法用來提高分詞的準確性,但相應的都有一些缺陷,其中包括:
[0003] 單向最大分詞法:其中包含正向最大匹配法和逆向最大匹配法。通過對分詞詞表 的加載,對待切分句的最大詞長度定義后,從單一方向依次更具詞表內(nèi)詞條對比切分出詞 長最長的單元詞。此類型方法使得分詞的效率明顯提高,占用的系統(tǒng)資源相對較低。但屬 于傳統(tǒng)機械分詞,很難保障較高分詞的準確度。
[0004] 雙向分詞法:在單向最大分詞的基礎上,結合了正向分詞和逆向分詞的結果,加以 規(guī)則判定選擇輸出其中一項的分詞結果。此方法比較單向最大分詞,提高了其準確度,但對 分詞過程中歧義的排除較弱。
[0005] 數(shù)據(jù)庫特征檢索分詞:通過利用數(shù)據(jù)庫實現(xiàn)將數(shù)據(jù)庫字段特征項添加到待分詞系 統(tǒng)中,將系統(tǒng)提交的查詢詞以數(shù)據(jù)庫特征項為詞表進行對比分詞處理。此類型的方法改善 了對預置詞等常見詞在句中分詞精準度,但涉及到對大量前期在詞表里對每一個詞提取特 征的效率是非常低的。是在犧牲了分詞效率的前提下相應提高了分詞準確度。
[0006] 擴充自定義詞的分詞法:利用用戶提供的對自定義詞屬性的描述,生成自定義詞 典用于加載檢索待輸入詞且更具其自定義生成的屬性進行判斷。此類自定義加載方法提高 了新詞,外來詞,成語的切分準確度,但對大量一般詞匯的自動生成屬性的效率較低。
【發(fā)明內(nèi)容】
[0007] 所要解決的技術問題:
[0008] 本發(fā)明的目的是提高分詞系的準確度和效率,對自然語言中處理語義歧義分詞給 予優(yōu)化,使得分詞的結果能夠充分用于語義的理解和判定。
[0009] 技術方案:
[0010] 為了實現(xiàn)以上功能,本發(fā)明提供了一種基于格語義的智能語法分析方法,其特征 在于:該分析方法包含以下步驟:
[0011] 1)提供一個內(nèi)置語料庫的數(shù)據(jù)庫,設置語料庫中所有詞的詞性,并根據(jù)格語法理 論給各詞定義關于格標記的字段,對詞進行相關的格定義;
[0012] 2)取得待分析的文本語句,進行去非漢語符號處理;
[0013] 3)根據(jù)單向分詞法,分別通過正向最大匹配法和逆向逆向最大匹配法,將步驟2) 處理過的待分析文本語句切分成詞鏈,分別得到詞鏈A和詞鏈B ;之后對詞鏈A和詞鏈B進 行權重化處理,權衡輸出的詞鏈最大限度滿足以下條件:
[0014] (1)非詞表詞數(shù)越少越好;
[0015] (2)切出的詞數(shù)目總數(shù)越少越好;
[0016] (3)切分出的單個詞越長越好。
[0017] 4)對照語料庫內(nèi)的詞表,結合詞鏈上每個詞前后節(jié)點內(nèi)的詞內(nèi)容,去除有重復內(nèi) 容的詞,得到機械分詞的結果;
[0018] 5)通過詞鏈內(nèi)對詞性的判斷,得到句中所有動詞集合的詞鏈表;
[0019] 6)根據(jù)格語法理論中格標記的詮釋,確定出句中謂語動詞后,再根據(jù)格語法理論 中格標記的詮釋,依次切分出所屬語法格的格塊,把格塊內(nèi)的詞組合成有語義的詞組。
[0020] 進一步的,步驟3)中所述的單向分詞法具體為:
[0021] 首先將獲取到的文本語句轉換成全中文的字符編碼,并定義字符(Ien)的長度N ;
[0022] 其次記錄整個字符的起始位置,并依次取長度為N的字符串;
[0023] 最后對每個字符串依次查詢語料庫中是否有匹配的詞語,如果有,將該字符串添 加到分詞鏈表,并輸出;如果沒有,舍棄當前字符串的最后一個字,將剩余部分重新查詢,直 到該字符串剩余部分在語料庫中能查詢到有匹配的詞語,將此剩余部分添加到分詞鏈表, 并輸出;再從此剩余部分的后一個字符開始取長度為N的字符串,重復這個步驟的程序,直 到文本語句結束。
[0024] 進一步的,步驟3)中對詞鏈A和詞鏈B進行權重化處理確定最終是輸出詞鏈A還 是詞鏈B的具體過程是:應用三條規(guī)則分析詞鏈A和詞鏈B,其中
[0025] 規(guī)則一:非詞表詞數(shù)越少越好;即:語料庫詞表內(nèi)包含待切分句子中越多的詞匯, 能識別的詞越多越好;
[0026] 規(guī)則二:切出的詞數(shù)目總數(shù)越多越好;
[0027] 規(guī)則三:切分出的單個詞越長越好;
[0028] 利用以上三條規(guī)則分析詞鏈A和詞鏈B后,最終根據(jù)以下六種情況輸出結論:
[0029] (1)當詞鏈A和詞鏈B的詞數(shù)目總數(shù)一樣,且詞鏈A的非詞表詞數(shù)更少,但詞鏈A 內(nèi)單個詞詞長比B短;則輸出出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈A ;
[0030] (2)當詞鏈A和詞鏈B的詞數(shù)目總數(shù)一樣,但詞鏈A的非詞表詞數(shù)更多,且詞鏈A 內(nèi)單個詞詞長比詞鏈B中的長;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈B ;
[0031] (3)當詞鏈A和詞鏈B內(nèi)的單個詞詞長相同,且詞鏈A的非詞表詞數(shù)更少,但詞鏈 A內(nèi)詞數(shù)目總數(shù)比詞鏈B內(nèi)的少;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈A ;
[0032] (4)當詞鏈A和詞鏈B內(nèi)的單個詞詞長相同,但詞鏈A的非詞表詞數(shù)更多,且詞鏈 A內(nèi)詞數(shù)目總數(shù)比B內(nèi)的多;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈B ;
[0033] (5)當詞鏈A和詞鏈B內(nèi)的非詞表數(shù)目一樣,且詞鏈A的詞數(shù)目總數(shù)比詞鏈B的 少,但詞鏈A內(nèi)的單個詞詞長比詞鏈B內(nèi)的短;則輸出詞數(shù)目總數(shù)少的算法結果,S卩:詞鏈 A ;
[0034] (6)當詞鏈A和詞鏈B內(nèi)的非詞表數(shù)目一樣,但詞鏈A的詞數(shù)目總數(shù)比詞鏈B的 多,且詞鏈A內(nèi)的單個詞詞長比詞鏈B內(nèi)的長;則輸出詞數(shù)目總數(shù)少的算法結果,S卩:詞鏈 B0
[0035] 步驟1)中所述的詞性的格定義具體包括第一詞性、第二詞性。
[0036] 更進一步的,所述步驟5)具體為:
[0037] 依照語料庫內(nèi)詞表查詢詞鏈內(nèi)所有詞的詞性,對詞鏈依次查詢其第一詞性、第二 詞性;遍歷得出第一詞性是動詞且無格標記的動詞、第二詞性是動詞且無格標記、第一詞性 是動詞且有格標記、第二詞性是動詞且有格標記的動詞,形成一個動詞鏈表。
[0038] 作為一種優(yōu)化,在進行所述步驟6)時,如果出現(xiàn)多個謂語動詞,優(yōu)先選擇第一詞 性為動詞且無格標記的動詞作為核心謂語動詞;具體規(guī)則為:
[0039] (1)當謂語是連動結構,定最后一個謂語為核心謂語動詞;
[0040] (2)當謂語不是連動結構,定第一詞性是動詞,且不帶格標記的動詞為核心謂語動 詞;
[0041] (3)當動詞的級別一樣,根據(jù)動詞的格框架,把句子切分成多個短句,每一個短句 內(nèi)都有只有一個謂語動詞,再根據(jù)單謂語動詞句規(guī)則遞歸處理。
[0042] 有益效果:
[0043] 為了更有效的輔助自然語言在語義分析系統(tǒng)方面對中文句子語義的理解,本發(fā)明 技術采用的是根據(jù)語義規(guī)則化處理雙向最大分詞的基礎上,把語言指令輸入完整的切分成 包含格語義模塊的最小信息單位應用格語法框架和格標記進一步優(yōu)化處理待分語句的分 詞結果。大大提高了分詞的準確度,同時保障分詞效率的高效,避免了語境下歧義判斷的不 足。
[0044] 本技術提出了基于格語義的智能語法分析系統(tǒng),對比現(xiàn)有的技術,增強了切分詞 后,詞鏈的語義可利用度和在與語義分析對接的契合程度;排除了語義歧義、成語和自定義 詞處理,提高了分詞的精度和效率。其有益效果適用于在市場上大部分采用語義進行語法 切詞分析的自然語言分析統(tǒng)。本技術的易擴展性和高融合性在格語義系統(tǒng)尤為突出。
【專利附圖】
【附圖說明】
[0045] 下面結合附圖和實施例對本發(fā)明進一步說明:
[0046] 圖1為單向最大匹配算法的流程圖;
[0047] 圖2為本發(fā)明提供的基于格語義的智能語法分析流程圖。
【具體實施方式】
[0048] 本發(fā)明提供一種基于格語義的智能語法分析方法,為使本發(fā)明的目的,技術方案 及效果更加清楚,明確,以及參照附圖并舉實例對本發(fā)明進一步詳細說明。應當理解,此處 所描述的具體實施僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0049] 一種基于格語義的智能語法分析方法,該分析方法包含以下步驟:
[0050] 第一步,提供一個內(nèi)置語料庫的數(shù)據(jù)庫,設置語料庫中所有詞的詞性,并根據(jù)格語 法理論給各詞定義關于格標記的字段,對詞進行相關的格定義;
[0051] 所述詞的詞性定義具體包括第一詞性、第二詞性;對于格定義,在格語法里,不是 每一個語義格都有格定義;格語法里有標準格和擴展格兩類,其中在把句子內(nèi)容切分為詞 塊,只有少數(shù)標準格和一些擴展格是可以根據(jù)詞塊的格標記相應填入。但不是切出的每一 個在語料庫詞表里的詞都有一一對應的格標記,含有格標記的詞占少數(shù),大部分詞表里關 于格標記字段的屬性值是null。
[0052] 第二步,取得待分析的文本語句,進行去非漢語符號處理;在window平臺下得到 的是GB2312編碼的字符串,相應的Linux平臺下得到的是UFT8編碼的字符串。
[0053] 第三步,根據(jù)單向分詞法,分別通過正向最大匹配法和逆向逆向最大匹配法,將第 二步處理過的待分析文本語句切分成詞鏈,分別得到詞鏈A和詞鏈B ;
[0054] 進一步的,這里所述的單向分詞法具體步驟如圖1所示,中間,正向最大匹配法 為:
[0055] 首先將獲取到的文本語句轉換成同意的字符編碼,并定義字符(Ien)的長度N ;
[0056] 其次記錄整個字符的起始位置,并依次取長度為N的字符串;
[0057] 最后對每個字符串依次查詢語料庫中是否有匹配的詞語,如果有,將該字符串添 加到分詞鏈表,并輸出;如果沒有,舍棄當前字符串的最后一個字,將剩余部分重新查詢,直 到該字符串剩余部分在語料庫中能查詢到有匹配的詞語,將此剩余部分添加到分詞鏈表, 并輸出;再從此剩余部分的后一個字符開始取長度為N的字符串,重復這個步驟的程序,直 到文本語句結束。
[0058] 逆向最大匹配法順序相反,查詢時,記錄整個字符的結束位置,并依次取長度為N 的字符串;對每個字符串依次查詢語料庫中的詞語,如果有,將該字符串添加到分詞鏈表, 并輸出;如果沒有,舍棄當前字符串的第一個字,將剩余部分重新查詢,知道該字符串剩余 部分在預料庫中能查詢到有匹配的詞語,將詞剩余部分添加到分詞鏈表,并輸出;再從詞剩 余部分的前一個字符開始去長度為N的字符串;重復該步驟的程序,知道文本語句結束。
[0059] 之后對詞鏈A和詞鏈B進行權重化處理,權衡輸出的詞鏈最大限度滿足以下條 件:
[0060] (1)非詞表詞數(shù)越少越好;即:語料庫詞表內(nèi)包含待切分句子中越多的詞匯,能識 別的詞越多越好;
[0061] (2)切出的詞數(shù)目總數(shù)越少越好;例如:"政府部門"可以切成一個詞或者"政府" 和"部門"兩個詞,所以理想結果是"政府部門"。
[0062] (3)切分出的單個詞越長越好,例如:"政府部門"可以切成一個詞的最大詞長是 4,但切成"政府"和"部門"兩個詞的最大詞長只是2,所以理想結果是"政府部門"。
[0063] 利用以上三條規(guī)則分析詞鏈A和詞鏈B后,最終根據(jù)以下六種情況輸出結論:
[0064] (1)當詞鏈A和詞鏈B的詞數(shù)目總數(shù)一樣,且詞鏈A的非詞表詞數(shù)更少,但詞鏈A 內(nèi)單個詞詞長比B短;則輸出出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈A ;
[0065] (2)當詞鏈A和詞鏈B的詞數(shù)目總數(shù)一樣,但詞鏈A的非詞表詞數(shù)更多,且詞鏈A 內(nèi)單個詞詞長比詞鏈B中的長;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈B ;
[0066] (3)當詞鏈A和詞鏈B內(nèi)的單個詞詞長相同,且詞鏈A的非詞表詞數(shù)更少,但詞鏈 A內(nèi)詞數(shù)目總數(shù)比詞鏈B內(nèi)的少;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈A ;
[0067] (4)當詞鏈A和詞鏈B內(nèi)的單個詞詞長相同,但詞鏈A的非詞表詞數(shù)更多,且詞鏈 A內(nèi)詞數(shù)目總數(shù)比B內(nèi)的多;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈B ;
[0068] (5)當詞鏈A和詞鏈B內(nèi)的非詞表數(shù)目一樣,且詞鏈A的詞數(shù)目總數(shù)比詞鏈B的 少,但詞鏈A內(nèi)的單個詞詞長比詞鏈B內(nèi)的短;則輸出詞數(shù)目總數(shù)少的算法結果,S卩:詞鏈 A ;
[0069] (6)當詞鏈A和詞鏈B內(nèi)的非詞表數(shù)目一樣,但詞鏈A的詞數(shù)目總數(shù)比詞鏈B的 多,且詞鏈A內(nèi)的單個詞詞長比詞鏈B內(nèi)的長;則輸出詞數(shù)目總數(shù)少的算法結果,S卩:詞鏈 B〇
[0070] 處理方法如表1所示:
[0071] 表 1
【權利要求】
1. 一種基于格語義的智能語法分析方法,其特征在于:該分析方法包含以下步驟: 1) 提供一個內(nèi)置語料庫的數(shù)據(jù)庫,設置語料庫中所有詞的詞性,并根據(jù)格語法理論給 各詞定義關于格標記的字段,對詞進行相關的格定義; 2) 取得待分析的文本語句,進行去非漢語符號處理; 3) 根據(jù)單向分詞法,分別通過正向最大匹配法和逆向最大匹配法,將步驟2)處理過的 待分析文本語句切分成詞鏈,分別得到詞鏈A和詞鏈B ;之后對詞鏈A和詞鏈B進行權重化 處理,權衡輸出的詞鏈最大限度滿足以下條件: (1) 非詞表詞數(shù)越少越好; (2) 切出的詞數(shù)目總數(shù)越少越好; (3) 切分出的單個詞越長越好 4) 對照語料庫內(nèi)的詞表,結合詞鏈上每個詞前后節(jié)點內(nèi)的詞內(nèi)容,去除有重復內(nèi)容的 詞,得到機械分詞的結果; 5) 通過詞鏈內(nèi)對詞性的判斷,得到句中所有動詞集合的詞鏈表; 6) 根據(jù)格語法理論中格標記的詮釋,確定出句中謂語動詞后,再根據(jù)格語法理論中格 標記的詮釋,依次切分出所屬語法格的格塊,把切分出格塊內(nèi)的詞進一步合成有語義的詞 組。
2. 根據(jù)權利要求1所述的基于格語義的智能語法分析方法,其特征在于:步驟3)中所 述的單向分詞法具體為: 首先將獲取到的文本語句轉換成全中文的字符編碼,并定義字符(len)的長度N ; 其次記錄整個字符的起始位置,并依次取長度為N的字符串; 最后對每個字符串依次查詢語料庫中是否有匹配的詞語,如果有,將該字符串添加到 分詞鏈表,并輸出;如果沒有,舍棄當前字符串的最后一個字,將剩余部分重新查詢,直到該 字符串剩余部分在語料庫中能查詢到有匹配的詞語,將此剩余部分添加到分詞鏈表,并輸 出;再從此剩余部分的后一個字符開始取長度為N的字符串,重復這個步驟的程序,直到文 本語句結束。
3. 根據(jù)權利要求2所述的基于格語義的智能語法分析方法,其特征在于:步驟3)中對 詞鏈A和詞鏈B進行權重化處理確定是最終輸出詞鏈A還是詞鏈B的具體過程是:應用三 條規(guī)則分析詞鏈A和詞鏈B,其中 規(guī)則一:非詞表詞數(shù)越少越好;即:語料庫詞表內(nèi)包含待切分句子中越多的詞匯,能識 別的詞越多越好; 規(guī)則二:切出的詞數(shù)目總數(shù)越少越好; 規(guī)則三:切分出的單個詞越長越好; 利用以上三條規(guī)則分析詞鏈A和詞鏈B后,最終根據(jù)以下六種情況輸出結論: (1) 當詞鏈A和詞鏈B的詞數(shù)目總數(shù)一樣,且詞鏈A的非詞表詞數(shù)更少,但詞鏈A內(nèi)單 個詞詞長比B短;則輸出出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈A ; (2) 當詞鏈A和詞鏈B的詞數(shù)目總數(shù)一樣,但詞鏈A的非詞表詞數(shù)更多,且詞鏈A內(nèi)單 個詞詞長比詞鏈B中的長;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈B ; (3) 當詞鏈A和詞鏈B內(nèi)的單個詞詞長相同,且詞鏈A的非詞表詞數(shù)更少,但詞鏈A內(nèi) 詞數(shù)目總數(shù)比詞鏈B內(nèi)的少;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈A ; (4) 當詞鏈A和詞鏈B內(nèi)的單個詞詞長相同,但詞鏈A的非詞表詞數(shù)更多,且詞鏈A內(nèi) 詞數(shù)目總數(shù)比B內(nèi)的多;則輸出非詞表詞詞數(shù)少的算法結果,S卩:詞鏈B ; (5) 當詞鏈A和詞鏈B內(nèi)的非詞表數(shù)目一樣,且詞鏈A的詞數(shù)目總數(shù)比詞鏈B的少,但 詞鏈A內(nèi)的單個詞詞長比詞鏈B內(nèi)的短;則輸出詞數(shù)目總數(shù)少的算法結果,S卩:詞鏈A ; (6) 當詞鏈A和詞鏈B內(nèi)的非詞表數(shù)目一樣,但詞鏈A的詞數(shù)目總數(shù)比詞鏈B的多,且 詞鏈A內(nèi)的單個詞詞長比詞鏈B內(nèi)的長;則輸出詞數(shù)目總數(shù)少的算法結果,S卩:詞鏈B。
4. 根據(jù)權利要求1所述的基于格語義的智能語法分析方法,其特征在于:步驟1)中所 述的詞性的格定義具體包括第一詞性、第二詞性。
5. 根據(jù)權利要求4所述的基于格語義的智能語法分析方法,其特征在于:所述步驟5) 具體為: 依照語料庫內(nèi)詞表查詢詞鏈內(nèi)所有詞的詞性,對詞鏈依次查詢其第一詞性、第二詞性; 遍歷得出第一詞性是動詞且無格標記的動詞、第二詞性是動詞且無格標記、第一詞性是動 詞且有格標記、第二詞性是動詞且有格標記的動詞,形成一個動詞鏈表。
6. 根據(jù)權利要求5所述的基于格語義的智能語法分析方法,其特征在于:在進行所述 步驟6)時,如果出現(xiàn)多個謂語動詞,優(yōu)先選擇第一詞性為動詞且無格標記的動詞作為核心 謂語動詞;具體規(guī)則為: (1) 當謂語是連動結構,定最后一個謂語為核心謂語動詞; (2) 當謂語不是連動結構,定第一詞性是動詞,且不帶格標記的動詞為核心謂語動詞; (3) 當動詞的級別一樣,根據(jù)動詞的格框架,把句子切分成多個短句,每一個短句內(nèi)都 有只有一個謂語動詞,再根據(jù)單謂語動詞句規(guī)則遞歸處理。
【文檔編號】G06F17/30GK104391837SQ201410663580
【公開日】2015年3月4日 申請日期:2014年11月19日 優(yōu)先權日:2014年11月19日
【發(fā)明者】熊瑋 申請人:熊瑋