王 凡, 尹浩偉, 蔣峰嶺, 郭玉堂
(合肥師范學(xué)院 計(jì)算機(jī)學(xué)院,安徽 合肥 230601)
隨著人們對(duì)人工智能研究的深入,越來(lái)越多的服務(wù)機(jī)器人進(jìn)入普通家庭,幫助年輕人照顧老人、小孩,減輕他們的負(fù)擔(dān)[1]。為了更好地服務(wù)人類,降低人類操作機(jī)器人的難度,最方便、最有效的方式是使用人類的自然語(yǔ)言操作機(jī)器人。因而,在機(jī)器人與人類的交互中,自然語(yǔ)言處理便是核心要點(diǎn)[2-3]。自然語(yǔ)言信息方便了人們的日常交流,但是對(duì)于機(jī)器人來(lái)說(shuō),信息搜索難、信息迷失和信息超載等問(wèn)題都阻礙了機(jī)器人與人的直接交流,要想讓機(jī)器人在豐富的自然語(yǔ)言信息中獲取到人們希望機(jī)器人完成的任務(wù)變得很困難,這就要求提高機(jī)器人信息檢索效率來(lái)幫助機(jī)器人獲取人類希望它們知道的信息[4-5]。在信息檢索中,可以通過(guò)搜索關(guān)鍵字信息來(lái)分析信息含義,幫助機(jī)器人理解自然語(yǔ)言,完成處理自然語(yǔ)言任務(wù)。
在自然語(yǔ)言處理中,目前比較流行的處理技術(shù)僅僅是簡(jiǎn)單的搜索匹配,在程序中盡可能地?cái)U(kuò)大處理自然語(yǔ)言的案例數(shù),來(lái)實(shí)現(xiàn)自然語(yǔ)言處理。在任務(wù)規(guī)劃中,目前較成熟的技術(shù)是回答集編程(ASP)技術(shù),ASP是一種非單調(diào)推理編程技術(shù),已成為很多研究者用于非單調(diào)推理的知識(shí)表示和推理工具,可以解決服務(wù)機(jī)器人指令語(yǔ)言任務(wù)規(guī)劃這種非單調(diào)問(wèn)題[6]。ASP技術(shù)在服務(wù)機(jī)器人自然語(yǔ)言任務(wù)信息的應(yīng)用中,求解效率不是很高,為了提高機(jī)器人的自然語(yǔ)言理解能力,論文中采用關(guān)鍵字搜索算法處理自然語(yǔ)言,利用改進(jìn)的ASP技術(shù)進(jìn)行任務(wù)規(guī)劃。相比于以處理自然語(yǔ)言案列為對(duì)象來(lái)處理自然語(yǔ)言的方法,關(guān)鍵字搜索算法通過(guò)處理并分析自然語(yǔ)言句子中的若干關(guān)鍵字來(lái)理解整個(gè)句子所表達(dá)的意思,增加自然語(yǔ)言處理的通用性,簡(jiǎn)化了程序從自然語(yǔ)言轉(zhuǎn)換為指令語(yǔ)言的處理,降低了時(shí)間復(fù)雜度,提高了自然語(yǔ)言識(shí)別效率;再利用改進(jìn)的ASP技術(shù)進(jìn)行任務(wù)規(guī)劃和動(dòng)作規(guī)劃,使用特定的模型求解實(shí)例化的程序,可以提高服務(wù)機(jī)器人的信息獲取和動(dòng)作規(guī)劃的效率,最終提高了機(jī)器人對(duì)自然語(yǔ)言的理解能力。為了驗(yàn)證該算法的執(zhí)行效果,以中國(guó)機(jī)器人大賽中家庭服務(wù)機(jī)器人仿真項(xiàng)目為測(cè)試平臺(tái),解決平臺(tái)中自然語(yǔ)言處理問(wèn)題,提高機(jī)器人任務(wù)求解效率。
場(chǎng)景抽象為一個(gè)10 m×10 m大小的室內(nèi)環(huán)境,其內(nèi)部規(guī)定了機(jī)器人的屬性以及當(dāng)前環(huán)境下出現(xiàn)的物體及其屬性。機(jī)器人被抽象為一個(gè)有機(jī)械手和托盤且可移動(dòng)的3D仿真機(jī)器人模型,機(jī)械手可以拿物體,托盤可以裝物體,機(jī)器人可以隨意移動(dòng)到場(chǎng)景中的任何位置;場(chǎng)景中存在大物體和小物體,大物體有獨(dú)立的物體和可以裝小物體的容器,這些物體有編號(hào)、種類、位置、大小、顏色等屬性,其中物體編號(hào)可以唯一確定某一個(gè)物體。為了便于形象地描述場(chǎng)景信息,圖1是文本格式的一種場(chǎng)景描述信息。其中,(hold 0)表示機(jī)器人機(jī)械手上沒(méi)有物體,(plate 15)表示機(jī)器人托盤里是15號(hào)物體,(at 0 5)表示0號(hào)物體(即機(jī)器人)的位置是5號(hào)位置,(sort 1 worktable)表示1號(hào)物體的類別是“worktable”,(size 1 big)表示1號(hào)物體是大物體,(type 2 container)表示2號(hào)物體是容器,(closed 2)表示2號(hào)容器的門是關(guān)著的,(color 8 red)表示8號(hào)小物體的顏色是紅色的。
圖1 場(chǎng)景信息描述Fig.1 The description of scene information
在任務(wù)描述中,任務(wù)描述類型分為三種:目標(biāo)、信息和約束。目標(biāo)表示平臺(tái)要求機(jī)器人完成的工作;信息表示機(jī)器人還可以從場(chǎng)景中獲取到的額外信息;約束表示機(jī)器人在執(zhí)行任務(wù)時(shí)不能執(zhí)行的動(dòng)作,或者過(guò)程中必須保持某一場(chǎng)景狀態(tài)的約束條件[7-8]。在任務(wù)表示方式上,平臺(tái)采用受限的詞匯組成英文句子來(lái)描述,即自然語(yǔ)言描述方式。為了便于分析,將其實(shí)例編號(hào)為1到8(圖2)。每個(gè)實(shí)例都表達(dá)一種任務(wù)信息,如實(shí)例1表達(dá)的含義是有一個(gè)紅色瓶子在工作桌上。
圖2 自然語(yǔ)言描述的任務(wù)信息Fig.2 The task information described in natural language
處理上述問(wèn)題時(shí),主要采用的是關(guān)鍵字搜索算法。利用某個(gè)或某些關(guān)鍵字信息匹配出英文句子中的詞匯,根據(jù)匹配出關(guān)鍵字含義或關(guān)鍵字組合含義,利用分組標(biāo)記,謂詞轉(zhuǎn)換等處理方法,分析出整個(gè)句子所表達(dá)含義,從而完成機(jī)器人對(duì)自然語(yǔ)言理解的算法。
在算法中,關(guān)鍵字一詞,英文表達(dá)為“keywords”,指一個(gè)句子中能概括表達(dá)出整句意思的某個(gè)或某幾個(gè)詞語(yǔ),獲取這些關(guān)鍵字可以分析整句話表達(dá)的意思,不需要處理整個(gè)句子中其他部分。對(duì)于句子中的關(guān)鍵字,利用關(guān)鍵字搜索算法中匹配模式,遍歷句子中所有詞匯,匹配出句子中的關(guān)鍵字,根據(jù)匹配出的關(guān)鍵字信息進(jìn)行進(jìn)一步分析?;陉P(guān)鍵字搜索算法處理自然語(yǔ)言,具有操作方便、查找詞匯全面等優(yōu)點(diǎn)[9-10]。
為了解決自然語(yǔ)言處理問(wèn)題,采用一種支持家庭服務(wù)機(jī)器人仿真項(xiàng)目的自然語(yǔ)言處理體系結(jié)構(gòu)(圖3),將自然語(yǔ)言處理過(guò)程分成兩個(gè)模塊,即自然語(yǔ)言預(yù)處理模塊和任務(wù)規(guī)劃模塊。
自然語(yǔ)言預(yù)處理模塊包含格式化、分組標(biāo)記和謂詞集轉(zhuǎn)換。在預(yù)處理階段,通過(guò)格式化處理,將平臺(tái)中自然語(yǔ)言描述的任務(wù)信息處理為便于機(jī)器處理的格式,利用關(guān)鍵字搜索算法,理解句子表達(dá)的含義,使用分組標(biāo)記和謂詞轉(zhuǎn)換等自然語(yǔ)言處理技術(shù),將自然語(yǔ)言格式的任務(wù)描述處理為指令格式,為任務(wù)規(guī)劃做準(zhǔn)備。
圖3 自然語(yǔ)言處理體系結(jié)構(gòu)Fig.3 The architecture of natural language processing
任務(wù)規(guī)劃模塊包括場(chǎng)景信息識(shí)別、指令語(yǔ)言任務(wù)規(guī)劃和ASP規(guī)則編寫。利用實(shí)驗(yàn)平臺(tái)提供的場(chǎng)景信息和經(jīng)預(yù)處理轉(zhuǎn)換的指令語(yǔ)言任務(wù)信息,獲得場(chǎng)景的初始狀態(tài)和機(jī)器人需要完成的任務(wù),編寫ASP規(guī)則并調(diào)用iclingo求解器,求解出一組機(jī)器人執(zhí)行的動(dòng)作序列。
通過(guò)關(guān)鍵字來(lái)分析自然語(yǔ)言表達(dá)的含義,有利于自然語(yǔ)言的預(yù)處理工作,將其“翻譯”為指令語(yǔ)言格式,進(jìn)而有利于使用回答集編程(ASP)技術(shù)進(jìn)行任務(wù)規(guī)劃和動(dòng)作規(guī)劃。下面將詳述格式化處理,分組標(biāo)記和謂詞集轉(zhuǎn)換這三個(gè)步驟,來(lái)論述預(yù)處理過(guò)程。
以英文句子來(lái)描述自然語(yǔ)言格式的任務(wù)信息,會(huì)存在字母大小寫、空格等情況,這在以某些合成詞為關(guān)鍵字信息時(shí),需要使用多組詞匯進(jìn)行匹配,以“keyboard”為例,在句子可能有多種形式出現(xiàn),如“key board”、“Key board”、“keyboard”等,在搜索“keyboard”時(shí),需要進(jìn)行多種情況匹配,增加了程序的時(shí)間復(fù)雜度。
為了簡(jiǎn)化程序處理以及便于快速地搜索特定的關(guān)鍵字信息,需要將自然語(yǔ)言信息進(jìn)行格式化處理,英文句子中字母全部變?yōu)樾懽帜?,并去掉空格,以英文句?hào)為分界,處理每一條任務(wù)信息。對(duì)于某個(gè)或某些詞匯中某幾個(gè)字母可以構(gòu)成其他詞匯這種情況,可以以原詞匯和包含詞匯為關(guān)鍵字信息進(jìn)行搜索匹配,比如,“worktable”中有“table”詞匯,可以直接以這兩個(gè)詞匯作為關(guān)鍵字進(jìn)行搜索匹配,若存在“worktable”和“table”時(shí),可以確定為“worktable”;若搜索到“table”且不含“worktable”,則可以確定為“table”。又如,“capboard”、“keyboard”中都含有“board”,若需要識(shí)別“cap”、“key”、“board”、“capboard”和“keyboard”這些詞時(shí),可以以“cap”、“capb”、“keyb”、“capboard”和“keyboard”這組詞為關(guān)鍵字,若搜索到“cap”,且不含“capb”,可以識(shí)別為“cap”;若搜索到“capboard”可以識(shí)別為“capboard”,同理,可以確定“key”和“keyboard”。圖2實(shí)例中任務(wù)信息經(jīng)過(guò)“格式化處理”后的形式如圖4所示,比如,圖中第二句話“pleasegivehumantheredcan”,可以搜索“give”、“human”、“red”、“can”這些關(guān)鍵字信息來(lái)判斷這是一條需要給用戶紅色罐頭的任務(wù)。
圖4 格式化處理結(jié)果Fig.4 The result of formatted processing
完成格式化處理后,在進(jìn)行分組標(biāo)記之前,需要對(duì)仿真平臺(tái)中的詞匯進(jìn)行關(guān)鍵字分析和預(yù)處理,便于將不同任務(wù)信息進(jìn)行分類處理。用于實(shí)驗(yàn)的測(cè)試平臺(tái)提供有限詞匯(表1)。名詞是用來(lái)保存任務(wù)的對(duì)象、形容詞是用來(lái)描述名詞的特性,程序不用專門處理;代詞在平臺(tái)中只有一個(gè)“me”,特指場(chǎng)景中的用戶,自動(dòng)處理為“human”即可;動(dòng)詞包括目標(biāo)中的實(shí)意動(dòng)詞,可能代表一個(gè)目標(biāo)或者約束,在處理時(shí)能夠直接判斷它具體代表什么類型的目標(biāo);介詞表示兩個(gè)物體之間的關(guān)系,過(guò)去分詞表示物體的狀態(tài),若程序只搜索到這兩類詞,那么它可能是一個(gè)補(bǔ)充信息;助動(dòng)詞“must”和“be”,在英文中,它帶有情感色彩,可能會(huì)描述為約束信息,因此程序需要先搜索判斷;冠詞如果出現(xiàn)在句子中,一般是幫助機(jī)器人定位小物體,可以和名詞,形容詞一起處理;副詞中的“there”可以用來(lái)表達(dá)陳述句,“not”可以用來(lái)否定,都需要進(jìn)行搜索判斷其表達(dá)的任務(wù)類型。
對(duì)于有實(shí)際意思的任務(wù)動(dòng)詞,可以進(jìn)行搜索,直接判斷其表達(dá)任務(wù)的含義。若在一條任務(wù)信息里找到give、pick、take、put、go、open、close這些動(dòng)詞,這樣的一條任務(wù)可能是包含完成目標(biāo)或者約束中的不能執(zhí)行的目標(biāo)。只要獲取到動(dòng)詞,并獲取動(dòng)詞后面的名詞,即可分析出這條任務(wù)。實(shí)例第2條關(guān)鍵字分析如下:動(dòng)詞“give”、名詞“can”和“human”、介詞“on”,該句子可以分析為目標(biāo)。
表1 自然語(yǔ)言詞匯表Table 1 Natural language vocabulary
對(duì)于介詞in、inside、on、near,介詞和名詞的組合onplate、inplate,以及介詞與介詞的組合netxtto、downto等情況,表示兩個(gè)物體之間的位置關(guān)系;對(duì)于opened、closed這類過(guò)去分詞表示某個(gè)容器門的開關(guān)狀態(tài),這兩類詞匯是屬于補(bǔ)充信息一類的。若任務(wù)類型是補(bǔ)充信息,在英文語(yǔ)法中第三人稱要用單數(shù),這類詞一般不會(huì)與“be”集合,故這類情況需要獲取介詞前后的詞匯,從而可以分析出句子表達(dá)的意思。實(shí)例中第1條,名詞為“bottle”和“worktable”,介詞為“on”,該句子中無(wú)表示實(shí)際含義的動(dòng)詞,且出現(xiàn)“is”,該句子可以分析為補(bǔ)充信息。
對(duì)于助動(dòng)詞must、be,在英文語(yǔ)法中表示有種強(qiáng)烈的情感色彩。通常這類句子用來(lái)表達(dá)約束,剩下部分可以按照目標(biāo)或補(bǔ)充信息進(jìn)行分析。實(shí)例中第6條,助動(dòng)詞是“must”,介詞是“on”,名詞是“book”和“sofa”,名詞“book”描述的是“red”,該句子可以分析為紅色的書必須在櫥柜上的約束信息。
對(duì)于冠詞“a/an/the”,能夠分析出若表達(dá)方式為“an opened door”,說(shuō)明這是一個(gè)補(bǔ)充信息,表達(dá)某個(gè)容器的門是開著的;若冠詞用于修飾表示小物體的名詞,可以判斷小物體的編號(hào),從而定位小物體。實(shí)例中第3條是要撿起紅色的罐頭,而第4條是要將黑色的罐頭從微波爐里拿出來(lái),這兩條信息中的“the”使得在處理第3條目標(biāo)和第4條目標(biāo)時(shí)可以定位是哪個(gè)罐頭。
對(duì)于副詞“there”可以表達(dá)“thereis”或者“theremust”兩種形式?!皌hereis”表示該句子是陳述句,沒(méi)有情感色彩,可能是一條補(bǔ)充信息;“theremust”帶有一定的感情色彩,可以初步判斷為約束信息。
經(jīng)過(guò)關(guān)鍵字分析后,可以得到動(dòng)詞大多數(shù)情況包括了任務(wù)信息中的目標(biāo);介詞大部分情況包括了任務(wù)信息中的補(bǔ)充信息;而任務(wù)信息中的約束主要根據(jù)關(guān)鍵字“not”和“must”判斷的,剩下部分可處理為目標(biāo)信息或補(bǔ)充信息。利用分組標(biāo)記的方法處理自然語(yǔ)言描述的任務(wù)信息,可以將任務(wù)信息的組成部分分為目標(biāo)組塊、服務(wù)組塊、描述組塊、位置組塊、“not”標(biāo)記組塊和“must”標(biāo)記組塊,若不滿足其中的基本組塊,則標(biāo)記為null。在仿真平臺(tái)中,對(duì)5種任務(wù)類型使用分組標(biāo)記進(jìn)行句法分析。
2.3.1 單個(gè)服務(wù)對(duì)象的目標(biāo) 對(duì)于這種類型的任務(wù),可以標(biāo)記有目標(biāo)含義的動(dòng)詞為目標(biāo)組塊;句子中出現(xiàn)的名詞標(biāo)記為服務(wù)組塊;若句子中出現(xiàn)形容詞,則標(biāo)記為描述組塊。這種類型的任務(wù)有“pickup”、“putdown”、“open”、“close”、“goto”等動(dòng)詞表達(dá)的目標(biāo),在實(shí)例中第3條,“pick”標(biāo)記為目標(biāo)組塊,“up”標(biāo)記為位置組塊,“can”標(biāo)記為服務(wù)組塊,“red”標(biāo)記為描述組塊,其余組塊標(biāo)記為null。
2.3.2 多個(gè)服務(wù)對(duì)象的目標(biāo) 對(duì)于“putin”、“puton”、“takeout”、“takefrom”、“givehuman”等表示的目標(biāo),這些目標(biāo)一般有兩個(gè)服務(wù)對(duì)象,其中目標(biāo)“givehuman”有一個(gè)服務(wù)對(duì)象是“human”。這些目標(biāo)一般把這些動(dòng)詞標(biāo)記為目標(biāo)組塊;兩個(gè)服務(wù)對(duì)象分別標(biāo)記為服務(wù)組塊1和服務(wù)組塊2,若有形容詞描述其服務(wù)對(duì)象,相應(yīng)地看標(biāo)記為描述組塊1和描述組塊2。在實(shí)例中第2條,可以將“give”標(biāo)記為目標(biāo)組塊,“on”標(biāo)記為位置組塊,“can”標(biāo)記為服務(wù)組塊1,“human”標(biāo)記為服務(wù)組塊2,“red”標(biāo)記為描述組塊1。
2.3.3 補(bǔ)充信息 如果句子中僅含有“in”、“on”、“inside”、“near”等介詞,或者句子中包含“opened”、“closed”等過(guò)去分詞,該句子表達(dá)的含義是一條補(bǔ)充信息,補(bǔ)充信息可以表示為兩個(gè)物體之間的關(guān)系,或者是某個(gè)物體的狀態(tài)??梢詫⒈硎疚矬w之間關(guān)系的介詞或者表示物體狀態(tài)的過(guò)去分詞標(biāo)記為目標(biāo)組塊,表示物體的名詞可以標(biāo)記為服務(wù)組塊,若有形容詞描述物體,可以將形容詞標(biāo)記為描述組塊。實(shí)例中第1條任務(wù)信息表達(dá)的是補(bǔ)充信息,可以將“on”標(biāo)記為目標(biāo)組塊,“bottle”、“worktable”標(biāo)記為服務(wù)組塊。
2.3.4 帶“not”標(biāo)記的約束信息 句子中含有“not”標(biāo)記,且沒(méi)有表示狀態(tài)的過(guò)去副詞,這樣的句子表達(dá)的含義就是一條約束信息。對(duì)于包含“not”標(biāo)記的約束信息,可以是一條不能執(zhí)行的目標(biāo),或者是一條不能保持的場(chǎng)景信息,將這兩種情況轉(zhuǎn)換為相應(yīng)的目標(biāo)信息,然后將其標(biāo)記為不能執(zhí)行。實(shí)例中第5條任務(wù)信息,可以將“not”標(biāo)記為“not”標(biāo)記組塊,“open”標(biāo)記為目標(biāo)組塊,“closet”標(biāo)記為服務(wù)組塊。
2.3.5 帶“must”標(biāo)記的約束信息 若句子中包含“must”關(guān)鍵字,且句子中沒(méi)有表示目標(biāo)的動(dòng)詞,該句子表達(dá)的含義是一條約束信息,表示場(chǎng)景中必須保持的信息,在機(jī)器人執(zhí)行任務(wù)的全程不能改變?cè)摷s束信息。在實(shí)例中第6條,可以將“must”標(biāo)記為“must”標(biāo)記組塊,“on”標(biāo)記為目標(biāo)組塊,“book”標(biāo)記為服務(wù)組塊1,“red”標(biāo)記為描述組塊1,“sofa”標(biāo)記為服務(wù)組塊2。
在分組標(biāo)記處理中,實(shí)現(xiàn)了對(duì)任務(wù)信息的分類,確定了自然語(yǔ)言中關(guān)鍵字及語(yǔ)義組塊之間的關(guān)系。其中,目標(biāo)組塊在語(yǔ)義上對(duì)應(yīng)的是該任務(wù)信息表達(dá)的類別,若該組塊是動(dòng)詞,需要進(jìn)一步分析其位置組塊;若該組塊是介詞,可以得出是補(bǔ)充信息。服務(wù)組塊在語(yǔ)義上表示完成該任務(wù)信息機(jī)器人操作的物體對(duì)象,若有描述信息,則對(duì)應(yīng)描述組塊;“not”約束信息組塊表示約束信息中不能保持的情況;“must”約束信息表示約束信息中必須保持的情況。分組標(biāo)記后的任務(wù)信息已經(jīng)分為不同的任務(wù)類型,但是這種分類僅僅是概念化,為了便于程序處理,需要對(duì)其進(jìn)行謂詞轉(zhuǎn)換,實(shí)現(xiàn)自然語(yǔ)言轉(zhuǎn)換為指令語(yǔ)言。經(jīng)過(guò)謂詞轉(zhuǎn)換,可以得到具體的任務(wù)類型,便于程序轉(zhuǎn)換為指令語(yǔ)言,其中謂詞轉(zhuǎn)換規(guī)則如表2所示。為了便于分析情況,從實(shí)例中選取第2條,第3條和第4條加以說(shuō)明。實(shí)例中第2條可以轉(zhuǎn)換的謂詞為“puton(bottle, human)”,第3條可以轉(zhuǎn)換的謂詞為“pickup(red can)”,第4條可以轉(zhuǎn)換的謂詞為“takeout(black can, microwave)”。
表2 謂詞轉(zhuǎn)換規(guī)則Table 2 The rule of predicate transformation
為了便于形象化理解自然語(yǔ)言預(yù)處理過(guò)程,下面將以上述實(shí)例為例,介紹預(yù)處理過(guò)程每一步驟的處理結(jié)果。
(1)處理自然語(yǔ)言中英文原句中字母大小寫和空格問(wèn)題。算法將英文原句中的字母全部轉(zhuǎn)換為小寫,并去掉空格,每一條任務(wù)用英文的句號(hào)進(jìn)行分隔。結(jié)果如圖4所示。
(2)算法從第一步處理過(guò)的字符串找關(guān)鍵字,根據(jù)動(dòng)詞、介詞、助動(dòng)詞、冠詞和副詞,分別找出不同類型的任務(wù),并記錄每一條任務(wù)經(jīng)過(guò)關(guān)鍵字分析后的結(jié)果。
(3)算法在處理第二步結(jié)果前,在要保存處理結(jié)果的字符串前面加上“(:ins”標(biāo)記。第二步處理結(jié)果可以劃分為五類,分別為帶“not”標(biāo)記的約束信息,帶“must”標(biāo)記的約束信息,補(bǔ)充信息,單個(gè)服務(wù)對(duì)象的目標(biāo)和多個(gè)服務(wù)對(duì)象的目標(biāo)。對(duì)于帶“not”標(biāo)記的約束信息的情況,算法可以加上“(:cons_not”標(biāo)記;對(duì)于帶“must”標(biāo)記的約束信息的情況,算法可以加上“(:cons_notnot”標(biāo)記;對(duì)于包含有目標(biāo)的動(dòng)詞,算法可以加上“(:task”標(biāo)記;對(duì)于有表達(dá)狀態(tài)信息的字符串,算法可以加上“(:info”標(biāo)記。然后,將任務(wù)的主體以指令語(yǔ)言的格式加到第三步保存的字符串中。
(4)算法將任務(wù)中物體obj1,物體obj2分別用顏色形容詞和物品種類名詞以指令語(yǔ)言格式加入到第三步保存的字符串里,完成自然語(yǔ)言轉(zhuǎn)化為指令語(yǔ)言。實(shí)例中的預(yù)處理結(jié)果如圖5所示。
圖5 實(shí)例的預(yù)處理結(jié)果Fig.5 Preprocessing results of the instance
經(jīng)過(guò)自然語(yǔ)言預(yù)處理后,仿真平臺(tái)能夠得到指令語(yǔ)言任務(wù)描述,之后利用回答集編程(ASP)技術(shù)進(jìn)行指令語(yǔ)言任務(wù)規(guī)劃,生成相應(yīng)的待執(zhí)行動(dòng)作序列。回答集編程(ASP)作為具有非單調(diào)推理能力的知識(shí)表示和推理工具,可以將場(chǎng)景信息、指令語(yǔ)言任務(wù)信息等外部輸入信息轉(zhuǎn)換為相應(yīng)的ASP規(guī)則,描述機(jī)器人對(duì)環(huán)境的感知和其行動(dòng)能力,并利用這些信息進(jìn)行任務(wù)規(guī)劃,解決自然語(yǔ)言指令任務(wù)規(guī)劃的問(wèn)題[11]。ASP的求解包括兩個(gè)步驟:
(a)實(shí)例化,將程序中含有的變量實(shí)例化為相應(yīng)的實(shí)例。
(b)模型搜索,計(jì)算實(shí)例化后程序的回答集。
任務(wù)規(guī)劃中使用的iclingo工具是一種增量式的ASP求解器,使用ASP求解家庭服務(wù)機(jī)器人仿真平臺(tái)中指令語(yǔ)言任務(wù)信息的流程圖(圖6)。
圖6 任務(wù)規(guī)劃流程圖Fig.6 The flow chart of task planning
從圖6中可以看出,基于ASP對(duì)指令語(yǔ)言任務(wù)信息求解動(dòng)作序列的過(guò)程如下:(a)對(duì)指令語(yǔ)言的任務(wù)信息進(jìn)行處理,將任務(wù)信息以事實(shí)或規(guī)則的形式添加到ASP程序中,同時(shí)對(duì)場(chǎng)景信息處理,若任務(wù)信息中存在補(bǔ)充信息,將其添加到場(chǎng)景信息,確定最終的初始場(chǎng)景信息;(b)根據(jù)ASP求解狀態(tài)及初始場(chǎng)景狀態(tài)、目標(biāo)狀態(tài),調(diào)用iclingo求解器進(jìn)行求解;(c)求得最優(yōu)的機(jī)器人動(dòng)作序列。如果出現(xiàn)超時(shí)(大于5 s),則需要對(duì)任務(wù)信息重新規(guī)劃,查看是否有錯(cuò)誤或遺漏的信息,直到得到最優(yōu)的動(dòng)作序列為止。
為了提高回答集編程(ASP)在自然語(yǔ)言任務(wù)規(guī)劃中的求解效率,可以使用關(guān)鍵字搜索算法處理自然語(yǔ)言,再使用ASP對(duì)處理后的指令語(yǔ)言任務(wù)進(jìn)行求解。例如,實(shí)例中第3任務(wù)“Please pick up the red can”,在預(yù)處理階段能夠得到指令語(yǔ)言格式為“pickup(red can)”,是命令機(jī)器人將紅色罐頭放到機(jī)械手中。由圖1的場(chǎng)景描述第8條信息“(sort 8 can) (size 8 small) (color 8 red) (at 8 2)”所示可知,紅色罐頭的編號(hào)為8,位置是在2號(hào)容器上,要想執(zhí)行圖2中第3條任務(wù),就必須執(zhí)行動(dòng)作“pickup(8)”。此時(shí)應(yīng)該判斷8號(hào)物體是否有要去某個(gè)位置的其他任務(wù),若有,則可以將這兩個(gè)任務(wù)組成復(fù)合任務(wù)。實(shí)例中第2條任務(wù)經(jīng)預(yù)處理后得到指令語(yǔ)言格式為“puton(red can, human)”,可以將第3條和第2條任務(wù)復(fù)合起來(lái),放在一起執(zhí)行,相應(yīng)的ASP編程為:move(2)——pickup(8)——move(6)——putdown(8)。
利用關(guān)鍵字之間的關(guān)系,可以將相關(guān)的原子動(dòng)作進(jìn)行合并,進(jìn)而可以提高ASP的搜索空間,使程序的時(shí)間復(fù)雜度下降,縮短機(jī)器人執(zhí)行動(dòng)作時(shí)間,提高ASP的求解效率。實(shí)例中ASP任務(wù)規(guī)劃的結(jié)果如圖7所示。
圖7 實(shí)例中的任務(wù)規(guī)劃結(jié)果Fig.7 The results of task planning in the instance
為測(cè)試關(guān)鍵字搜索算法在自然語(yǔ)言信息處理中的效果,以及在較大數(shù)據(jù)下的計(jì)算性能,試驗(yàn)采用中國(guó)機(jī)器人大賽中家庭服務(wù)機(jī)器人仿真項(xiàng)目為測(cè)試平臺(tái)。測(cè)試平臺(tái)提供自然語(yǔ)言描述的場(chǎng)景信息和任務(wù)信息,用戶程序識(shí)別并解析場(chǎng)景和任務(wù)相關(guān)的信息,通過(guò)算法求解出合理的行動(dòng)序列來(lái)完成任務(wù)要求,平臺(tái)根據(jù)程序運(yùn)行時(shí)間、已完成的任務(wù)數(shù)、遵守約束數(shù)、執(zhí)行動(dòng)作數(shù)和問(wèn)題求解效率綜合給出用戶程序的最終評(píng)分。
從2017年中國(guó)機(jī)器人大賽中家庭服務(wù)機(jī)器人仿真項(xiàng)目比賽內(nèi)容中隨機(jī)抽取20個(gè)任務(wù)場(chǎng)景,每個(gè)任務(wù)場(chǎng)景包含5到6個(gè)任務(wù)信息,總共約120多條子任務(wù),關(guān)鍵字搜索算法的處理結(jié)果與簡(jiǎn)單處理結(jié)果對(duì)比結(jié)果(表3),其中每個(gè)任務(wù)場(chǎng)景的測(cè)試分?jǐn)?shù)進(jìn)行對(duì)比(圖8)。
表3 對(duì)比實(shí)驗(yàn)結(jié)果Table 3 Comparison of experimental results
圖8測(cè)試分?jǐn)?shù)對(duì)比
Fig.8 The contrast of test score
從上述對(duì)比試驗(yàn)可以看出,關(guān)鍵字搜索算法在處理家庭服務(wù)機(jī)器人仿真項(xiàng)目的自然語(yǔ)言任務(wù)處理中具有良好的效果,其中大部分情況的自然語(yǔ)言信息都被準(zhǔn)確地“翻譯”為指令語(yǔ)言,大多數(shù)任務(wù)所獲得的分?jǐn)?shù)都明顯高于簡(jiǎn)單處理情況,該算法提高了服務(wù)機(jī)器人自然語(yǔ)言規(guī)劃效率。在自然語(yǔ)言指令規(guī)劃中,自然語(yǔ)言準(zhǔn)確地轉(zhuǎn)換為指令語(yǔ)言,對(duì)下一步的任務(wù)規(guī)劃有很大的幫助作用[12-13],在大量數(shù)據(jù)的測(cè)試過(guò)程,關(guān)鍵字搜索算法能夠?qū)⒔^大部分的自然語(yǔ)言準(zhǔn)確地翻譯成指令語(yǔ)言,為回答集編程(ASP)技術(shù)進(jìn)行任務(wù)規(guī)劃做好了良好的預(yù)處理工作,同時(shí)也間接地改善了ASP任務(wù)規(guī)劃的性能,最終提高了自然語(yǔ)言處理整體效率。
綜上所述,關(guān)鍵字搜索算法在絕大數(shù)情況下可以準(zhǔn)確地將的自然語(yǔ)言翻譯成指令語(yǔ)言描述格式,通過(guò)詞性之間的聯(lián)系以及句子中的關(guān)鍵字,能夠?qū)⑷祟惐磉_(dá)的自然語(yǔ)言處理信息識(shí)別為指令語(yǔ)言格式,提高了機(jī)器人對(duì)自然語(yǔ)言的理解能力,對(duì)家庭服務(wù)機(jī)器人仿真項(xiàng)目中自然語(yǔ)言處理有良好效果;通過(guò)改進(jìn)回答集編程(ASP)技術(shù)進(jìn)行指令語(yǔ)言任務(wù)規(guī)劃,能夠求解出更優(yōu)的機(jī)器人動(dòng)作序列,提高機(jī)器人自然語(yǔ)言規(guī)劃效率,更好地方便利用回答集編程技術(shù)進(jìn)行任務(wù)規(guī)劃和自動(dòng)規(guī)劃,提高機(jī)器人求解自然語(yǔ)言問(wèn)題的性能。