CUI三部曲之自然語言處理——機(jī)器如何理解你的話?

在智能時(shí)代,以對(duì)話為主要交互形式的CUI會(huì)應(yīng)用到越來越多的場(chǎng)景中,這時(shí)機(jī)器往往需要能夠完成“聽懂——理解——回答”的閉環(huán)。它們相應(yīng)地涉及到三類技術(shù):語音識(shí)別、自然語言處理以及語音合成。

語音識(shí)別的任務(wù)是將用戶所說的話從音頻形式轉(zhuǎn)變?yōu)槲淖中问剑匀徽Z言處理的任務(wù)則是理解這些文字所要表達(dá)的意思(語義)。機(jī)器針對(duì)用戶的語義會(huì)給出相應(yīng)的回答,并以語音的形式說給用戶聽,這就需要用到語音合成。

語音識(shí)別、自然語言理解與語音合成三者環(huán)環(huán)相扣,任何一環(huán)的失誤都無法使產(chǎn)品獲得良好的用戶體驗(yàn)。

如果說語音識(shí)別是CUI交互的基礎(chǔ),自然語言處理則是當(dāng)之無愧的靈魂:無法理解用戶說話的意思,那和一臺(tái)錄音機(jī)有什么區(qū)別。

NLP與對(duì)話系統(tǒng)

自然語言即人類日常交流所使用的語言,與之相對(duì)的是人造語言(如各種編程語言)。自然語言處理(Natural Language Processing,NLP)主要研究機(jī)器如何理解自然語言文本的含義從而有效處理,以及人與機(jī)器之間如何通過自然語言有效通信。

NLP的應(yīng)用非常廣泛,包括文本分類、文本摘要、機(jī)器翻譯、輿情監(jiān)測(cè)對(duì)話系統(tǒng)等,每個(gè)應(yīng)用領(lǐng)域所涉及到的技術(shù)原理會(huì)有所差異。

以CUI為主要交互形式的對(duì)話產(chǎn)品,其核心是一個(gè)對(duì)話系統(tǒng)。在一個(gè)比較簡(jiǎn)單的對(duì)話系統(tǒng)中,用戶輸入的文字主要會(huì)經(jīng)過分詞詞性標(biāo)注、特征提取分類檢索四個(gè)處理過程。

(對(duì)話系統(tǒng)對(duì)文字的處理過程)

(1)分詞

分詞指通過分詞模型,將一個(gè)文字序列切分成一個(gè)個(gè)詞或短語。單獨(dú)的漢字與字母往往很難表達(dá)語義,所以需要將文字序列變成由詞或短語組成的序列,作為后續(xù)處理的基礎(chǔ)。

英文的單詞之間存在空格作為分界,所以僅存在短語的劃分問題;而中文的文字之間沒有明顯的分界符來進(jìn)行詞語上的劃分,所以中文分詞比英文分詞更加困難。

中文分詞的方法主要分為三類:基于匹配、基于理解基于統(tǒng)計(jì)?;谄ヅ涫侵笇⑽淖中蛄信c一個(gè)“詞典”中的詞語進(jìn)行匹配,若在“詞典”中找到某個(gè)詞語與文字序列中的某幾個(gè)連續(xù)漢字匹配,則將這幾個(gè)連續(xù)漢字切分為一個(gè)詞;基于理解是指在分詞的同時(shí)進(jìn)行句法、語義的分析,并利用句法和語義信息來幫助分詞;基于統(tǒng)計(jì)是指通過統(tǒng)計(jì)文字序列中的相鄰文字在大量文本數(shù)據(jù)中相鄰出現(xiàn)的頻率,來判斷它們是否組成了一個(gè)詞語。

(2)詞性標(biāo)注

分詞模型將用戶輸入的文字序列變成“詞語序列”后,就需要通過標(biāo)注模型,來標(biāo)注這些詞語的詞性:即確定它們?cè)谶@句話中是名詞、動(dòng)詞還是代詞等等。

中文詞性標(biāo)注相對(duì)英文較為簡(jiǎn)單,因?yàn)橐粋€(gè)中文詞語的詞性往往只有一個(gè);即便一些中文詞語存在多個(gè)詞性,它的“主要”詞性出現(xiàn)的頻率也遠(yuǎn)高于其余詞性。據(jù)說在中文詞性標(biāo)注時(shí),只需“簡(jiǎn)單粗暴”地為每個(gè)詞語選取它最主要的那個(gè)詞性,即可獲得還不錯(cuò)標(biāo)注準(zhǔn)確率。在需要更高的標(biāo)注準(zhǔn)確率時(shí),可采用隱馬爾可夫模型等方法。

(3)特征提取

特征提取是將用戶輸入的文字序列變成向量的過程。根據(jù)分詞與詞性標(biāo)注的結(jié)果,可以根據(jù)某種規(guī)則來提取文字序列的若干個(gè)特征,組成一個(gè)向量;向量的每個(gè)分量則描述了文字序列的一種特征。文字序列變成了機(jī)器擅長處理的向量形式后,即可進(jìn)行后續(xù)的分類與檢索。

(4)分類檢索

分類與檢索通過分類器(用于分類的模型,如神經(jīng)網(wǎng)絡(luò))與FAQ(儲(chǔ)存著很多“問題”與對(duì)應(yīng)“答案”的數(shù)據(jù)庫)來完成。

(FAQ中的“問題”與“答案”)

FAQ中儲(chǔ)存的一個(gè)個(gè)“問題”,在機(jī)器眼里是一個(gè)個(gè)向量。通過特征提取得到用戶輸入的文字序列所對(duì)應(yīng)的向量之后,就可以利用分類器,通過向量與向量之間相似程度的計(jì)算,來等效獲得用戶輸入與FAQ中各個(gè)“問題”的相似程度。

(文字在對(duì)話系統(tǒng)中的變化過程)

通過比較用戶輸入與FAQ中各個(gè)“問題”的相似程度的大小,就能檢索出與用戶輸入最為“匹配”的那一個(gè),從而將它所對(duì)應(yīng)的“答案”作為回答,輸出給用戶。

值得一提的是,如今AI界的網(wǎng)紅深度學(xué)習(xí),正是通過分詞模型、標(biāo)注模型以及分類器的訓(xùn)練來應(yīng)用于對(duì)話系統(tǒng)中的。這些模型可以選擇深度神經(jīng)網(wǎng)絡(luò)作為結(jié)構(gòu)形式,然后通過大量數(shù)據(jù)訓(xùn)練而得到。

此外,對(duì)于更加復(fù)雜的對(duì)話系統(tǒng),還涉及到指代消解、成分補(bǔ)全、命名實(shí)體識(shí)別等NLP技術(shù),同時(shí)在架構(gòu)層面也需要具備對(duì)話管理器、知識(shí)圖譜等模塊。這些進(jìn)階版的科普內(nèi)容,會(huì)在以后的文章中詳細(xì)闡述。

人工智能的高枝果實(shí)

NLP是人工智能的“高枝果實(shí)”,其難度一直被認(rèn)為是人工智能領(lǐng)域最高的之一。目前NLP所獲得的研究成果離真正準(zhǔn)確地理解人類語言,與人類無障礙交流還相差甚遠(yuǎn)。

(畢竟too young too simple)

NLP的難度主要來源于兩個(gè)方面:一是語言是人類自己所創(chuàng)造的東西,并不是客觀世界所存在的,所以非常主觀與多變;二是語言所傳遞的信息往往和上下文有關(guān)。

(1)語言的多變性

語言的多變最典型的體現(xiàn)就是一個(gè)意思有多種說法,以及同樣的詞語在不同的語言環(huán)境中表達(dá)不同的意思。比如同樣詢問一輛車的操控體驗(yàn),就有無數(shù)種說法:

奔馳的操控性怎么樣?
奔馳好開嗎?
奔馳開起來順手嗎?
……

又比如同樣一個(gè)動(dòng)詞“打”,可以表達(dá)無數(shù)種不同的意思:

我要去打個(gè)車
他很想打人
你去把這個(gè)文件打一下
……

人類理解這些不同的說法并不困難,但對(duì)機(jī)器而言則是噩夢(mèng):?jiǎn)渭兏鶕?jù)字詞的意思推測(cè)語義,很多時(shí)候會(huì)得到錯(cuò)誤的結(jié)果;如果要窮盡各種不同的表達(dá)方式來訓(xùn)練一個(gè)模型,所需要的數(shù)據(jù)量則是天文數(shù)字;如果想把人類理解這些語言的“規(guī)則”告訴機(jī)器,又很難把這些規(guī)則總結(jié)清楚……

而且在日常交流時(shí),還大量存在各種不規(guī)范說法、簡(jiǎn)稱、習(xí)慣用法等。機(jī)器要想理解它們,分分鐘哭暈在廁所。

(2)上下文相關(guān)性

自然語言中上下文的相關(guān)性主要體現(xiàn)在某個(gè)語句所要表達(dá)的意思,往往和之前的談話內(nèi)容有所關(guān)聯(lián)。比如:

A - 北京今天有霧霾嗎
B - 有,重度污染
A - 那明天呢
B - 別問了,最近天天都有
A - 那它啥時(shí)候會(huì)好點(diǎn)
B - 不知道

A在第二個(gè)問題中省略了提問內(nèi)容“有霧霾嗎”,在第三個(gè)問題中用“它”指代了北京的空氣狀況,B都能夠聯(lián)系上文準(zhǔn)確領(lǐng)會(huì)。但讓機(jī)器去這樣做則是一個(gè)困難的問題。盡管像上面這樣簡(jiǎn)單的對(duì)話目前的技術(shù)已經(jīng)能夠處理,但更加復(fù)雜的上下文場(chǎng)景依然存在很大的挑戰(zhàn)。

產(chǎn)品只求恰到好處

NLP技術(shù)的不成熟并不代表它在今天無法發(fā)揮價(jià)值。前沿科技的落地永遠(yuǎn)不必等到萬事俱備:技術(shù)需要深厚積淀,產(chǎn)品只求恰到好處。唯有將現(xiàn)有的技術(shù)成果積極投入應(yīng)用,才能有更多實(shí)際場(chǎng)景中的反饋來促進(jìn)技術(shù)的發(fā)展。

應(yīng)用在對(duì)話系統(tǒng)中時(shí),NLP的“恰到好處”體現(xiàn)在三方面:支持特定語言、應(yīng)用于特定領(lǐng)域與場(chǎng)景明確特定的打開方式。

(1)特定語言

不同語言的“字詞”差異很大,且存在不同的語法,所以機(jī)器對(duì)每一種語言的處理都需要專門針對(duì)這種語言收集數(shù)據(jù)訓(xùn)練模型。如果需要支持處理的語言種類很多,工作量會(huì)十分龐大。

然而在開發(fā)一個(gè)對(duì)話產(chǎn)品時(shí),往往只需支持一兩種較為通用的官方語言(比如標(biāo)準(zhǔn)的中英文)即可。隨著國際化與教育的發(fā)展,語言一定會(huì)越來越通用化和官方化,讓用戶使用較為通用的官方語言(支持一定程度上的語法不規(guī)范)來操作一個(gè)產(chǎn)品并不苛刻。

更重要的是,在技術(shù)尚不成熟的情況下,針對(duì)一種語言進(jìn)行良好的語義理解已屬不易,分散研發(fā)力量支持多種語言必然會(huì)導(dǎo)致效果的下降。與其給用戶提供n條不靠譜的路,不如集中精力先給出一條靠譜的來

(2)特定領(lǐng)域與場(chǎng)景

談話的內(nèi)容往往與領(lǐng)域強(qiáng)相關(guān),好比在談?wù)撈囶I(lǐng)域的問題時(shí),醫(yī)療領(lǐng)域的內(nèi)容就很難出現(xiàn)在談話中。

所以,在開發(fā)對(duì)話產(chǎn)品時(shí),要明確這個(gè)產(chǎn)品是解決什么領(lǐng)域的問題:是一個(gè)用于電商的智能客服,還是用來查天氣講笑話逗樂的陪聊機(jī)器人。明確了產(chǎn)品應(yīng)用的領(lǐng)域之后,所對(duì)應(yīng)涉及到的語料數(shù)據(jù)就局限了很多,便于更好地進(jìn)行覆蓋。

同樣的領(lǐng)域還可以進(jìn)一步分為不同的場(chǎng)景。比如開發(fā)一個(gè)面向汽車行業(yè)的對(duì)話產(chǎn)品,既可以針對(duì)售前場(chǎng)景解答客戶買車時(shí)的疑問,也可以針對(duì)售后場(chǎng)景解答客戶購車之后所遇到的問題,還可以通過與客服人員對(duì)話來訓(xùn)練他們的基本話術(shù)。在垂直領(lǐng)域的基礎(chǔ)上細(xì)分特定場(chǎng)景可以獲得更加局限的語料范圍。

當(dāng)然,一個(gè)對(duì)話產(chǎn)品也可以同時(shí)支持多個(gè)領(lǐng)域與場(chǎng)景,但仍然需要針對(duì)每個(gè)領(lǐng)域和場(chǎng)景分別進(jìn)行訓(xùn)練和開發(fā),然后進(jìn)行集成。好比一個(gè)人可以同時(shí)掌握多項(xiàng)技能,但這些技能需要一項(xiàng)項(xiàng)的學(xué)習(xí)。

(3)特定打開方式

現(xiàn)階段的對(duì)話產(chǎn)品很難強(qiáng)大到讓用戶想怎么說就怎么說,所以對(duì)話產(chǎn)品應(yīng)該設(shè)定一種對(duì)用戶使用有所限定,且仍能讓用戶覺得它有價(jià)值的“打開方式”。

比如對(duì)于智能客服產(chǎn)品,如果立足于完全替代企業(yè)的客服人員,那么企業(yè)購買之后肯定會(huì)發(fā)現(xiàn)這個(gè)產(chǎn)品并不能達(dá)到宣稱的效果,必定會(huì)吐槽產(chǎn)品難用、虛假宣傳。

如果換一種打開方式,正視產(chǎn)品的局限性,把立足點(diǎn)從完全替代人工轉(zhuǎn)變成“機(jī)器回答60%標(biāo)準(zhǔn)問題,客服回答其他40%問題”的部分替代人工,那么它就成為了一個(gè)技術(shù)可以實(shí)現(xiàn)且同樣對(duì)企業(yè)有價(jià)值的產(chǎn)品。

(智能客服部分替代人工)

總結(jié)

NLP是CUI交互中“聽懂——理解——回答”閉環(huán)的靈魂:機(jī)器無法理解用戶說話的意思,就沒有資格談交互。

NLP有很多應(yīng)用領(lǐng)域,包括文本分類、文本摘要、機(jī)器翻譯、輿情監(jiān)測(cè)與對(duì)話系統(tǒng)等。一個(gè)比較簡(jiǎn)單的對(duì)話系統(tǒng)主要會(huì)涉及分詞、詞性標(biāo)注、特征提取、分類檢索等技術(shù);復(fù)雜的對(duì)話系統(tǒng)還會(huì)涉及指代消解、成分補(bǔ)全、命名實(shí)體識(shí)別等技術(shù)。

NLP是人工智能的高枝果實(shí),人類目前的研究積累還非常初級(jí)。它的難度來源于兩個(gè)層面:一是語言本身的變化非常多,二是語言所傳遞的信息往往和上下文有關(guān)。

即便NLP在技術(shù)上還很不完善,但仍然需要積極的將現(xiàn)有技術(shù)成果落地應(yīng)用。開發(fā)對(duì)話產(chǎn)品時(shí),可通過支持特定語言、應(yīng)用于特定領(lǐng)域與場(chǎng)景、明確特定的打開方式三個(gè)方面來規(guī)避技術(shù)的不成熟,獲得可用的產(chǎn)品。

依慣例,最后奉上一張圖作為總結(jié)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容