張曉冰,,,
(解放軍理工大學(xué) 國(guó)防工程學(xué)院,南京 210007)
自適應(yīng)軟件近十幾年一直是軟件工程領(lǐng)域的研究熱點(diǎn)[1]。其能夠根據(jù)環(huán)境變化和用戶任務(wù)目標(biāo)來(lái)調(diào)整自身的參數(shù)和行為[2]以應(yīng)對(duì)變化。在前期工作中,課題組提出了軟件模糊自適應(yīng)(Software Fuzzy Self-adaptation,SFSA)范型[3]以及相應(yīng)的建模[4]和實(shí)現(xiàn)工具[5]:基于模糊控制理論構(gòu)造模糊自適應(yīng)環(huán),以消除模糊不確定性對(duì)自適應(yīng)過(guò)程的影響。在運(yùn)行過(guò)程中,模糊自適應(yīng)環(huán)在用戶設(shè)定的目標(biāo)制導(dǎo)下,基于模糊的、不完備的感知信息進(jìn)行推理和決策。
軟件模糊自適應(yīng)系統(tǒng)是目標(biāo)驅(qū)動(dòng)的系統(tǒng),與用戶持續(xù)性的交互是其重要特征。特別是在任務(wù)型自適應(yīng)系統(tǒng)中(例如送餐機(jī)器人系統(tǒng)),由用戶事先設(shè)定任務(wù)目標(biāo)到系統(tǒng)中,系統(tǒng)基于目標(biāo)自動(dòng)驅(qū)動(dòng)自適應(yīng)過(guò)程進(jìn)行感知、決策和施動(dòng),以確保任務(wù)目標(biāo)的完成。在傳統(tǒng)方式下,用戶大多根據(jù)任務(wù)要求先將意圖轉(zhuǎn)化為文本形式的任務(wù)目標(biāo),進(jìn)而輸入到自適應(yīng)系統(tǒng)中。這種方法顯然存在實(shí)時(shí)性不強(qiáng)、交互性弱等問(wèn)題。隨著語(yǔ)音識(shí)別技術(shù)的發(fā)展,用戶越來(lái)越傾向通過(guò)語(yǔ)音表達(dá)意圖,即直接將語(yǔ)音式的任務(wù)目標(biāo)輸入到系統(tǒng),從而提高任務(wù)目標(biāo)設(shè)定的實(shí)時(shí)性、便捷性。但是,這種非形式化、非結(jié)構(gòu)化特征的語(yǔ)音式任務(wù)目標(biāo)給系統(tǒng)的語(yǔ)音識(shí)別和處理帶來(lái)了極大挑戰(zhàn)。
為能直接捕獲語(yǔ)音式任務(wù)目標(biāo),文獻(xiàn)[6]提出直接將(英語(yǔ))語(yǔ)音式任務(wù)目標(biāo)施加到模糊自適應(yīng)環(huán)。然而此方法限制用戶只能按照模糊規(guī)則庫(kù)中預(yù)設(shè)的詞組或短語(yǔ)表達(dá)需求,缺乏語(yǔ)義的包容性和拓展性處理,限制了用戶對(duì)任務(wù)目標(biāo)的靈活性表達(dá)。例如要求任務(wù)以“quickly”(快速)執(zhí)行,當(dāng)表述為 “speedily,rapidly”時(shí),雖含義相同但難仍難以被系統(tǒng)識(shí)別。該方法對(duì)語(yǔ)音輸入的強(qiáng)制性,限制了系統(tǒng)對(duì)任務(wù)目標(biāo)的識(shí)別能力:如果語(yǔ)音式任務(wù)目標(biāo)不夠標(biāo)準(zhǔn),表達(dá)不在規(guī)則集合內(nèi)就會(huì)導(dǎo)致識(shí)別失敗。
為此,本文提出一種面向軟件模糊自適應(yīng)的語(yǔ)音式任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法。對(duì)語(yǔ)音式任務(wù)目標(biāo)進(jìn)行詞法、句法分析,提取依賴關(guān)系;根據(jù)依賴關(guān)系識(shí)別任務(wù)關(guān)鍵成分進(jìn)行語(yǔ)義關(guān)聯(lián)拓展;按照模糊規(guī)則前件的格式,實(shí)現(xiàn)對(duì)任務(wù)目標(biāo)的結(jié)構(gòu)化轉(zhuǎn)換;將結(jié)構(gòu)化轉(zhuǎn)換后的語(yǔ)音式任務(wù)目標(biāo)輸入軟件模糊自適應(yīng)系統(tǒng),進(jìn)行規(guī)則匹配,從而實(shí)現(xiàn)對(duì)語(yǔ)音式任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換的目的。
目前還缺少將語(yǔ)音式任務(wù)目標(biāo)進(jìn)行自然語(yǔ)言處理后施加到模糊自適應(yīng)軟件系統(tǒng)的針對(duì)性工作。然而在軟件工程與自然語(yǔ)言處理交叉領(lǐng)域,以及指令抽取與自然語(yǔ)言處理交叉等領(lǐng)域已有不少相關(guān)成果:
1)已經(jīng)有許多學(xué)者嘗試將自然語(yǔ)言處理技術(shù)應(yīng)用在軟件工程尤其是形式化領(lǐng)域,提出了自動(dòng)或半自動(dòng)抽取和建模的相關(guān)方法和技術(shù):文獻(xiàn)[7]將自然語(yǔ)言處理和KAOS需求工程融合(NLP-KAOS),實(shí)現(xiàn)了文檔集的目標(biāo)抽取和建模;文獻(xiàn)[8-9]提出了將文本需求自動(dòng)轉(zhuǎn)化為UML和SysML形式化描述模型。
2)借助自然語(yǔ)言處理技術(shù)實(shí)現(xiàn)指令和語(yǔ)義抽取的相關(guān)工作有:
(1)文獻(xiàn)[10]運(yùn)用自然語(yǔ)言理解、知識(shí)庫(kù)、組合范疇語(yǔ)法理論知識(shí),對(duì)中文語(yǔ)音指令的解析方法進(jìn)行了研究,利用條件隨機(jī)場(chǎng)和知識(shí)庫(kù)結(jié)合進(jìn)行句法分析識(shí)別實(shí)體,利用支持向量機(jī)學(xué)習(xí)未知指令。雖實(shí)現(xiàn)了語(yǔ)言指令解析系統(tǒng)但未能構(gòu)造完整的語(yǔ)音指令服務(wù)機(jī)器人平臺(tái)。
(2)文獻(xiàn)[11]對(duì)車(chē)輛行駛指令進(jìn)行抽取和結(jié)構(gòu)化,提出語(yǔ)義分類方法并利用K-means聚類對(duì)動(dòng)詞進(jìn)行歸類,然而沒(méi)有實(shí)現(xiàn)語(yǔ)音接口。
(3)文獻(xiàn)[12]提出基于語(yǔ)義的寫(xiě)作輔助方法,支持按照詞性、搭配和概念擴(kuò)展等語(yǔ)義條件來(lái)檢索短語(yǔ)和自動(dòng)推薦搭配。
本文借鑒兩方面研究成果,實(shí)現(xiàn)將語(yǔ)音式任務(wù)目標(biāo)經(jīng)過(guò)自然語(yǔ)言處理后直接施加到模糊自適應(yīng)軟件系統(tǒng),提高了模糊自適應(yīng)軟件任務(wù)任務(wù)目標(biāo)輸入的快速性、靈活性和包容性。
軟件模糊自適應(yīng)是前期研究中提出的一種自適應(yīng)軟件范性[3],能對(duì)環(huán)境和用戶任務(wù)目標(biāo)含有的模糊性信息進(jìn)行處理,采用模糊數(shù)學(xué)工具來(lái)處理自適應(yīng)系統(tǒng)所面臨的模糊性,其概念模型如圖1所示。
圖1 軟件模糊自適應(yīng)概念模型
如圖1所示,模糊自適應(yīng)軟件系統(tǒng)根據(jù)軟件自適應(yīng)外部機(jī)制[3]要求,劃分為模糊自適應(yīng)層和應(yīng)用層。模糊自適應(yīng)層本質(zhì)是目標(biāo)驅(qū)動(dòng)下的“感知-決策-執(zhí)行”自適應(yīng)環(huán),其基于用戶設(shè)定的自適應(yīng)目標(biāo),由感知器感知變化,由模糊推理機(jī)制作出合理決策并通過(guò)執(zhí)行器自動(dòng)調(diào)整參數(shù)、結(jié)構(gòu)和行為。模糊化、模糊自適應(yīng)推理和去模糊化是自適應(yīng)決策的主要環(huán)節(jié)。
模糊自適應(yīng)規(guī)則庫(kù)由一套事先固化的規(guī)則“if A is A1then B is B1”(“A is A1”為規(guī)則前件)構(gòu)成。任務(wù)目標(biāo)與感知信息經(jīng)模糊化后輸入到規(guī)則庫(kù)進(jìn)行匹配、推理,完成自適應(yīng)決策。在前期研究中主要考慮了任務(wù)目標(biāo)以文本的形式預(yù)先輸入的情形,而本文研究工作主要關(guān)注如何支持用戶靈活而直接的語(yǔ)言(自然語(yǔ)言)形式來(lái)輸入任務(wù)目標(biāo),并提取其中的關(guān)鍵成分,把不規(guī)則的自然語(yǔ)言輸入轉(zhuǎn)換成結(jié)構(gòu)化的表示,從而實(shí)現(xiàn)高效精準(zhǔn)的匹配推理。
自然語(yǔ)言作為信息溝通的最主要方式,可為人機(jī)交互時(shí)提供其他方式不可替代的直接和便利,缺點(diǎn)在于其描述的不充分性、語(yǔ)言歧義性(語(yǔ)法和語(yǔ)義歧義)[13]。處理口語(yǔ)和書(shū)面語(yǔ)(統(tǒng)稱為“語(yǔ)言”)的計(jì)算機(jī)技術(shù)稱為自然語(yǔ)言處理[14],其基礎(chǔ)研究?jī)?nèi)容主要包括詞法分析、句法分析、語(yǔ)義分析與篇章分析等研究[15]?;谧匀徽Z(yǔ)言處理(Natural Language Processing,NLP)的技術(shù)應(yīng)用日益廣泛,涌現(xiàn)了許多優(yōu)秀的處理工具如NLTK、CoreNLP等。
自然語(yǔ)言處理工具箱NLTK(Natural Language Toolkit)在利用 Python 處理自然語(yǔ)言的工具中處于領(lǐng)先的地位。NLTK 包含大量的軟件、數(shù)據(jù)供直接使用,例如WordNet。WordNet[16]是一基于認(rèn)知語(yǔ)言學(xué)的詞匯語(yǔ)義網(wǎng)絡(luò)系統(tǒng)。其構(gòu)造核心在于根據(jù)單詞的語(yǔ)義來(lái)組織詞匯信息:將詞匯組織為同義詞集合(synset),每個(gè)集合表示一個(gè)詞匯概念,每個(gè)單詞對(duì)應(yīng)一個(gè)或多個(gè)同義詞集;同時(shí)概念之間建立不同指針,表達(dá)上下位、反義等不同的關(guān)系,可以有效表達(dá)詞匯語(yǔ)義。
CoreNLP[17]提供了一系列集成的自然語(yǔ)言分析工具,能分析語(yǔ)句中每個(gè)詞語(yǔ)的組成與語(yǔ)法,并且用短語(yǔ)和詞匯間的依賴關(guān)系來(lái)標(biāo)記出語(yǔ)句的組成結(jié)構(gòu)。
綜上,NLTK和CoreNLP都是功能強(qiáng)大的自然語(yǔ)言處理工具,本文主要選取這些工具構(gòu)建原型系統(tǒng)來(lái)驗(yàn)證方法。
以在生活中逐步開(kāi)始應(yīng)用的送餐任務(wù)機(jī)器人作為應(yīng)用案例:送餐機(jī)器人需要經(jīng)常與用戶交互,獲取任務(wù)目標(biāo),將它們輸入到自適應(yīng)環(huán)完成指定的任務(wù)。前期研究中構(gòu)造了一種模糊自適應(yīng)送餐機(jī)器人,如圖2所示。
圖2 模糊自適應(yīng)送餐機(jī)器人案例
客戶提出要求(“convey the milk to the restaurant quickly”,“return to the charger”等),機(jī)器人識(shí)別語(yǔ)音,根據(jù)語(yǔ)音直接決策任務(wù)動(dòng)作和目的。例如,識(shí)別得到語(yǔ)音要求速度“quickly”,系統(tǒng)綜合感知器感知的外界障礙物擁堵程度,根據(jù)模糊推理機(jī)制得出速度目標(biāo)“speed is fast”,再經(jīng)過(guò)去模糊化得到任務(wù)速度的具體值(如0.5 m/s)并將其發(fā)送到應(yīng)用層,機(jī)器人將按照指令速度完成任務(wù)。
然而研究中仍存在不足,系統(tǒng)對(duì)語(yǔ)音輸入的強(qiáng)制性限制了其任務(wù)目標(biāo)識(shí)別能力:雖仍是同義任務(wù)目標(biāo)但難以被識(shí)別,如果語(yǔ)義表達(dá)不夠標(biāo)準(zhǔn),捕獲到的詞組不在規(guī)則集合內(nèi)就會(huì)導(dǎo)致識(shí)別失敗。例如輸入“quickly”的同義詞“speedily,rapidly”等,由于庫(kù)涵規(guī)則只有“quickly”,系統(tǒng)不會(huì)識(shí)別用戶的任務(wù)目標(biāo)。為此本文試圖實(shí)現(xiàn)語(yǔ)音任務(wù)目標(biāo)輸入自適應(yīng)環(huán)的直接性,并提高模糊自適應(yīng)軟件系統(tǒng)對(duì)任務(wù)目標(biāo)的識(shí)別能力。
本文提出的面向軟件模糊自適應(yīng)的語(yǔ)音式任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法的總體框架如圖3所示。其中,模糊自適應(yīng)軟件系統(tǒng)包含感知-決策-執(zhí)行的自適應(yīng)環(huán),其控制模器塊基于模糊規(guī)則構(gòu)造。通過(guò)自然語(yǔ)言處理,識(shí)別非形式化、非結(jié)構(gòu)化的語(yǔ)音式任務(wù)目標(biāo),并將其直接作用于自適應(yīng)環(huán)。
圖3 語(yǔ)音任務(wù)目標(biāo)的識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法
語(yǔ)音任務(wù)目標(biāo)的識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法主要包括以下關(guān)鍵步驟:文本預(yù)處理,詞法句法分析,語(yǔ)義關(guān)聯(lián)拓展和結(jié)構(gòu)化轉(zhuǎn)換。
系統(tǒng)經(jīng)過(guò)語(yǔ)音識(shí)別,得到文本形式的語(yǔ)音式任務(wù)目標(biāo)再進(jìn)行處理。首先定義任務(wù)目標(biāo)的句子成分:
S=(w1w2…wn),i=1,2,…,n
(1)
其中,句子S由多個(gè)單詞wi組成。
語(yǔ)音指令通常是簡(jiǎn)單句或短語(yǔ),系統(tǒng)將語(yǔ)音指令轉(zhuǎn)換為文本后,首先進(jìn)行預(yù)處理工作將句子分割為單獨(dú)的詞匯,為后續(xù)工作打下基礎(chǔ)。
分詞預(yù)處理的形式表述為:
S′=f(S),f=[(wiwi+1…)→(wi,wi+1,…)]
i=1,2,…,n
(2)
可得:
S′=(w1,w2,…,wn)
(3)
其中,f函數(shù)實(shí)現(xiàn)句子分詞,n為單詞個(gè)數(shù),例如“convey the milk to restaurant speedily”,經(jīng)過(guò)分詞處理后得到“convey,the,milk,to,restaurant,speedily”。
詞法分析的主要任務(wù)是詞性標(biāo)注(part of speech tagging),即對(duì)詞匯按語(yǔ)法范疇判定其詞性進(jìn)行分類并加以標(biāo)注的過(guò)程。對(duì)于多義詞,一個(gè)詞可以表達(dá)多個(gè)意義,但根據(jù)具體上下文語(yǔ)境,可以確定其含義[13]。詞性標(biāo)注的形式化表述為:
S″=f′(S′),f′=(wi|Posi),Posi∈{NN,VB,RB…}
(4)
其中,f′標(biāo)注單詞wi的詞性Posi(part of speech),詞性標(biāo)注為名詞NN,動(dòng)詞VB,修飾詞RB等,可得:
S″=(‘w1,NN’,‘w2,VB’,‘wm,RB’,…)
(5)
例如圖4中的步驟1所示:S″=(‘convey,VB’,‘milk,NN’,‘to,TO’)。
圖4 任務(wù)目標(biāo)的識(shí)別
句法分析用于對(duì)句子語(yǔ)法功能進(jìn)行分析,確定句子的句法結(jié)構(gòu)。在上一步詞法分析句子成分后,明確其之間的相互關(guān)系,進(jìn)而根據(jù)其句法結(jié)構(gòu)提取出關(guān)系到任務(wù)目標(biāo)的關(guān)鍵成分。
用戶給出的語(yǔ)音式任務(wù)目標(biāo)一般由關(guān)鍵成分(動(dòng)作成分(多為謂語(yǔ))、目的成分(多為賓語(yǔ))和修飾成分)構(gòu)成。任務(wù)目標(biāo)中的關(guān)鍵成分決定自適應(yīng)軟件執(zhí)行的任務(wù)目的和要求,如執(zhí)行何種任務(wù)(“express drink”),其中的修飾成分決定任務(wù)指標(biāo),如以何種速度(“quickly”)。而在模糊自適應(yīng)軟件中,模糊自適應(yīng)規(guī)則前件一般也由動(dòng)作成分、目的成分和修飾成分組成,因此要有選擇地提取這些任務(wù)目標(biāo)關(guān)鍵成分,便于下一步語(yǔ)義關(guān)聯(lián)拓展。
任務(wù)目標(biāo)的依賴關(guān)系可形式表達(dá)為:
S?=f″(S″),f″=[(wi&wj)→Rm],m=1,2,…,n
(6)
可得到包含多個(gè)元組Wm表示的依賴關(guān)系S?:
S?=[W1,W2,…,Wn],
Wm= (‘wi,NN’,Rm,‘wj,VB’),
(Rm∈(dobj,nsubj,adv mod,det…))
(7)
其中,Wm中R表示2個(gè)單詞wm之間的關(guān)系,包括直接賓語(yǔ)關(guān)系dobj,名詞性主語(yǔ)nsubj,副詞修飾advmod,冠詞det等。例如圖4步驟2所示,著色的是詞性,連接線是詞匯之間的依賴關(guān)系。元組(‘convey,VB’,dobj,‘milk,NN’)等抽象了句子中動(dòng)賓語(yǔ)法關(guān)系,根據(jù)依賴關(guān)系,提取得關(guān)鍵成分 (convey,milk,speedily),如圖4步驟3所示。
如圖4所示,經(jīng)過(guò)以上步驟,實(shí)現(xiàn)對(duì)用戶語(yǔ)音式任務(wù)目標(biāo)的識(shí)別。然而仍無(wú)法靈活地與模糊規(guī)則進(jìn)行匹配。需要下一步進(jìn)行語(yǔ)義關(guān)聯(lián)拓展進(jìn)而實(shí)現(xiàn)結(jié)構(gòu)化轉(zhuǎn)換,使得任務(wù)目標(biāo)能較好地匹配模糊規(guī)則前件進(jìn)而驅(qū)動(dòng)軟件模糊自適應(yīng)過(guò)程。
語(yǔ)義關(guān)聯(lián)[18]是描述2個(gè)詞語(yǔ)之間存在的關(guān)聯(lián)關(guān)系(包括同義關(guān)系、上下位關(guān)系、反義關(guān)系等)。在分析句法得到任務(wù)目標(biāo)后,為盡可能實(shí)現(xiàn)語(yǔ)義關(guān)聯(lián)拓展并減少非必需的計(jì)算,選擇任務(wù)目標(biāo)的任務(wù)關(guān)鍵成分進(jìn)行語(yǔ)義關(guān)聯(lián)拓展。把不規(guī)則的自然語(yǔ)言輸入轉(zhuǎn)換成結(jié)構(gòu)化的表示以更好的匹配規(guī)則,(其本質(zhì)為將與A語(yǔ)義關(guān)聯(lián)(如、?)的任務(wù)目標(biāo)等價(jià)收斂為A)如圖5所示。關(guān)聯(lián)詞匯(細(xì)字體)就會(huì)統(tǒng)一收斂對(duì)應(yīng)規(guī)則庫(kù)中定義的詞匯(粗字體),以利于模糊自適應(yīng)規(guī)則的匹配與推理。
圖5 語(yǔ)義關(guān)聯(lián)拓展示例
由于模糊自適應(yīng)規(guī)則通常采取“if A is A1then B is B1”的形式,例如簡(jiǎn)單的雙輸入單輸出模糊規(guī)則如表1所示。在規(guī)則1中,當(dāng)語(yǔ)音任務(wù)目標(biāo)表述食物類型是飲品以及速度目標(biāo)為快時(shí),規(guī)則設(shè)定速度為慢。
表1 模糊規(guī)則示例
拓展主要分為同義詞拓展和上位詞(上級(jí)概念與從屬概念的關(guān)系)拓展。語(yǔ)義關(guān)聯(lián)拓展可形式化表示為:
W′=Wm|w→(Ws,Wh)
Ws={wsim1,wsim2,…,wsimi},i=1,2,…,n
Ws={whyp1,whyp2,…,whypm},m=1,2,…,n
(8)
其中,W′為語(yǔ)音式任務(wù)目標(biāo)中的任務(wù)關(guān)鍵成分wm拓展后的關(guān)鍵詞集。wm可以被拓展為同義詞集Ws和上位詞集Wh(wsimi為第i個(gè)同義詞,whypm為第m個(gè)上位詞)。
3.4.1 同義詞拓展
以表1中規(guī)則為例,若輸入“convey the milk speedily”,如果不經(jīng)過(guò)語(yǔ)義關(guān)聯(lián)拓展處理,則此時(shí)系統(tǒng)不會(huì)匹配到任何規(guī)則。然而如圖5所示,“quickly”的同義詞是:“speedily,rapidly”等,若進(jìn)行語(yǔ)義關(guān)聯(lián)同義拓展,可以增加規(guī)則前件匹配的靈活性,會(huì)匹配到rule 1。
3.4.2 上位詞拓展
仍以上述情景為例,為使輸入運(yùn)送物品為drink的下級(jí)詞匯時(shí)可以被系統(tǒng)識(shí)別,將詞匯進(jìn)行上位詞匯拓展。如圖5所示,“drink”包括:“cocoa,coffee,milk”等,當(dāng)輸入“convey milk speedily”時(shí),通過(guò)上位詞聯(lián)想使原任務(wù)目標(biāo)被拓展,仍會(huì)成功匹配規(guī)則rule 1。
以上各步驟只以例句作為簡(jiǎn)單示例,事實(shí)上,語(yǔ)義關(guān)聯(lián)詞庫(kù)是根據(jù)規(guī)則庫(kù)中的規(guī)則關(guān)鍵詞匯自動(dòng)構(gòu)造而成,并不局限于圖5示例。
3.4.3 結(jié)構(gòu)化轉(zhuǎn)換
將提取并且轉(zhuǎn)換的任務(wù)關(guān)鍵成分(動(dòng)作成分、目的成分和修飾成分)轉(zhuǎn)換為系統(tǒng)相統(tǒng)一的規(guī)則前件。若輸入:“convey this milk to the restaurant speedily”,經(jīng)過(guò)上述步驟將被識(shí)別為“convey milk speedily”;隨即語(yǔ)義關(guān)聯(lián)等價(jià)拓展為 “express drink quickly”;再進(jìn)行結(jié)構(gòu)化轉(zhuǎn)換得“food type is drink and speed goal is quickly”。使得原始的語(yǔ)音式任務(wù)目標(biāo)被轉(zhuǎn)換為與庫(kù)涵規(guī)則前件相統(tǒng)一的表示(如表1中rule 1)。
最后進(jìn)行規(guī)則匹配:將拓展后的語(yǔ)音式任務(wù)目標(biāo)W′與規(guī)則前件進(jìn)行匹配,若成功則激活相應(yīng)規(guī)則,系統(tǒng)進(jìn)入模糊決策及后續(xù)動(dòng)作環(huán)節(jié)。
根據(jù)前文提出的語(yǔ)音式任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法,本文設(shè)計(jì)其實(shí)現(xiàn)算法如下所示。
輸入識(shí)別到的原始語(yǔ)音式任務(wù)目標(biāo)S
輸出匹配得的規(guī)則 rulei
1 S1← Tokenize (S) //對(duì)句子進(jìn)行單詞分割
2 S2← Part-of-speech_tagging(S1) //詞性標(biāo)注
3 S3Parser(S2) //句法分析
4 tuple← Tuple(S3)//以元組形式提取依賴關(guān)系
5 for ‘relationship’ in tuple://遍歷依賴成分
6 return keywordi∈ List(keywordi)//得到目
//標(biāo)關(guān)鍵成分
7 if keywordi!= rule in Rule_Base://若匹配不到庫(kù)
//涵規(guī)則
8 set1 = synonyms(keywordi) //同義詞拓展
9 set2 = hypernyms(keywordi) //上位詞拓展
10 keywordi* = ( keywordi+set1+set2)// 輸出語(yǔ)
//義關(guān)聯(lián)詞集
11 trans-goal ← structuring(keywordi*)//得到結(jié)構(gòu)
//化轉(zhuǎn)換的任務(wù)目標(biāo)
12 if trans-goal matches ruleiin Rule_Base://匹配規(guī)
//則庫(kù)
13 return rulei//輸出匹配得到的規(guī)則
首先對(duì)句子分詞(第1行)、詞法和句法分析(第2行、第3行)取得依賴關(guān)系,進(jìn)而取得任務(wù)關(guān)鍵成分(第4行~第6行),并進(jìn)行語(yǔ)義關(guān)聯(lián)拓展(第7行~第10行),實(shí)現(xiàn)任務(wù)目標(biāo)的結(jié)構(gòu)化轉(zhuǎn)換(第11行)并匹配規(guī)則(第12行、第13行)。
在前期工作[6]中構(gòu)建了語(yǔ)音驅(qū)動(dòng)的模糊自適應(yīng)送餐機(jī)器人系統(tǒng)。在此基礎(chǔ)上,根據(jù)前文提出的語(yǔ)音任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法,利用自然語(yǔ)言處理工具,對(duì)原平臺(tái)進(jìn)行改進(jìn),構(gòu)建支持語(yǔ)音式任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換的自適應(yīng)送餐機(jī)器人原型系統(tǒng)VoiceGuider。
本文以Turtlebot為平臺(tái)構(gòu)建了模糊自適應(yīng)送餐機(jī)器人原型系統(tǒng)。Turtlebot是一款低成本機(jī)器人,硬件包括Kobuki底盤(pán)、Kinect傳感器等,由于其設(shè)計(jì)的大型開(kāi)源機(jī)器人操作系統(tǒng)架構(gòu)ROS[19],成為一款理想的開(kāi)發(fā)和測(cè)試平臺(tái)。運(yùn)行在Linux 平臺(tái)的ROS 類似于分散的進(jìn)程框架,提供了一個(gè)基于操作系統(tǒng)之上的結(jié)構(gòu)化的通信層。軟件功能有實(shí)時(shí)定位構(gòu)圖、圖像處理等。
由于機(jī)器人操作系統(tǒng)需要Linux運(yùn)行環(huán)境,因此選擇以Python作為編譯語(yǔ)言的NLTK,并將CoreNLP中的Parser加入到NLTK中,利用Parser提取依賴關(guān)系,由WordNet進(jìn)行語(yǔ)義關(guān)聯(lián)拓展。其模型如圖6所示,利用語(yǔ)音識(shí)別工具,在語(yǔ)言處理功能基礎(chǔ)上,集成機(jī)器人原有的自適應(yīng)定位、避障導(dǎo)航、跟隨等功能,實(shí)現(xiàn)語(yǔ)音式任務(wù)目標(biāo)驅(qū)動(dòng)的模糊自適應(yīng)送餐機(jī)器人的平臺(tái)搭建。
圖6 模糊自適應(yīng)送餐機(jī)器人原型系統(tǒng) VoiceGuider
序列圖如圖7所示,描繪原型系統(tǒng)內(nèi)部不同軟件實(shí)體之間的交互關(guān)系。
圖7 VoiceGuider軟件系統(tǒng)序列圖
語(yǔ)音識(shí)別模塊持續(xù)識(shí)別人類的聲音并發(fā)送回調(diào)給語(yǔ)言處理模塊。與此同時(shí)傳感器模塊持續(xù)發(fā)送信息到速度控制節(jié)點(diǎn)。語(yǔ)言處理模塊將語(yǔ)音式任務(wù)目標(biāo)進(jìn)行結(jié)構(gòu)化轉(zhuǎn)換,與規(guī)則庫(kù)規(guī)則前件匹配后然后發(fā)送到?jīng)Q策器。決策器下達(dá)動(dòng)作指令到執(zhí)行器控制機(jī)器人完成所要求任務(wù)。
下面以VoiceGuider進(jìn)行實(shí)驗(yàn),驗(yàn)證方法是否實(shí)現(xiàn)語(yǔ)音任務(wù)目標(biāo)輸入自適應(yīng)環(huán)的直接性,是否提高了對(duì)語(yǔ)音任務(wù)目標(biāo)的識(shí)別能力。
選取2臺(tái)具有模糊自適應(yīng)能力的送餐任務(wù)機(jī)器人,分別命名為V1和V2。其中,V1仍然采用任務(wù)目標(biāo)識(shí)別后直接匹配的方法,或稱之為任務(wù)目標(biāo)未處理機(jī)器人,而V2則采用本文所提出的語(yǔ)音式任務(wù)目標(biāo)處理方法,或稱之為任務(wù)目標(biāo)識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換機(jī)器人,其實(shí)際情況如圖8所示。
圖8 自適應(yīng)送餐機(jī)器人實(shí)物圖
在2種實(shí)驗(yàn)場(chǎng)景下,通過(guò)對(duì)2臺(tái)機(jī)器人下達(dá)相同形式的任務(wù)目標(biāo),記錄機(jī)器人任務(wù)完成情況(實(shí)驗(yàn)中不考慮語(yǔ)音識(shí)別失敗或錯(cuò)誤的情況,即假設(shè)成功識(shí)別所有語(yǔ)音)。
模糊規(guī)則庫(kù)預(yù)先定義好,以速度變量為例,其隸屬度函數(shù)由5個(gè)模糊區(qū)間構(gòu)成,如圖9所示(模糊自適應(yīng)決策驗(yàn)證部分實(shí)驗(yàn)詳見(jiàn)前期工作[6],在此不做贅述)。
圖9 速度變量的隸屬度函數(shù)
實(shí)驗(yàn)1語(yǔ)音輸入規(guī)則庫(kù)庫(kù)涵任務(wù)目標(biāo)(庫(kù)涵指規(guī)則庫(kù)內(nèi)涵蓋的規(guī)則)如表2所示,規(guī)則以動(dòng)作成分(express,follow,…)、目的成分(drink,somewhere,someone,…)和修飾成分(slowly,quickly,…)疊加,隨機(jī)不重復(fù)組合查詢3×3×3=27次。(動(dòng)作成分表示執(zhí)行何種動(dòng)作;目的成分表示任務(wù)的目的或目標(biāo);修飾成分決定任務(wù)指標(biāo),如以何種速度)。
表2 庫(kù)涵語(yǔ)音指令
實(shí)驗(yàn)2輸入非庫(kù)涵語(yǔ)義關(guān)聯(lián)任務(wù)目標(biāo),任務(wù)目標(biāo)來(lái)自于規(guī)則庫(kù)涵詞匯的同義詞和下級(jí)詞:例如“move to the kitchen rapidly”,“express the hot coffee slowly”,“follow me”,任務(wù)目標(biāo)按照動(dòng)作成分、目的成分和修飾成分,隨機(jī)不重復(fù)組合查詢100條。
通過(guò)實(shí)驗(yàn)1、實(shí)驗(yàn)2,驗(yàn)證本文方法是否實(shí)現(xiàn)了語(yǔ)音任務(wù)目標(biāo)輸入自適應(yīng)環(huán)的直接性;是否提高了對(duì)語(yǔ)音任務(wù)目標(biāo)的識(shí)別能力。
實(shí)驗(yàn)1中V1、V2都對(duì)語(yǔ)音進(jìn)行了成功處理,識(shí)別成功率達(dá)到100%(成功率=指令匹配成功數(shù)/總數(shù)),這是由于兩者都直接進(jìn)行if-then規(guī)則匹配。
在實(shí)驗(yàn)2中,在輸入非庫(kù)涵但語(yǔ)義關(guān)聯(lián)任務(wù)目標(biāo)時(shí)V1匹配率為0,V2則維持在很高的識(shí)別成功率(分別為93%、89%、100%),如圖10所示。
圖10 實(shí)驗(yàn)2運(yùn)行結(jié)果
通過(guò)上述實(shí)驗(yàn),可以判斷:
1)由實(shí)驗(yàn)1可知,V1、V2都實(shí)現(xiàn)了對(duì)任務(wù)目標(biāo)的直接捕獲,并將其直接注入模糊自適應(yīng)環(huán)驅(qū)動(dòng)機(jī)器人,從而完成任務(wù)。
2)由實(shí)驗(yàn)2可知,V2具有更強(qiáng)的任務(wù)目標(biāo)識(shí)別能力,針對(duì)規(guī)則庫(kù)中未定義然而語(yǔ)義等價(jià)的任務(wù)目標(biāo),V2顯著提高了識(shí)別成功率;模糊自適應(yīng)決策驗(yàn)證部分可見(jiàn)前期工作[6]。
3)在實(shí)驗(yàn)過(guò)程中,發(fā)現(xiàn)本文方法會(huì)產(chǎn)生誤識(shí)別。這是由于在規(guī)則過(guò)多時(shí),語(yǔ)義關(guān)聯(lián)拓展會(huì)對(duì)應(yīng)多個(gè)前件,導(dǎo)致規(guī)則匹配沖突。
本文提出一種面向軟件模糊自適應(yīng)的語(yǔ)音式任務(wù)目標(biāo)的識(shí)別與結(jié)構(gòu)化轉(zhuǎn)換方法。對(duì)用戶語(yǔ)音描述進(jìn)行句法分析后將關(guān)鍵成分提取并以元組形式化表述,把不規(guī)則的語(yǔ)音式任務(wù)目標(biāo)轉(zhuǎn)換成類規(guī)則的結(jié)構(gòu)化表示,利用語(yǔ)義關(guān)聯(lián)拓展降低對(duì)語(yǔ)音輸入的要求。通過(guò)構(gòu)建模糊自適應(yīng)送餐機(jī)器人進(jìn)行實(shí)驗(yàn)驗(yàn)證,結(jié)果表明,所述方法有效實(shí)現(xiàn)了語(yǔ)音任務(wù)目標(biāo)輸入自適應(yīng)性,提高了系統(tǒng)對(duì)語(yǔ)音式任務(wù)目標(biāo)的識(shí)別能力和系統(tǒng)可用性。
為克服本文方法存在的誤識(shí)別缺點(diǎn),下一步計(jì)劃利用單詞之間的相似度[20]來(lái)定量計(jì)算單詞之間的語(yǔ)義關(guān)聯(lián)程度。在匹配到的多個(gè)規(guī)則前件發(fā)生沖突時(shí),通過(guò)比較關(guān)聯(lián)詞的關(guān)聯(lián)程度提高方法的匹配成功率。
[1] KRUPITIAER C,ROTH F M,VANSYCKEL S,et al.A survey on engineering approaches for self-adaptive systems[J].Pervasive & Mobile Computing,2014,17:184-206.
[2] LEMOS R D,GIESE H,MULLER H A,et al.Software engineering for self-adaptive systems:a second research roadmap[J].Lecture Notes in Computer Science,2011,7475:1-32.
[3] YANG Qiliang,XING Jianchun,TAO Xianping,et al.Fuzzy self-adaptation of mission-critical software under uncertainty[J].Journal of Computer Science and Technology,2013,28(1):165-187.
[4] HAN Deshuai,YANG Qiliang,XING Jianchun,et al.FAME:a UML-based framework for modeling fuzzy self-adaptive software[J].Information & Software Technology,2016,76:118-134.
[5] YANG Qiliang,TAO Xianping,XIE Hui,et al.FuAET:a tool for developing fuzzy self-adaptive software systems[C]//Proceedings of Asia-pacific Symposium on Internetware on Internetware.New York,USA:ACM Press,2014:54-63.
[6] ZHANG Xiaobing,YANG Qiliang,XING Jianchun,et al.Recognizing voice-based requirements to drive self-adaptive software systems[C]//Proceedings of Computer Software and Application Conference.Washington D.C.,USA:IEEE Press,2016:417-422.
[7] CASSAGRANDE E,WOLDEALAK S,WEI L W,et al.NLP-KAOS for systems goal elicitation:smart metering system case study[J].IEEE Transactions on Software Engineering,40(10):941-956.
[8] DRECJSLER R,SOEKEN M,WILLE R.Formal specification level:towards verification-driven design based on natural language processing[C]//Proceedings of Specification and Design Languages.Washington D.C.,USA:IEEE Press,2012:53-58.
[9] ALKHADER Y,HUDAIB A,HAMMO B.Experi-menting with extracting software requirements using NLP approach[C]//Proceedings of International Conference on Information and Automation.Washington D.C.,USA:IEEE Press,2006:349-354.
[10] 王 聰.家庭服務(wù)機(jī)器人中文語(yǔ)音指令解析器的研究[D].秦皇島:燕山大學(xué),2015.
[11] 袁樹(shù)明.基于自然語(yǔ)言理解的車(chē)輛行駛指令抽取[D].北京:北京郵電大學(xué).
[12] 朱葉霜,喻 純,史元春.基于語(yǔ)義的英文短語(yǔ)檢索與搭配推薦及其在輔助ESL學(xué)術(shù)寫(xiě)作中的應(yīng)用[J].計(jì)算機(jī)學(xué)報(bào),2016,39(4):822-834.
[13] POHL K.Requirements engineering:fundamentals,principles,and techniques[M].Berlin,Germany:Springer-Verlag,2010.
[14] JURAFSKY D.Speech and language processing[M].London,UK:Pearson Education India,2000.
[15] 李 生.自然語(yǔ)言處理的研究與發(fā)展[J].燕山大學(xué)學(xué)報(bào),2013(5):377-384.
[16] MILLER G A.WordNet:a lexical database for english[J].Communications of the ACM,1995,38(11):39-41.
[17] MANNING C D,SURDEANU M,BAUER J,et al.The stanford CoreNLP natural language processing toolkit[C]//Proceedings of Meeting of the Association for Computational Linguistics:System Demonstrations.Baltimore,USA:ACL,2014:55-60.
[18] GRACIA J,MENA E.Web-based measure of semantic relatedness[C]//Proceedings of International Conference on Web Information Systems Engineering.Berlin,Germany:Springer-Verlag,2008:136-150.
[19] QUIGLEY M,CONLEY K,GERKEY B,et al.ROS:an open-source robot operating system[EB/OL].(2010-11-21).http://www.andrewng.org/portfolio/ros-an-open-source-robot-operating-system/.
[20] 張志昌,周慧霞,姚東任,等.基于詞向量的中文詞匯蘊(yùn)涵關(guān)系識(shí)別[J].計(jì)算機(jī)工程,2016,42(2):169-174.