11.26 構建屬於自己的“聊天機器人”——NLP系列

全文共2807字,預計學習時長

9分鐘

構建屬於自己的“聊天機器人”——NLP系列

圖源:pexels

前段時間上映的日劇《輪到你了》在網絡掀起了不少熱議,高起低落、爛尾嫌疑令人感到一絲遺憾,但也難以掩蓋其劇情的精彩。這部片子融合了很多“接地氣”的現代元素,“垃圾分類”、“人工智能”、“偷渡非法居民”等,反映了很多社會熱點話題。

其中,最讓小芯感興趣的便是男二為男主做的“AI菜奈”——一個人工智能“聊天機器人”。它的“機智程度”不亞於真人,甚至有網友評論最終破案的其實是“AI菜奈”APP。

構建屬於自己的“聊天機器人”——NLP系列

“AI菜奈”

這麼神奇的聊天機器人,是怎麼構建出來的呢?

今天就和小芯一起來深入瞭解一下吧~

構建屬於自己的“聊天機器人”——NLP系列

圖源:Unsplash

什麼是聊天機器人?

聊天機器人,顧名思義,是一個可以同你聊天的機器。

構建聊天機器人的秘訣是使之越來越像人。從“美國運通客戶支持”到“Google Pixel呼叫篩選軟件”,我們生活中的聊天機器人形態各異,越來越豐富多彩。

聊天機器人實際上是怎樣工作呢?

早期版本的聊天機器人運用一種名為模式匹配(pattern matching)的機器學習技術,比今天使用的高級自然語言處理技術要簡單的多。

什麼是模式匹配?

要理解這一點,想象你會詢問一個書商什麼問題?比如:“XX書多少錢?”或者“你們有xx作者的什麼書?”每個用斜體印刷的問題都是一個模板的例子,用於匹配出現在未來的相似問題。

模式匹配需要許多提前生產出來的模板。基於這些提前生產出來的模板,聊天機器人可以簡單輕鬆地挑選出最佳匹配顧客諮詢的模板,並由此給予顧客答案。

你們認為下述的聊天是如何被創建的?

構建屬於自己的“聊天機器人”——NLP系列

簡單地說,問題“May I know the price for”被轉化為模板The price of<star>。模板就像一把鑰匙,將儲存所有未來的答案。所以我們得到如下的內容

--iPhoneX的價格是1500美元。

--KindlePaperwhite 的價格是100美元。

在AIML(人工智能建模語言)中,編碼如下:

#PATTERN MATCHING

<category>

<pattern>MAY I KNOW THE PRICEFOR */<pattern>

<template>

<srai>THE PRICE OF<star>/<srai>

------------------------------------------------

#PRE_STORED PATTERNS<category>

<pattern>THE PRICE OF iPhoneX?/<pattern>

<template>iPhone X Costs$1500./<template>

<category>

<pattern>THE PRICE OF KindlePaperwhite?/<pattern>

<template>The all-new kindlepaperwhite costs $100. Yay!! You/<template>

have got an offer!! You can get itfor $85 if you apply

the coupon MyGoodBot

自然語言處理聊天機器人

模式匹配實施起來簡單迅速,但只可以做到這一步。它需要很多預先生成的範本並且只適用於需要有限數量問題的應用程序。

構建屬於自己的“聊天機器人”——NLP系列

圖源:xkcd

進入自然語言處理環節!自然語言處理是可以理解一大堆問題的相對先進的科技組合。建立聊天機器人的自然語言處理過程可以被拆分為五個主要步驟

1)標識化(Tokenize)—詞語切分是把文本切分成小部分,叫做標識符(tokens),同時丟棄掉一些字符特徵,比如發音。這些標識符對於文本具有語言代表性。

構建屬於自己的“聊天機器人”——NLP系列

標識化一個句子

2)標準化(Normalisation)-標準化通過處理文本,找出可能改變客戶需求的意思的常見拼寫錯誤。一個非常優秀的研究論文(對推文進行標準化的文章 )很好的闡述了這個觀點

構建屬於自己的“聊天機器人”——NLP系列

推文研究的語法標準化

3)識別實體(Recognising Entities)--這一步驟幫助聊天機器人確定在說些什麼。比如這是一個目標,一個國家還是一串數字或者是使用者的地址。

觀察如下的例子:Google,IBM 以及微軟如何聚集成一個組織,這一步被稱作為命名實體識別。

構建屬於自己的“聊天機器人”——NLP系列

不同單詞的實體。

4)依存句法分析(Dependency Parsing)--這一步把句子拆分成名詞,動詞,賓語,常用詞組和標點。這項科技幫助機器確定句法,轉而告訴它使用者想表述的意思。

構建屬於自己的“聊天機器人”——NLP系列

斯坦福 — 依存句法分析示例

5)生成(Generation)--最後一步是如何生成回覆。上述步驟通過NLU(自然語言識別器)得以實現,這些步驟幫助機器人理解被寫下的句子。然而產出這一步驟通過NLG(自然語言生成器)實現。這一步接收先前NLU步驟的輸出並且生成大量同樣含義的句子。生成的句子在以下方面大體相似

  • 文字的序列—“thekitchen light”與“the light in the kitchen”相近
  • 單複數—“the kitchen light”與“the kitchen lights”相近
  • 問題—“close the door”與“do you mind closing the door?”相近
  • 否定—“turn on theTv at 19:00”和“don’turn on the tv at 19:00”相近
  • 禮儀--“turn on the tv” 與 “could you please be so kind as to turn on the tv?”相近

基於用戶問題的語境,機器人使用上述選項之一進行回覆,使得用戶滿意地返回。在很多案列中,用戶很難區別開機器和人類。

自從1995年發明AIML,聊天機器人穩健發展,並且已經取得了很大進步。甚至在2016年一個用戶平均消耗大於20分鐘在聊天軟件上進行互動。其中,Kakao、Whatsapp 以及Line是最受人歡迎的聊天軟件。

構建屬於自己的“聊天機器人”——NLP系列

Similarweb

世界上的企業都正期望通過使用這些機器人消減客戶服務的成本,並提供24小時的客戶服務。

到2020年,80%的企業需要聊天機器人。

聊天機器人背後的技術——相當標準化的自然語言處理還有很長的路要走,但是即使在當下,自然語言處理在聊天機器人領域仍前景可觀。

期待著人手一個專屬聊天機器人時代的到來。(也不知是福是禍)

構建屬於自己的“聊天機器人”——NLP系列

圖源:pexels

構建屬於自己的“聊天機器人”——NLP系列

我們一起分享AI學習與發展的乾貨


分享到:


相關文章: