本申請(qǐng)涉及口語對(duì)話系統(tǒng)中語料庫的擴(kuò)展技術(shù),特別涉及擴(kuò)展口語對(duì)話系統(tǒng)語料庫的方法和系統(tǒng)。
背景技術(shù):
口語對(duì)話系統(tǒng)是一種可以與人通過聲音對(duì)話的計(jì)算機(jī)系統(tǒng)??谡Z對(duì)話系統(tǒng)是對(duì)話系統(tǒng)的一種,和一般的文本對(duì)話系統(tǒng)相比,主要多出了語音識(shí)別和語音合成模塊。
對(duì)話系統(tǒng)(dialog system)主要由輸入識(shí)別器/譯碼器(input recognizer/decoder)、自然語言理解單元(Natural Language Understanding unit)、對(duì)話管理器(dialog manager)、任務(wù)管理器(task managers)、自然語言生成單元(Natural Language Generator unit)和輸出渲染器(output renderer)組成。
口語對(duì)話系統(tǒng)的核心是自然語言理解單元,往往包含龐大的文本語料庫,并且包含三個(gè)主要模塊:專有名詞識(shí)別、詞性標(biāo)注和語義解析器(Semantic Parser)。
語音識(shí)別產(chǎn)生的文本進(jìn)入自然語言理解單元后,經(jīng)過專有名詞識(shí)別和詞性標(biāo)注,再由語義解析器進(jìn)行分析獲取語義信息,接著交給對(duì)話管理器確定語義,最后由自然語言生成單元做出應(yīng)答或者由任務(wù)管理器做出相應(yīng)任務(wù)安排。對(duì)于中文語音識(shí)別,語義解析器還需要在分析語義前進(jìn)行一些處理,包括中文分詞等。
因此,口語對(duì)話系統(tǒng)需要建立文本語料庫,其中語義解析方法分為基于規(guī)則方法和基于統(tǒng)計(jì)方法,本發(fā)明主要關(guān)注基于規(guī)則方法的語義解析?;谝?guī)則的方法的語料庫主要包括專有名詞詞庫、普通詞庫、分詞庫,以及最重要的規(guī)則庫。
受目前技術(shù)所限,基于規(guī)則方法的語義解析器往往是面向一個(gè)狹窄領(lǐng)域、詞匯量有限的系統(tǒng),其題材有旅游查詢、訂票、數(shù)據(jù)庫檢索等等。確立題材后,可以有針對(duì)性的建立相應(yīng)的詞庫和規(guī)則庫。
著名的口語解析器如卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University,CMU)的Phoenix,可以針對(duì)某領(lǐng)域建立單獨(dú)的規(guī)則模型,在規(guī)則模型內(nèi)建立所有語義網(wǎng)絡(luò)并且建立詞庫,語義網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)就是詞或其他子網(wǎng)絡(luò),然后由解析器對(duì)輸入句子進(jìn)行部分解析,匹配出在該領(lǐng)域下的固定語義所對(duì)應(yīng)的網(wǎng)絡(luò)路徑,得出一個(gè)或多個(gè)解析結(jié)果,最后再取最優(yōu)的解析結(jié)果。例如語音訂票系統(tǒng),建立與訂票相關(guān)的所有單詞的詞庫,建立訂票所有可能行為對(duì)應(yīng)的語義網(wǎng)絡(luò),只要獲取用戶語句全部或部分匹配的網(wǎng)絡(luò)路徑,就能知道其大致對(duì)應(yīng)的訂票行為,加以提取用戶語句中對(duì)應(yīng)部分的關(guān)鍵字,獲取訂票行為的所需參數(shù),系統(tǒng)就可以做出回應(yīng)。
當(dāng)用戶的語句無法解析或者解析結(jié)果沒有達(dá)到要求的情況下,現(xiàn)有大部分口語對(duì)話系統(tǒng)會(huì)返回例如“我無法理解您的意思”或者別的語義相關(guān)的回復(fù)。同時(shí)后臺(tái)收集用戶日志,由維護(hù)人員分析和擴(kuò)展語料庫。
在實(shí)際應(yīng)用中,自然語言理解單元最大的問題是,由于語言的復(fù)雜性,系統(tǒng)無法涵蓋所有語法,識(shí)別錯(cuò)誤或者語義無法理解的用戶語句仍然經(jīng)常出現(xiàn)。特別是由于方言、各地區(qū)語言習(xí)慣和用戶習(xí)慣的不同,給口語對(duì)話系統(tǒng)的語料庫建立帶來很多難點(diǎn),往往一個(gè)很龐大的語料庫也無法解析正確所有用戶說的話。因此,即使語音識(shí)別系統(tǒng)可以識(shí)別用戶所說的語句,進(jìn)入自然語言理解單元后,也可能由于語義解析器無法找到相對(duì)應(yīng)的規(guī)則以解析該語句,從而導(dǎo)致整體的識(shí)別率不高。因此,開發(fā)人員需要耗費(fèi)大量時(shí)間去更新維護(hù)語料庫,才能保證高識(shí)別率。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┝艘环N擴(kuò)展口語對(duì)話系統(tǒng)語料庫的方法和系統(tǒng),以提高口語對(duì)話系統(tǒng)的識(shí)別率。
所述擴(kuò)展口語對(duì)話系統(tǒng)語料庫的方法,包括:
對(duì)無法解析的語句進(jìn)行二次語義解析,得到候選解析結(jié)果;
如果用戶從候選解析結(jié)果中選擇了候選,則在所述語句與用戶所選擇的候選之間生成映射規(guī)則,將所生成的規(guī)則添加進(jìn)用戶專屬的預(yù)處理規(guī)則庫,并將用戶所選的候選語句及對(duì)應(yīng)的語義信息存入所述用戶對(duì)應(yīng)的專屬的副語料庫;
在解析用戶語句時(shí),結(jié)合用戶專屬的預(yù)處理規(guī)則庫、基于副語料庫生成的規(guī)則輔助主語料庫進(jìn)行語義解析。
較佳地,所述在解析用戶語句時(shí),結(jié)合用戶專屬的預(yù)處理規(guī)則庫、基于副語料庫生成的規(guī)則輔助主語料庫進(jìn)行語義解析包括:
如果基于主語料庫進(jìn)行語義解析的成功率大于設(shè)定的第一閾值,則先基于主語料庫進(jìn)行語義解析,如果成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,再基于副語料庫進(jìn)行語料庫解析;
如果基于主語料庫進(jìn)行語義解析的成功率小于設(shè)定的第二閾值,則先基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析失敗,再基于主語料庫進(jìn)行語義解析。
所述擴(kuò)展口語對(duì)話系統(tǒng)語料庫的系統(tǒng),包括:語義解析模塊、前端交互模塊和副語料庫管理模塊,其中:
語義解析模塊,用于在解析用戶語句時(shí),結(jié)合用戶專屬的預(yù)處理規(guī)則庫、基于副語料庫生成的規(guī)則輔助主語料庫進(jìn)行語義解析;在語義解析模塊解析失敗時(shí),進(jìn)行二次語義解析,生成候選解析結(jié)果交給前端交互模塊;
前端交互模塊,用于將語義解析模塊生成的候選解析結(jié)果反饋給用戶進(jìn)行交互,包含交互界面和交互處理;
副語料庫管理模塊,用于在主語料庫的基礎(chǔ)上創(chuàng)建用戶專屬的副語料庫和預(yù)處理規(guī)則庫,將從前端交互模塊接收的候選語句及對(duì)應(yīng)的語義信息寫入副語料庫,并將用戶語句到候選語句的映射規(guī)則寫入預(yù)處理規(guī)則庫,并負(fù)責(zé)基于副語料庫中的語句生成語義解析規(guī)則。
較佳地,所述語義解析模塊按照以下方式進(jìn)行語義解析:
如果基于主語料庫進(jìn)行語義解析的成功率大于設(shè)定的第一閾值,則先基于主語料庫進(jìn)行語義解析,如果成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,再基于副語料庫進(jìn)行語料庫解析;
如果基于主語料庫進(jìn)行語義解析的成功率小于設(shè)定的第二閾值,則先基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析失敗,再基于主語料庫進(jìn)行語義解析。
由上述技術(shù)方案可見,本申請(qǐng)通過由用戶添加副語料庫實(shí)現(xiàn)了語料庫擴(kuò)展。具體來說,本發(fā)明能夠產(chǎn)生如下有益效果:
1、有針對(duì)性的解決語料庫擴(kuò)展問題,提高了語料庫的健壯性。
一般語料庫中的規(guī)則可以解析大部分句子。但由于新句子和新名詞的產(chǎn)生,語音識(shí)別錯(cuò)誤而產(chǎn)生的不知所謂的詞語或句子、方言、個(gè)性化語言習(xí)慣等原因,需要對(duì)語料庫進(jìn)行擴(kuò)展。而此方法借助用戶選擇來擴(kuò)展語料庫,針對(duì)新詞新句、方言、識(shí)別錯(cuò)誤、單個(gè)用戶的習(xí)慣等,實(shí)現(xiàn)了動(dòng)態(tài)擴(kuò)展,提高了語料庫的健壯性。
2、減少了維護(hù)語料庫的成本。
加入副語料庫,而且一個(gè)用戶只對(duì)應(yīng)一個(gè)副語料庫,不用改變主語料庫,使用副語料庫輔助主語料庫完成解析,并且通過二次語義解析和與用戶交互來擴(kuò)展語料庫,而不是依賴于傳統(tǒng)的由維護(hù)人員擴(kuò)展語料庫,減少了維護(hù)成本。
3、提供口語對(duì)話系統(tǒng)的糾錯(cuò)功能,增強(qiáng)口語對(duì)話系統(tǒng)的可用性。
本發(fā)明將無法解析的語句呈現(xiàn)給用戶,用戶就可以知道自己所說的句子為何無法解析,一方面可以將用戶所說的句子或在其基礎(chǔ)上修改的句子添加進(jìn)語料庫,另一方面也可以放棄本次結(jié)果重新輸入增強(qiáng)口語對(duì)話系統(tǒng)的可用性。
附圖說明
圖1為本發(fā)明擴(kuò)展口語對(duì)話系統(tǒng)語料庫的系統(tǒng)模塊圖;
圖2為本發(fā)明擴(kuò)展口語對(duì)話系統(tǒng)語料庫的方法流程圖;
圖3為本發(fā)明副語料庫和主語料庫結(jié)合進(jìn)行語義解析的流程圖;
圖4為本發(fā)明帶語料庫擴(kuò)展功能的口語對(duì)話系統(tǒng)的工作流程圖。
具體實(shí)施方式
為使本申請(qǐng)的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)說明。
針對(duì)現(xiàn)有技術(shù)所存在的問題,本發(fā)明公開了一種在口語解析器的原語料庫之外擴(kuò)展語料庫的方法,該方法通過收集無法解析的用戶語句,再次解析得出可能正確的候選結(jié)果,由用戶選擇符合其話語意圖的候選語句,存入為用戶創(chuàng)建的專屬的副語料庫(即本發(fā)明在原語料庫之外擴(kuò)展的語料庫),擴(kuò)展系統(tǒng)的主語料庫(即:原語料庫),增強(qiáng)語義解析的健壯性,并且提高語料庫的正確性和覆蓋率。當(dāng)語義解析模塊解析失敗的時(shí)候,本發(fā)明系統(tǒng)收集用戶語句,對(duì)該語句進(jìn)行二次語義解析,在現(xiàn)有系統(tǒng)的基礎(chǔ)上采用降低標(biāo)準(zhǔn)和收斂閥值的方法篩選出一定量的可能正確的候選結(jié)果,并且反饋給用戶,例如:顯示在前端頁面上。同時(shí)前端頁面增加一個(gè)反饋頁面,呈現(xiàn)出候選結(jié)果列表,由用戶選擇一個(gè)滿足自己意圖的候選;如果未找到符合用戶意圖的候選,可以放棄本次輸入,或者修改其中最優(yōu)的候選語句或語義,以使其滿足用戶意圖。如果選擇了其中某個(gè)候選,就在該語句和用戶所選擇的候選之間生成映射規(guī)則,將所生成的規(guī)則添加進(jìn)用戶專屬的預(yù)處理規(guī)則庫;同時(shí)將用戶所選的候選語句及對(duì)應(yīng)的語義信息插入副語料庫。用戶專屬的預(yù)處理規(guī)則庫和副語料庫不會(huì)影響其他用戶的語義解析。
在用戶首次登錄時(shí),創(chuàng)建用戶專屬的副語料庫和預(yù)處理規(guī)則庫。副語料庫管理模塊基于副語料庫中用戶添加的語句和語義信息生成語義規(guī)則。副語料庫是一個(gè)動(dòng)態(tài)的語料庫,其隨著用戶添加語句的進(jìn)行而擴(kuò)展,其作用是輔助主語料庫參與語義解析。在基于副語料庫對(duì)語句進(jìn)行語義解析前,先以待解析語句匹配預(yù)處理規(guī)則庫中的規(guī)則前件,如果匹配成功,則將待解析語句替換成規(guī)則后件,然后進(jìn)行語義解析。
下文結(jié)合附圖具體介紹本發(fā)明方法和系統(tǒng)的具體實(shí)施方式。
圖1為本發(fā)明擴(kuò)展口語對(duì)話系統(tǒng)語料庫的系統(tǒng)模塊圖。該系統(tǒng)包括以下模塊:
語義解析模塊:用于在解析用戶語句時(shí),結(jié)合用戶專屬的預(yù)處理規(guī)則庫、基于副語料庫生成的規(guī)則輔助主語料庫進(jìn)行語義解析;在語義解析模塊解析失敗時(shí),進(jìn)行二次語義解析,生成候選解析結(jié)果交給前端交互模塊;
前端交互模塊:用于將語義解析模塊生成的候選解析結(jié)果反饋給用戶進(jìn)行交互,包含交互界面和交互處理;
副語料庫管理模塊:用于在主語料庫的基礎(chǔ)上創(chuàng)建用戶專屬的副語料庫和預(yù)處理規(guī)則庫,將從前端交互模塊接收的候選語句及對(duì)應(yīng)的語義信息寫入副語料庫,并將用戶語句到候選語句的映射規(guī)則寫入預(yù)處理規(guī)則庫。除此之外,還負(fù)責(zé)基于副語料庫中的語句生成語義解析規(guī)則。
下面對(duì)上述三個(gè)模塊分別進(jìn)行詳細(xì)說明。
1、語義解析模塊
用戶首先需要登錄口語對(duì)話系統(tǒng)。通過客戶端向語音接收設(shè)備說話,客戶端將用戶語音數(shù)據(jù)傳到服務(wù)器端,服務(wù)器端的語音識(shí)別模塊識(shí)別出用戶語句后,進(jìn)入語義解析模塊。
對(duì)用戶語句進(jìn)行專有名詞識(shí)別、標(biāo)準(zhǔn)化、中文分詞等處理后,語義解析模塊對(duì)用戶語句進(jìn)行解析。
當(dāng)用戶已登錄且存在副語料庫的情況下,語義解析模塊調(diào)用副語料庫及預(yù)處理規(guī)則庫輔助主語料庫進(jìn)行語義解析。
使用副語料庫輔助主語料庫進(jìn)行語義解析的方法如下:
如果基于主語料庫進(jìn)行語義解析的成功率比較高,比如大于等于60%,則先基于主語料庫進(jìn)行語義解析,如果成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,再基于副語料庫進(jìn)行語料庫解析;
在基于副語料庫進(jìn)行語句解析前,先以待解析語句依次匹配預(yù)處理規(guī)則庫中的規(guī)則前件,如果匹配,則以規(guī)則后件替換待解析的語句,然后基于副語料庫進(jìn)行語義解析;如果全部規(guī)則前件都匹配失敗,則直接基于副語料庫進(jìn)行語義解析;
如果基于副語料庫解析語句成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,則對(duì)待解析的語句進(jìn)行二次解析,即基于更寬松的約束條件進(jìn)行解析。
如果基于主語料庫進(jìn)行語義解析的成功率不高,比如低于50%,則先基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析失敗,然后再基于主語料庫進(jìn)行語義解析;如果基于副語料庫直接解析成功,則根據(jù)解析結(jié)果響應(yīng)用戶,而不需要再基于主語料庫進(jìn)行語義解析;如果基于副語料庫和主語料庫都解析失敗,則對(duì)用戶語句進(jìn)行二次解析,即基于更寬松的約束條件進(jìn)行解析。如果解析成功完成,則進(jìn)入其他系統(tǒng)進(jìn)行后續(xù)處理;如果解析失敗,不釋放內(nèi)存中的用戶語句,進(jìn)行二次語義解析。
二次語義解析采用現(xiàn)有解析方法,只是放寬解析成功的條件,降低閥值,得出一個(gè)或多個(gè)可能的候選結(jié)果。例如“到俺們那的火車票”,假設(shè)系統(tǒng)可以識(shí)別語音但是不能解析方言“俺們”,那么該句在一般情況下第一次解析結(jié)果為語義不明。二次語義解析采用較為寬松的約束條件,比如允許部分匹配,找到該句的相對(duì)最優(yōu)解:“到那的火車票”,這個(gè)時(shí)候會(huì)匹配上“查找火車票”的語義,該語義將會(huì)作為候選結(jié)果。但是由于查找目標(biāo)不明確,該語義的處理將會(huì)同時(shí)列出所有火車站的火車票作為應(yīng)答結(jié)果。最后將候選解析結(jié)果由服務(wù)器端的語義解析模塊傳遞給前端交互模塊。如果用戶是“南京”人,那么用戶選擇“到南京的火車票”。副語料庫管理模塊會(huì)將候選語句“到南京的火車票”及其語義信息,比如“查找火車票”,插入到副語料庫;并把映射規(guī)則“到俺們那的火車票->到南京的火車票”插入到預(yù)處理規(guī)則庫。
2、前端交互模塊
二次語義解析得出的一個(gè)或多個(gè)候選解析結(jié)果被傳送到前端交互模塊,前端交互模塊以某種形式,比如:列表,將其反饋給用戶選擇,同時(shí)用戶可以看到自己所說話語的文字結(jié)果,即候選語句及對(duì)應(yīng)的語義信息。如果用戶選擇放棄,則不保存此次的解析結(jié)果。如果沒有符合用戶意圖的候選,用戶可以修改用戶語句和/或語義信息以符合其意圖;如果用戶選擇其中一種語義,如在上例中用戶選擇“查找火車票”,那么“到俺們那的火車票”將會(huì)與語義“查找火車票”建立聯(lián)系。上傳候選語句“到南京的火車票”及語義信息到服務(wù)器端的副語料庫管理模塊進(jìn)行后續(xù)處理。
3、副語料庫管理模塊
用戶第一次登錄口語對(duì)話系統(tǒng)后,服務(wù)器提供空間創(chuàng)建用戶專屬的副語料庫和預(yù)處理規(guī)則庫。副語料庫用于保存用戶在交互頁面添加的句子及語義信息,而預(yù)處理規(guī)則庫用于存儲(chǔ)用戶語句到用戶選擇的候選語句的映射規(guī)則。除此之外,還負(fù)責(zé)基于副語料庫中的語句生成語義解析規(guī)則;具體生成語義規(guī)則的方法和語義規(guī)則的表現(xiàn)形式與采用的語義解析方法有關(guān)。
圖4為本發(fā)明帶語料庫擴(kuò)展功能的口語對(duì)話系統(tǒng)的工作流程圖,其具體步驟如下:
步驟401,為用戶交互模塊,其接收用戶語音,將用戶語音傳給語音識(shí)別模塊;將二次解析模塊輸出的候選呈現(xiàn)給用戶檢查和選擇;如果沒有符合用戶意圖的候選,允許用戶修改任意候選以使其符合用戶意圖。
步驟402,語音接收模塊,接收用戶的話語,并將語音數(shù)據(jù)傳送給語音識(shí)別模塊。
步驟403,語音識(shí)別模塊,將用戶話語的語音識(shí)別成文字,然后將其傳遞給自然語言理解單元處理,即此處的步驟404。
步驟404,語義解析模塊,使用副語料庫輔助主語料庫進(jìn)行語義解析,獲取用戶意圖。具體方法為:如果基于主語料庫進(jìn)行語義解析的成功率比較高,比如大于等于60%,則先基于主語料庫進(jìn)行語義解析,如果成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,再基于副語料庫進(jìn)行語料庫解析;在基于副語料庫進(jìn)行語句解析前,先以待解析語句依次匹配預(yù)處理規(guī)則庫中的規(guī)則前件,如果匹配,則以規(guī)則后件替換待解析的語句,然后基于副語料庫進(jìn)行語義解析;如果全部規(guī)則前件都匹配失敗,則直接基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析語句成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,則對(duì)待解析的語句進(jìn)行二次解析,即基于更寬松的約束條件進(jìn)行解析。如果基于主語料庫進(jìn)行語義解析的成功率不高,比如低于50%,則先基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析失敗,然后再基于主語料庫進(jìn)行語義解析;如果基于副語料庫直接解析成功,則根據(jù)解析結(jié)果響應(yīng)用戶,而不需要再基于主語料庫進(jìn)行語義解析;如果基于副語料庫和主語料庫都解析失敗,則對(duì)用戶語句進(jìn)行二次解析,即基于更寬松的約束條件進(jìn)行解析。
步驟405,語義解析間接依賴的主語料庫、副語料庫和預(yù)處理規(guī)則庫;在基于副語料庫解析用戶語句語義前,先以待解析語句依次匹配預(yù)處理規(guī)則庫中的規(guī)則前件,如果匹配,則以規(guī)則后件代替待解析語句,然后進(jìn)行語義解析;如果未發(fā)現(xiàn)匹配,則直接對(duì)待解析語句進(jìn)行語義解析。
步驟406,二次解析模塊,采用更為寬松的約束條件對(duì)步驟404中語義解析模塊解析失敗的語句進(jìn)行二次解析,其輸出一定數(shù)量的候選供用戶選擇確認(rèn)是否符合其意圖;它不一定是單獨(dú)的一個(gè)模塊,可以和步驟404中的語義解析模塊合二為一,因?yàn)樗鼈兛梢圆捎猛瑯拥慕馕龇椒?,只是二次解析模塊采用更寬松的約束條件;當(dāng)然,如果二次解析模塊和步驟404中的語義解析模塊采用的方法不一致,則需將它單獨(dú)作為一個(gè)模塊。
步驟407,判斷步驟404中語義解析是否成功,如果步驟404的語義解析成功,流程則轉(zhuǎn)到步驟408的響應(yīng)模塊;否則,轉(zhuǎn)到步驟406進(jìn)行二次語義解析。
步驟408,響應(yīng)模塊,根據(jù)獲得的語義信息給用戶適當(dāng)?shù)捻憫?yīng),比如操作設(shè)備,返回查詢信息等;如果未能獲得有效語義信息,則以類似“未能理解用戶”的信息響應(yīng)用戶。
步驟409,判斷展示給用戶的候選及其語義是否正確,如果正確,則選擇其更新副語料庫;否則,詢問用戶是否需要修改候選,以使其符合用戶意圖。
步驟410,詢問用戶是否修改候選。也可放棄修改,直接以“未能理解用戶”的信息響應(yīng)用戶。
步驟411,副語料庫管理模塊,創(chuàng)建用戶專屬的副語料庫和預(yù)處理規(guī)則庫。其中,副語料庫用于保存用戶在交互頁面添加的句子及語義信息,預(yù)處理規(guī)則庫用于存儲(chǔ)用戶語句到用戶選擇的候選語句的映射規(guī)則。除此之外,還負(fù)責(zé)基于副語料庫中的語句生成語義解析規(guī)則;具體生成語義規(guī)則的方法與采用的語義解析方法有關(guān)。
圖2為本發(fā)明擴(kuò)展口語對(duì)話系統(tǒng)語料庫的方法流程圖,其具體步驟如下:
步驟201:收集當(dāng)前經(jīng)過語義解析而解析失敗的語句。
步驟202:對(duì)該語句進(jìn)行二次解析,放寬解析條件,降低輸出閥值,得出一個(gè)或多個(gè)候選解析結(jié)果。
步驟203:二次解析過后,將一定量的候選解析結(jié)果及對(duì)應(yīng)的語義提供給用戶選擇。
步驟204:判斷是否有候選符合用戶意圖的候選,若有符合用戶意圖的候選,則選擇其更新副語料庫和預(yù)處理語料庫,執(zhí)行步驟205,否則,執(zhí)行步驟207。
步驟205:根據(jù)用戶選擇,生成用戶語句到用戶選擇的候選語句的映射規(guī)則,將其追加到預(yù)處理規(guī)則庫;并將用戶選擇的候選語句及對(duì)應(yīng)的語義信息添加到當(dāng)前用戶的副語料庫。
步驟206:根據(jù)得到的語義生成用戶響應(yīng)或系統(tǒng)操作或響應(yīng)用戶類似“無法理解用戶”之類的信息。
步驟207:結(jié)束本次口語對(duì)話。
圖3為本發(fā)明副語料庫和主語料庫結(jié)合進(jìn)行語義解析的流程圖,其具體步驟如下:
步驟301:語義解析模塊得到經(jīng)過中文分詞和命名實(shí)體識(shí)別的用戶語句的文本。
步驟302:語義解析模塊基于當(dāng)前用戶的副語料庫、預(yù)處理規(guī)則庫和主語料庫對(duì)用戶語句進(jìn)行解析。
使用副語料庫輔助主語料庫進(jìn)行語義解析的方法如下:
如果基于主語料庫進(jìn)行語義解析的成功率比較高,比如大于等于60%,則先基于主語料庫進(jìn)行語義解析,如果成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,再基于副語料庫進(jìn)行語料庫解析;
在基于副語料庫進(jìn)行語句解析前,先以待解析語句依次匹配預(yù)處理規(guī)則庫中的規(guī)則前件,如果匹配,則以規(guī)則后件替換待解析的語句,然后基于副語料庫進(jìn)行語義解析;如果全部規(guī)則前件都匹配失敗,則直接基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析語句成功,則根據(jù)解析結(jié)果響應(yīng)用戶;如果解析失敗,則對(duì)待解析的語句進(jìn)行二次解析,即基于更寬松的約束條件進(jìn)行解析。
如果基于主語料庫進(jìn)行語義解析的成功率不高,比如低于50%,則先基于副語料庫進(jìn)行語義解析;如果基于副語料庫解析失敗,然后再基于主語料庫進(jìn)行語義解析;如果基于副語料庫直接解析成功,則根據(jù)解析結(jié)果響應(yīng)用戶,而不需要再基于主語料庫進(jìn)行語義解析;如果基于副語料庫和主語料庫都解析失敗,則對(duì)用戶語句進(jìn)行二次解析,即基于更寬松的約束條件進(jìn)行解析。
步驟303:判斷解析是否成功,若解析成功,執(zhí)行步驟304,否則執(zhí)行步驟305。
步驟304:根據(jù)得到的語義生成用戶響應(yīng)或系統(tǒng)操作或響應(yīng)用戶類似“無法理解用戶”之類的信息。
步驟305:進(jìn)入圖2中擴(kuò)展口語對(duì)話系統(tǒng)語料庫的流程。
本發(fā)明通過由用戶添加副語料庫實(shí)現(xiàn)了語料庫擴(kuò)展。具體來說,本發(fā)明能夠產(chǎn)生如下有益效果:
1、有針對(duì)性的解決語料庫擴(kuò)展問題,提高了語料庫的健壯性。
一般語料庫中的規(guī)則可以解析大部分句子。但由于新句子和新名詞的產(chǎn)生,語音識(shí)別錯(cuò)誤而產(chǎn)生的不知所謂的詞語或句子、方言、個(gè)性化語言習(xí)慣等原因,需要對(duì)語料庫進(jìn)行擴(kuò)展。而此方法借助用戶選擇來擴(kuò)展語料庫,針對(duì)新詞新句、方言、識(shí)別錯(cuò)誤、單個(gè)用戶的習(xí)慣等,實(shí)現(xiàn)了動(dòng)態(tài)擴(kuò)展,提高了語料庫的健壯性。
2、減少了維護(hù)語料庫的成本。
加入副語料庫,而且一個(gè)用戶只對(duì)應(yīng)一個(gè)副語料庫,不用改變主語料庫,使用副語料庫輔助主語料庫完成解析,并且通過二次語義解析和與用戶交互來擴(kuò)展語料庫,而不是依賴于傳統(tǒng)的由維護(hù)人員擴(kuò)展語料庫,減少了維護(hù)成本。
3、提供口語對(duì)話系統(tǒng)的糾錯(cuò)功能,增強(qiáng)口語對(duì)話系統(tǒng)的可用性。
本發(fā)明將無法解析的語句呈現(xiàn)給用戶,用戶就可以知道自己所說的句子為何無法解析,一方面可以將用戶所說的句子或在其基礎(chǔ)上修改的句子添加進(jìn)語料庫,另一方面也可以放棄本次結(jié)果重新輸入增強(qiáng)口語對(duì)話系統(tǒng)的可用性。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。