Monthly Archives: 三月 2019

從Dialogflow到NLU

Natural-Language-Processing.png

在2018年看到國外Google home的熱銷,引起我對Google Assistant的興趣,進而開始研究Dialogflow。經由Dialogflow串接外部API(用php & node.js 來串接Bitcoin exchange Rate & 新北市即時停車位),了解到意圖(intent–>想要做什麼)、實體(entity–>)到回應的動作(Action):如:

“我想在新北市的中和路停車"這句話可以分解出意圖及實體,其中"停車"是意圖,而"台北市仁愛路"是實體,那回應的動作則是從新北市即時停車的開放資料(open data) 找到資訊,然後回應的使用者的裝置上。

因為Dialogflow把意圖、實體及回應方式做了整體的處理,開發人員只要專注於Action的介面串接上即可;Dialogflow尚未被Google併購之前,api.ai提供了Api, 讓開發人員可以輕鬆串接到自己的應用程式內,但併購之後,我就沒有用他們的介面,但這也開啓我對中文自然語言理解能力NLU的研究。

意圖、實體及回應對於自然語言理解能力NLU(Natural Language Understanding)是相當重要的訊息,如果要電腦讀懂自然語言,當然要把意圖及實體擷取出來,而回應的部分,可以使用自有資料庫資料、開放資料或者是Google 查詢出來的資訊。

了解了NLU之後,你會發現中文自然語言理解能力,還需要做中文的斷詞(使用Jieba)及斷詞後字的向量(word2vec)做處理,對於大量中文訊息的來源,最佳選擇應該就是wiki;將wiki約將1.8G的資料轉換成可用的資料。

為了進一步了解NLU,當然,對於python在AI上的許多分析套件,就必須要有一些了解,尤其對中分文字的分類方法CNN neural network…等等;

經歷許久的測試,我即將把中文NLU轉換成可應用的程式呈現網路上…可能串接到臉書及LINE等等應用….,敬請期待…..