智能語音機器人如何理解一句話?具體流程是什么?
文章以機器人的口吻出發,簡述了身為智能語音機器人的“我”是如何理解一句話的,具體又分為哪幾個步驟,一起來看看~
自我介紹
哈嘍~我是人工智能語音機器人,今天想給大家說說我的大腦中最關鍵的構造,這樣你們能知道我的思維方式和目前的局限性,就能持著一種更平和的心態看我啦。所以,我今天主要要回答的問題是:“機器人是如何思考的?”
問題:機器人是如何思考的?
當我把我獲取的信息轉化成文字,就是我要開始思考的時候了。我怎么理解這些文字呢?全依賴于我大腦里的“語音系統”——自然語言處理,NLP,它讓我能模仿你們去理解你們的語言。接下來我會通過一個例子來描述我的思考過程。
我理解“2018年5月周杰倫發表了一首新歌”的過程
1. 先把句子拆分成一個一個詞語
首先,我要先把這個句子用我的理解拆成一個個詞語(我能理解都來源于各種大數據,各種模型的支持),當然,我其實,有時候句子稍微復雜,我就容易把詞語拆分錯,這樣第一步出了問題,我就很難理解正確了。
例如,當說:嚴守一/把/手機/關了,我容易理解成: 嚴守/一把手/機/關了。因為我印象中有一個“一把手”的詞語,而不存在“嚴守一”這個人名。所以我其實很難理解“嚴守一”是一個人名,而把“嚴守一”拆開來理解。
2. 理解每個詞語
當我把詞拆開后,我開始理解每個詞語的詞性,進行實體識別。例如,我理解了“周杰倫”是一個人名,“2018年”是一個年份,“新歌”是一個名詞。
3. 再理解每個詞語之間的關系
同樣是基于人類智慧的結晶,我利用數據和各種算法等來理解每個實體的相互關系,這個時候我大概對這句話有一個模糊的理解了
4. 把句子分意圖
在理解了句子有哪些實體,實體之間的關系,我就能粗略地把這個句子的意圖分類出來。在這里說下為什么我要把句子分意圖呢?人類語言太博大精深了,但還好,每一句話背后都有它的動機。
我基于這個動機把各種語言都化在一個有限的空間里,分了n個大類,這樣我才有可能理解;一般來說,你們經??吹降娜斯ぶ悄苷Z言機器人,意圖都有如下幾類:閑聊-音樂-機器功能-天氣-鬧鐘-智能家居。
我是怎么分意圖的呢,這個就是利用基于算法的模型,這個模型是程序員哥哥們通過各種數據來訓練的,當然有時還需要人定的一些特殊規則等來分類。這句話是不是在規定好的我們常要點歌的指令集里(指令集:也就是我們總結的人表達某個意圖可能的說話方式,例如,聽歌可以有多種表達方式,如我要聽歌,能不能播放一首歌,來一首歌等)
例如,當我分析“我要聽周杰倫的歌”,我就能毫不猶豫地把這句話理解成:“哦,原來是要執行和音樂操作相關的”,然后把這句話的意圖歸類到:”音樂”意圖。
但,當我分析”2018年5月周杰倫發表了一首新歌”,我通過實體識別,發現有一個“歌”,還有一個歌手,周杰倫,我就可能會把這句話的意圖理解為播放歌曲,搞不好我就會直接給播放周杰倫的歌了。現在想想我真是傻;
多虧了程序員哥哥們的各種智慧,他們為我額外裝了一個糾錯模型,如果我把這句話的粗略意圖判斷錯了也沒關系,這句進入到糾錯模型后,會被過濾出來,再丟到一個萬能意圖(閑聊),這個時候,會被判斷為“音樂相關的閑聊”意圖。
所以,嗯,我最終把”2018年5月周杰倫發表了一首新歌”這句話理解成了原來是想和我聊個2毛錢的天啊。所以我就會啟動我的聊天模式(聊天模塊),開始和你瞎扯。
總結
總的來說,我要理解一句話,我要經過把句子拆了,然后再自己把句子組合,最后再理解這句話背后的意圖,當我理解了意圖的時候,我覺得我幾乎已經理解了這句話。但然而,我很多時候分類意圖還是會出錯,所以,當我意圖都錯誤的時候,我很有可能回應你的行為,你會覺得這行為很傻。
好啦,今天就聊到這吧。拜拜啦~
作者:huotui,從業語義產品經理,也就是AI產品經理,主要做智能音箱。后續會分享一些關于AI產品經理和AI產品心得給大家
本文由 @huotui 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
另一種技術
是什么
NPL核心技術還是多輪對話、上下文理解吧
并不是,Nlp是為了理解一句話,基礎的就是分詞技術等,上下文嚴格來說不屬于Nlp,屬于另外一種技術