本發(fā)明總的來說涉及自然語言處理領(lǐng)域,具體而言涉及一種用于從用戶的自然語言輸入中提取關(guān)鍵元素的方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,人工智能機(jī)器人開始在市場上興起,例如微軟公司的“小冰”、蘋果公司的“siri”、百度的“度秘”等等。這些人工智能機(jī)器人主要分為語音助手類和聊天類。前者主要功能是為用戶提供有用信息,而后者旨在與用戶閑聊。無論哪類機(jī)器人都涉及自然語言處理技術(shù)。自然語言處理技術(shù)是指,對用戶輸入的自然語言進(jìn)行處理,使得機(jī)器人能夠理解所述自然語言。
自然語言處理的核心技術(shù)之一在于如何從用戶的自然語言輸入中準(zhǔn)確地提取出關(guān)鍵詞,因?yàn)槿绻P(guān)鍵詞都提取錯誤,則即使后續(xù)處理都正確,系統(tǒng)也無法提供與用戶自然語言輸入相對應(yīng)的系統(tǒng)自然語言示出。然而,目前的人工智能機(jī)器人在提取關(guān)鍵詞方面的效率和準(zhǔn)確率都不高,其主要原因如下。正確提取關(guān)鍵詞的前提是對自然語言輸入進(jìn)行正確的分詞。關(guān)于分詞方法,現(xiàn)有機(jī)器人大多采用機(jī)械分詞、即窮舉一句話所有可能的分詞結(jié)果,然后將所有分詞結(jié)果中的每個詞在知識庫中進(jìn)行匹配,最后輸出匹配度最好的結(jié)果。但由于知識庫巨大,這必然導(dǎo)致巨大的計(jì)算量,從而極大地提高了計(jì)算成本,而且當(dāng)遇到容易混淆的表達(dá)方式、如“長春市里有家長春藥店”時,分詞系統(tǒng)也容易出錯。
另外,即使分詞正確并提取了相應(yīng)關(guān)鍵詞,現(xiàn)有技術(shù)也往往不能確定所提取的關(guān)鍵詞的正確語義,而是可能使用關(guān)鍵詞的錯誤語義來生成自然語言輸出,這同樣會導(dǎo)致不能產(chǎn)生正確的系統(tǒng)自然語言輸出。這是因?yàn)?,用戶自然語言輸入中的核心詞匯可能具有多種含義,例如“土豆”既可以指一種食物、也可以指“土豆”視頻網(wǎng)站,而現(xiàn)有機(jī)器人在遇到這些有歧義的詞匯時,無法確定詞匯的正確語義。錯誤的語義確定導(dǎo)致對關(guān)鍵詞的“誤解”,從而造成機(jī)器人的智能化程度低,用戶體驗(yàn)較差。
技術(shù)實(shí)現(xiàn)要素:
從現(xiàn)有技術(shù)出發(fā),本發(fā)明的任務(wù)是提供一種用于從用戶的自然語言輸入中提取關(guān)鍵元素的方法,通過該方法,可以極大地提高分詞效率和正確率,從而促進(jìn)正確關(guān)鍵元素的確定。
根據(jù)本發(fā)明,該任務(wù)通過一種用于從用戶的自然語言輸入中提取關(guān)鍵元素的方法來解決,該任務(wù)包括下列步驟:
根據(jù)第一語義知識庫對用戶的第一自然語言輸入進(jìn)行語義匹配以識別所述第一自然語言輸入的總體語義;
選擇限定知識庫;
通過確定所述限定知識庫中與所述總體語義相關(guān)聯(lián)的條目并去除其余條目來縮減所述限定知識庫;
對所述第一自然語言輸入進(jìn)行機(jī)械分詞以生成所述第一自然語言輸入的分詞結(jié)果集合;
使用經(jīng)縮減的限定知識庫對所述分詞結(jié)果進(jìn)行匹配以從分詞結(jié)果集合中確定分詞結(jié)果;以及
從所述分詞結(jié)果的詞語中選擇一個或多個作為關(guān)鍵元素。
通過本發(fā)明的方法可以極大地提高分詞效率和分詞正確率,進(jìn)而促進(jìn)關(guān)鍵元素的提取。這是因?yàn)椋景l(fā)明人獨(dú)創(chuàng)地采用了下列措施:(1)在現(xiàn)有技術(shù)中,一般使用專用分詞工具(如中科院分詞nlpir、哈工大的ltp等等)來進(jìn)行分詞,但是這些分詞工具的分詞準(zhǔn)確率不高、而且無法細(xì)分到具體領(lǐng)域,例如遇到“長春市里有家長春藥店”之類易混淆表達(dá)方式時,容易分詞錯誤;另一種方式是機(jī)械分詞、即把用戶自然語言輸入的每一種文字的排列組合都羅列一遍以保證不會遺漏任何分詞可能性,但是機(jī)械分詞雖然準(zhǔn)確率為100%,但是計(jì)算量巨大,因?yàn)樗蟹衷~結(jié)果集合均需要與涉及各領(lǐng)域的巨大知識庫中的每個條目一一進(jìn)行匹配比對,但只有一個結(jié)果是準(zhǔn)確的,其它結(jié)果均為額外計(jì)算,這樣會造成巨大的計(jì)算量、例如動輒幾億次計(jì)算量,在本發(fā)明中,為了消除上述缺點(diǎn),將機(jī)械分詞與較小限定知識庫相結(jié)合、即采用較小的限定知識庫來對機(jī)械分詞的分詞結(jié)果進(jìn)行匹配——其中限定知識庫是僅僅包括一個或多個分類的知識庫,而不是涵蓋全部領(lǐng)域的大知識庫——,這樣既結(jié)合了機(jī)械分詞的高精度,同時又縮小了要進(jìn)行匹配的庫,從而大大降低了計(jì)算量;(2)在本發(fā)明中,通過提取用戶自然語言輸入的總體語義、即大致含義并篩除限定知識庫中與總體語義不相關(guān)聯(lián)的條目來縮減限定知識庫,可以進(jìn)一步降低將機(jī)械分詞結(jié)果與限定知識庫相匹配的計(jì)算量,從而進(jìn)一步降低計(jì)算成本。
在此應(yīng)當(dāng)指出,本發(fā)明中所指的“關(guān)鍵元素”應(yīng)當(dāng)寬范圍地理解,即關(guān)鍵元素不僅可以包括關(guān)鍵詞的文字本身,而且可以包括關(guān)鍵詞的語義。
在本發(fā)明的一個優(yōu)選方案中規(guī)定,從所述分詞結(jié)果的詞語中選擇一個或多個作為關(guān)鍵元素包括步驟:
使用第二語義知識庫對分詞結(jié)果中的詞語進(jìn)行匹配以確定所述詞語的語義;以及
從所述詞語的語義中選擇一個或多個作為關(guān)鍵元素。
在該優(yōu)選方案中,通過提取包括關(guān)鍵詞在當(dāng)前上下文的正確語義的關(guān)鍵元素、而不是僅僅提取關(guān)鍵詞本身,可以大大地消除歧義,提高系統(tǒng)輸出的正確性,這是因?yàn)殛P(guān)鍵詞在不同上下文中具有不同含義、如語義,而通過提取關(guān)鍵詞的正確語義作為關(guān)鍵元素,可以使用關(guān)鍵詞的正確語義,從而確保系統(tǒng)輸出的正確性。
在本發(fā)明的另一優(yōu)選方案中規(guī)定,該方法還包括步驟:
存儲所述關(guān)鍵元素,以供用于為用戶的第二自然語言輸入生成自然語言輸出。
通過該優(yōu)選方案,可以保證上下文連貫性、即可以將在先提取的關(guān)鍵元素用于為用戶在后的自然語言輸入(如查詢)提供自然語言輸出(如查詢結(jié)果),從而使系統(tǒng)更加“智能”。例如,當(dāng)用戶之前提到過他目前的所在地,則在后面用戶查詢機(jī)票信息時,可以不用詢問用戶的出發(fā)地而是在用戶提供其它所需信息的情況下即可生成查詢結(jié)果。在此,應(yīng)當(dāng)指出,第二自然語言輸入是在第一自然語言輸出之后的任意時刻輸入的自然語言輸入,而不一定是緊跟在第一自然語言輸入之后的自然語言輸入。
在本發(fā)明的一個擴(kuò)展方案中規(guī)定,根據(jù)一個或多個第一自然語言輸入的上下文或者根據(jù)預(yù)設(shè)來選擇限定知識庫。通過該擴(kuò)展方案,可以更加精準(zhǔn)地選擇限定知識庫,從而提高分詞準(zhǔn)確率。例如,可以根據(jù)用戶輸入的前三句話來確定用戶上下文,或者根據(jù)用戶選擇或系統(tǒng)預(yù)設(shè)來確定用戶上下文,然后根據(jù)用戶上下文選擇合適的限定知識庫。
在本發(fā)明的一個優(yōu)選方案中規(guī)定,根據(jù)第一語義知識庫對所述第一自然語言輸入進(jìn)行語義匹配包括下列步驟:
將所述第一自然語言輸入與第一語義知識庫進(jìn)行匹配以識別所述第一自然語言中的句型,其中所述第一語義知識庫包括預(yù)先存儲的句型模型;以及
根據(jù)所述句型確定所述第一自然語言輸入的總體語義。
通過該優(yōu)選方案,可以容易地確定用戶自然語言輸入的總體語義、即大致含義,因?yàn)橐痪湓挼拇笾潞x一般可以通過這句話的句型來確定,例如“我要吃漢堡”這句話的句型為“我要吃…”,從而可以確定這句話的大致含義與“食物”相關(guān)聯(lián),從而可以除去限定知識庫中與“食物”無關(guān)聯(lián)的條目,從而削減限定知識庫。而且,句型匹配無需分詞即可進(jìn)行,因此適于在分詞前進(jìn)行來簡化分詞計(jì)算。第一語義知識庫可以預(yù)先存儲各種句型,以供與用戶自然語言輸入進(jìn)行匹配。其它確定總體語義的方法也是可設(shè)想的,例如提取用戶自然語言輸入中的可能的動詞或名詞,通過所述詞語確定總體語義。
在本發(fā)明的另一優(yōu)選方案中規(guī)定,使用語義知識庫對分詞結(jié)果中的詞語進(jìn)行匹配以確定所述詞語的語義包括下列步驟:
使用語義知識庫對分詞結(jié)果中的第一詞語進(jìn)行匹配以確定第一詞語的一個或多個語義;
使用語義知識庫對分詞結(jié)果中的第二詞語進(jìn)行匹配以確定第二詞語的多個語義;
分別確定第二詞語的多個語義中的每個與第一詞語的一個或多個語義中的每個的關(guān)聯(lián)性;
確定第二詞語的語義和第一詞語的語義中彼此具有最大關(guān)聯(lián)性的語義;以及
將所述語義分別確定為第二詞語的語義和第一詞語的語義。
通過該優(yōu)選方案,可以極大地消除詞語的歧義,從而正確地識別關(guān)鍵元素。這是因?yàn)椋脩羲f的一句話中的各個詞語的語義是相互關(guān)聯(lián)的,例如在“我要吃土豆”這句話中,“土豆”既可能指一種食物,也可能指“土豆”視頻網(wǎng)站,但是通過分析詞語“土豆”的這幾個語義與該句話中的另一個詞語“吃”的關(guān)聯(lián)程度后發(fā)現(xiàn),“土豆”的“食物”語義與詞語“吃”的語義之間的關(guān)聯(lián)程度最高,由此可以確定“土豆”在這句話中是指食物,由此通過該優(yōu)選方案,可以提高確定語義的正確率,從而促進(jìn)后續(xù)關(guān)鍵元素的正確確定。其它消除歧義的方式也是可設(shè)想的,例如通過當(dāng)前上下文或用戶之前提供的自然語言輸入來確定各詞語的語義。
在本發(fā)明的一個擴(kuò)展方案中規(guī)定,總體語義包括下列類別:食物、娛樂、出行、服裝。通過該擴(kuò)展方案,可以覆蓋生活中的基本面,從而有效地對限定知識庫進(jìn)行縮減或篩除。其它劃分方式也是可設(shè)想的。
在本發(fā)明的另一擴(kuò)展方案中規(guī)定,使用貪婪算法、退火算法或者經(jīng)典二叉樹算法來使用限定知識庫對所述分詞結(jié)果進(jìn)行匹配。通過該擴(kuò)展方案,可以有效地執(zhí)行匹配過程。
在本發(fā)明的又一擴(kuò)展方案中規(guī)定,使用貪婪算法、退火算法或者經(jīng)典二叉樹算法來使用語義知識庫對分詞結(jié)果中的詞語進(jìn)行匹配。通過該擴(kuò)展方案,可以有效地執(zhí)行匹配過程。
在本發(fā)明的另一擴(kuò)展方案中規(guī)定,在語義匹配和/或使用限定知識庫對所述分詞結(jié)果進(jìn)行的匹配和/或使用語義知識庫對分詞結(jié)果中的詞語進(jìn)行的匹配失敗時,執(zhí)行異常處理程序,其中輸出錯誤提示或者使用神經(jīng)網(wǎng)絡(luò)以在神經(jīng)網(wǎng)絡(luò)中尋找就近的匹配節(jié)點(diǎn)。通過該擴(kuò)展方案,可以有效地處理異常情況。
此外,本發(fā)明的前述任務(wù)還可以通過一種機(jī)器可讀存儲介質(zhì)來解決,該存儲介質(zhì)具有存儲在其上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被配置為執(zhí)行根據(jù)本發(fā)明的方法。
附圖說明
下面結(jié)合附圖參考具體實(shí)施例來進(jìn)一步闡述本發(fā)明。
圖1示出了根據(jù)本發(fā)明的用于從用戶的自然語言輸入中提取關(guān)鍵元素的方法的流程。
具體實(shí)施方式
圖1示出了根據(jù)本發(fā)明的用于從用戶的自然語言輸入中提取關(guān)鍵元素的方法100的流程,其中虛線框表示可選步驟。
在步驟102,根據(jù)第一語義知識庫對用戶的第一自然語言輸入進(jìn)行語義匹配以識別所述第一自然語言輸入的總體語義。所述總體語義例如可以通過識別第一自然語言輸入的句型來識別,例如“我要吃漢堡”這句話的句型為“我要吃…”,從而可以確定這句話的大致含義與“食物”相關(guān)聯(lián),從而可以除去限定知識庫中與“食物”無關(guān)聯(lián)的條目,從而削減限定知識庫。所述匹配過程可以采用現(xiàn)有技術(shù)來進(jìn)行、例如貪婪算法、退火算法或者經(jīng)典二叉樹算法。為了不模糊本發(fā)明,在此不對這些算法展開介紹。在匹配失敗的情況下可以輸出錯誤信息或者進(jìn)入異常處理程序,例如神經(jīng)網(wǎng)絡(luò)進(jìn)行進(jìn)一步查找。
在步驟104,選擇限定知識庫。例如,限定知識庫可以根據(jù)一個或多個第一自然語言輸入的上下文或者根據(jù)預(yù)設(shè)來選擇。
在步驟106,通過確定所述限定知識庫中與所述總體語義相關(guān)聯(lián)的條目并去除其余條目來縮減所述限定知識庫。例如限定知識庫中的每個條目均屬于某類別,而通過總體語義可以確定相關(guān)聯(lián)的一個或多個類別,并且其它類別被從該限定知識庫中篩除。由此,減小了限定知識庫中的數(shù)據(jù)條目,從而降低匹配的計(jì)算量。
在步驟108,對所述第一自然語言輸入進(jìn)行機(jī)械分詞以生成所述第一自然語言輸入的分詞結(jié)果集合。機(jī)械分詞是指窮舉一句話所有可能的分詞結(jié)果,因此具有精度高的特點(diǎn),因?yàn)椴粫z漏任何分詞結(jié)果,但是在知識庫巨大的情況下,容易產(chǎn)生計(jì)算量大的缺點(diǎn),因?yàn)槊總€分詞結(jié)果都需要與巨大知識庫中的每個條目相匹配。機(jī)械分詞是從現(xiàn)有技術(shù)中公知的技術(shù),在此不加以贅述。
在步驟110,使用經(jīng)縮減的限定知識庫對所述分詞結(jié)果進(jìn)行匹配以從分詞結(jié)果集合中確定分詞結(jié)果。通過使用經(jīng)縮減的限定知識庫來對機(jī)械分詞的分詞結(jié)果集合進(jìn)行匹配,可以進(jìn)一步降低計(jì)算量。所述匹配過程可以采用現(xiàn)有技術(shù)來進(jìn)行、例如貪婪算法、退火算法或者經(jīng)典二叉樹算法。在匹配失敗的情況下可以輸出錯誤信息或者進(jìn)入異常處理程序,例如神經(jīng)網(wǎng)絡(luò)進(jìn)行進(jìn)一步查找。
在可選步驟112,使用第二語義知識庫對分詞結(jié)果中的詞語進(jìn)行匹配以確定所述詞語的語義。其中第二語義知識庫可以與第一語義知識庫為相同的語義知識庫,但是也可以為不同的語義知識庫,例如第一語義知識庫僅包含用于識別總體語義的條目、如句型,而第二語義知識庫包含相應(yīng)詞語的語義。所述匹配過程可以采用現(xiàn)有技術(shù)來進(jìn)行、例如貪婪算法、退火算法或者經(jīng)典二叉樹算法。在匹配失敗的情況下可以輸出錯誤信息或者進(jìn)入異常處理程序,例如神經(jīng)網(wǎng)絡(luò)進(jìn)行進(jìn)一步查找。
在可選步驟114,從所述詞語的語義中選擇一個或多個用作關(guān)鍵元素。從分詞結(jié)果的語義中篩選出關(guān)鍵元素的步驟可以按照一定的判斷規(guī)則來進(jìn)行,例如與當(dāng)前上下文的關(guān)聯(lián)性、語義本身的重要性等等,其中篩分規(guī)則越精細(xì),則所需儲存的關(guān)鍵元素的量就越少。通過提取包括關(guān)鍵詞在當(dāng)前上下文的正確語義的關(guān)鍵元素、而不是僅僅提取關(guān)鍵詞本身,可以大大地消除歧義,提高系統(tǒng)輸出的正確性,這是因?yàn)殛P(guān)鍵詞在不同上下文中具有不同含義、如語義,而通過提取關(guān)鍵詞的正確語義作為關(guān)鍵元素,可以使用關(guān)鍵詞的正確語義,從而確保系統(tǒng)輸出的正確性。但是其它實(shí)施例中,也可以直接存儲關(guān)鍵詞語或者所有詞語作為關(guān)鍵詞。
在可選步驟116,存儲所述關(guān)鍵元素,以供用于為用戶的第二自然語言輸入生成自然語言輸出。這來一來,可以保證上下文連貫性、即可以將在先提取的關(guān)鍵元素用于為用戶在后的自然語言輸入(如查詢)提供自然語言輸出(如查詢結(jié)果),從而使系統(tǒng)更加“智能”。例如,當(dāng)用戶之前提到過他目前的所在地,則在后面用戶查詢機(jī)票信息時,可以不用詢問用戶的出發(fā)地而是在用戶提供其它所需信息的情況下即可生成查詢結(jié)果。在此,應(yīng)當(dāng)指出,第二自然語言輸入是在第一自然語言輸出之后的任意時刻輸入的自然語言輸入,而不一定是緊跟在第一自然語言輸入之后的自然語言輸入。
通過本發(fā)明的方法可以極大地提高分詞效率和分詞正確率,進(jìn)而促進(jìn)關(guān)鍵元素的提取。這是因?yàn)?,本發(fā)明人獨(dú)創(chuàng)地采用了下列措施:(1)在現(xiàn)有技術(shù)中,一般使用專用分詞工具(如中科院分詞nlpir、哈工大的ltp等等)來進(jìn)行分詞,但是這些分詞工具的分詞準(zhǔn)確率不高、而且無法細(xì)分到具體領(lǐng)域,例如遇到“長春市里有家長春藥店”之類易混淆表達(dá)方式時,容易分詞錯誤;另一種方式是機(jī)械分詞、即把用戶自然語言輸入的每一種文字的排列組合都羅列一遍以保證不會遺漏任何分詞可能性,但是機(jī)械分詞雖然準(zhǔn)確率為100%,但是計(jì)算量巨大,因?yàn)樗蟹衷~結(jié)果集合均需要與涉及各領(lǐng)域的巨大知識庫中的每個條目一一進(jìn)行匹配比對,但只有一個結(jié)果是準(zhǔn)確的,其它結(jié)果均為額外計(jì)算,這樣會造成巨大的計(jì)算量、例如動輒幾億次計(jì)算量,在本發(fā)明中,為了消除上述缺點(diǎn),將機(jī)械分詞與較小限定知識庫相結(jié)合、即采用較小的限定知識庫來對機(jī)械分詞的分詞結(jié)果進(jìn)行匹配——其中限定知識庫是僅僅包括一個或多個分類的知識庫,而不是涵蓋全部領(lǐng)域的大知識庫——,這樣既結(jié)合了機(jī)械分詞的高精度,同時又縮小了要進(jìn)行匹配的庫,從而大大降低了計(jì)算量;(2)在本發(fā)明中,通過提取用戶自然語言輸入的總體語義、即大致含義并篩除限定知識庫中與總體語義不相關(guān)聯(lián)的條目來縮減限定知識庫,可以進(jìn)一步降低將機(jī)械分詞結(jié)果與限定知識庫相匹配的計(jì)算量,從而進(jìn)一步降低計(jì)算成本。
雖然本發(fā)明的一些實(shí)施方式已經(jīng)在本申請文件中予以了描述,但是對本領(lǐng)域技術(shù)人員顯而易見的是,這些實(shí)施方式僅僅是作為示例示出的。本領(lǐng)域技術(shù)人員可以想到眾多的變型方案、替代方案和改進(jìn)方案而不超出本發(fā)明的范圍。所附權(quán)利要求書旨在限定本發(fā)明的范圍,并藉此涵蓋這些權(quán)利要求本身及其等同變換的范圍內(nèi)的方法和結(jié)構(gòu)。