账号:
密码:
CTIMES / 文章 /   
Microsoft LUIS语意识别简介
 

【作者: 凌群電腦】2019年09月05日 星期四

浏览人次:【598】
  


随着科技的进步与机器运算能力日渐强大,人们开始追求更方便、舒适的生活,像是如何让机器去帮助人们解决各种问题,如何让事情处理起来更快速、更精准,在这样的趋势下,人工智慧开始成为一个热门的话题,在各种领域中,都能看到与它相关的应用。


语意识别是在人工智慧当中的一门技术,当机器收到一段文字或句子时,机器会去分析这段文字跟句子、并了解所代表的语意,便是语意识别在做的事,Language Understanding Intelligent Service (LUIS)便是一个微软所提供去进行语意识别的API云端式服务。


LUIS会要求使用者建立一个App,这个App可能会是针对某个领域的语句去分析它的语意,例如点餐服务:会分析使用者说的语句,决定出使用者想要的餐点。这个App也可以设计去判断独特的语句,例如,让机器可以看懂一些独特、少用,但自己会用到的语法。在决定好自己App要用的主题後,便可以开始建立自己的语意识别App。


建立LUIS App

LUIS为微软提供的云端式服务,所有模型的设定都在https://www.luis.ai/这个网站中进行,进入网站後,点选网站中Login / Sign up这个按钮,便可以开始使用,首先会要求使用者登入或注册帐户,若有微软的帐户,就可以直接使用,没有的话则要先注册一个帐户,才能继续进行後面的步骤。


进入LUIS网站并登入後,看到My Apps的列表,可以选择自己建立过的App,或是建立新的App来使用。在LUIS中,每一个App,都代表着一个不同的语意模型,它们面对各个语法,都有各自的判断方式,即使是同样的一句话,而且当中每个字都一样,但在不同的App中,它们也可能被当作不同的意思来看待。


首先我们得建立自己的App,这里有Create new App跟Import new App两种方式来建立,Create new App是从头到尾自己建立,Import new App则是将过去自己或他人建好的App读取入自己的LUIS中来使用。


假设要做一个简单的点餐服务,选择Create new App,开始建立自己的语意模型,当中Name的栏位表示要给这个App的名称,由於要做一个点餐服务,所以在这里输入order。Culture表示这个App要使用的语言,选择不同的语言可以辨识不同语言的语意,但因为Chinese目前只支援简体中文,繁体中文可能无法完全辨识正确,这里选择使用English。Description为描述这个App,可以自行决定是否输入,输入完成後,如图一。



图一 : 建立新的App
图一 : 建立新的App

在将App的基本资料都输入完後,点选Done,便建立好一个新的App,并且网站会自动进入到这个App中Intents的页面。


在开始定义LUIS的语意前,得先知道几个常用词


1.Intent: 各个句子都有它们所代表的意图,在语意分析中我们大多将句子的意图称之为Intent,像是「你好」、「嗨」、「很高兴见到你」都是为了打招呼用,我们就可以把这些句子,都定义为叫做「打招呼」的Intent。


2.Utterance: 在「打招呼」的Intent中,包含着「你好」、「嗨」、「很高兴见到你」这些语句,我们便把Intent中的这些语句称之为Utterance。


3.Entity: 在「他昨天前往台北」、「他今天前往台中」、「他前天前往台南」这些Utterance都是「某个时间前往某地」的Intent,而昨天、今天、前天,这些词都代表着「时间」,台北、台中、台南,这些词都代表着「地点」,我们将「时间」、「地点」这些句子中的关键词,称之为Entity。所以「某个时间前往某地」这个Intent,包含「时间」、「地点」这两个Entity。


建立Entity

为了让Intent的辨识能力更加强大,我们这里先建立Entities,再来建立Intents。首先,在左边App Asset的选单中,点选Entities,进到Entities的页面,如图二。



图二 : Entities页面
图二 : Entities页面

在点餐服务的句子中,需要使用到但是结果可能因人而异的词语有「餐点名称」、「数量」,由於定义数量的Entity,在LUIS里面已经有内建好的可以使用,所以我们这里只建立餐点名称的Entity。点选Create new entity,开始建立个人entity,Entity name叫做Menu,Entity type选Simple,最後点选Done建立entity,如下图三。



图三 : 建立Entity
图三 : 建立Entity

假设点餐服务的商品有薯条、汉堡、炸机、可乐、苏打,所以我们在Roles的Create new role中输入French fries, Burger, Fried chicken, Cola, Soda,将这些餐点名称定义到Menu这个Entity中,便定义好这个Entity,如图四。



图四 : 代表餐点名称的Entity: Menu
图四 : 代表餐点名称的Entity: Menu

建立Intent

在点餐服务中,我们会需要去点单、买单,所以会分别建立「点单」、「买单」的Intent。首先建立代表「点单」意图的Intent,在Intents页面中我们点选Create new intent,在Intent name中输入Order_Meal,点选Done建立Intent。


点餐的句子,可能会有「Give me one burger」、「I’ll have two cola」、「I would like three french fries」、「Can I have five fried chicken」、「I would like to order ten soda」等,所以我们要在Utterance中加入这些句子。


在Utterance中,one, two, three, five, ten这些词,都有数量的意思在,我们用滑鼠点选Utterance中的这些词,便可以加入Entity,这里我们要选择代表「数量」的Entity,在前面有提到,LUIS中有内建跟数量相关的Entity,所以这里要选择Add a prebuilt entity,如图五,看到许多LUIS已内建好的Entity,选择「number」这个Entity,之後one, two, three, five, ten这些词就算替换成其他数字,LUIS一样都能够了解语意。



图五 : 加入LUIS内建的Entity
图五 : 加入LUIS内建的Entity

而Utterance中burger, cola, french fries, fried chicken, soda这些词,都是餐点名称,用滑鼠点选Utterance中的这些词,找到前面建立的「Menu」这个Entity并选择,如图六。



图六 : 加入自己建立的Entity
图六 : 加入自己建立的Entity

将「Menu」、「number」这两个Entity都加入後,我们便定义完成Order_Meal这个意图是去点单的Intent,如图七。



图七 : 点单Intent: Order_Meal
图七 : 点单Intent: Order_Meal

意图是「买单」的Intent,作法跟「点单」的Intent类似,点选Create new intent,在Intent name中输入Pay_Bill,点选Done建立Intent。在Utterance中加入「How much」、「May I have the check」、「Can we have the bill」、「Check, please」、「How much is the check」这些拥有买单语意的句子,由於这里不需要用到Entity,所以我们加入好Utterance後,就已建立完Pay_Bill这个代表「买单」的Intent,如图八。



图八 : 买单Intent: Pay_Bill
图八 : 买单Intent: Pay_Bill

测试LUIS App

先点选画面右上角的Train,等training完後,点选画面右上角的Test,出现一个panel,能够输入要测试的语句,并辨识出语句的语意,如图九。



图九 : 测试LUIS语意识别功能的panel
图九 : 测试LUIS语意识别功能的panel

这里我们测试「Can I have eight burger」,LUIS辨识完这句话的Intent是Order_Meal,Entities中number为eight,而Menu为burger,辨识的结果正确,如图十。



图十 : 测试LUIS语意辨识结果-1
图十 : 测试LUIS语意辨识结果-1

接着我们测试「May I have the check」,LUIS辨识完这句话的Intent是Pay_Bill,没有Entities,辨识的结果正确,如图十一。



图十一 : 测试LUIS语意辨识结果-2
图十一 : 测试LUIS语意辨识结果-2

在测试完两个语句後,发现结果都正确。这里需要注意一下,每次有地方做完修改,都要记得去Train,再去测试或是使用,不然语意辨识完的结果可能会错误。


结论

本文只提到LUIS常用的功能,若想建立能更精确分析语句的语意识别程式,可以更深入研究LUIS,并使用其它的功能,像是Pattern, Phrase等,来加强自己程式的辨识准确率,让它能应对更多种情境、更复杂的句子。还有许多类似LUIS的语意识别服务可以使用,像是Google的Dialogflow、Facebook的wit.ai,都有各自的优劣,大家可以根据各自的需求,来决定要用哪款,实作适合自己的语意识别程式。


建立完个人的语意识别APP後,也可以配合其它的程式、API,来扩充自己APP的应用。由於LUIS只提供语意识别功能,虽然能让程式辨识文字的语意,但不会去做其它动作,所以常常需要搭配其它的程式或服务,才能不只是了解语言,也能做出相对的回应。像是配合Microsoft Azure上的语音API、Bot等服务,让程式能透过语音输入,并且判断使用者的话语,决定要作出什麽相对的回覆,最後还可以搭配LINE, Facebook这些社群软体,就可以完成自己独一无二的聊天机器人。


(本文作者林承毅任职於凌群电脑)


叁考文献


[1] https://www.luis.ai/


[2] https://docs.microsoft.com/zh-tw/azure/cognitive-services/luis/


[3] https://kknews.cc/zh-tw/tech/zm4zang.html


[4] https://docs.microsoft.com/zh-tw/azure/cognitive-services/luis/what-is-luis


[5]https://blogs.msdn.microsoft.com/microsoft_student_partners_in_taiwan/2017/10/26/%E3%80%90luis%E3%80%91%E5%9C%A8-10-%E5%88%86%E9%90%98%E5%85%A7%E5%89%B5%E9%80%A0%E6%82%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E5%80%8B-luis-app/


[6] https://blog.alantsai.net/posts/2018/07/bot-framework-with-ai-cognitive-service-17-text-semantic-recognition-service-luis-concept-intro#WizKMOutline_1532178669350572


[7] https://blog.alantsai.net/posts/2018/07/bot-framework-with-ai-cognitive-service-18-create-luis-app-from-theory-to-practise


相关文章
由自驾车迈向智慧交通系统的进展
延伸工业感测器价值链 须藉系统整合深入应用
机器视觉走入AI世代 後势发展深具潜力
EDA跨入云端环境新时代
人工智慧正在改变EDA的设计流程
comments powered by Disqus
相关讨论
  相关新品
EM500EV 测试/开发板
原厂/品牌:集博
供应商:集博
產品類別:IDE
  相关新闻
» 看好5G、AI领域新应用 软硬体大厂整合数位双生核心
» 台湾微软AI研发中心扩建 将打造一级AI研发聚落
» 工业局跨部会合作举办台湾创新技术博览会
» 跨部会三合一展览现产业加乘效益 让世界看见台科技创新能量
» 台湾微软三箭齐发 打造半导体产业未来工厂
  相关产品
» Microsoft 365以AI为企业资安全方位助力
» 经济部推动「高中职生AI扎根系列活动」 偕同微软与Google培育高中职生
» TYAN发布伺服器及主机板支援第二代Intel Xeon
» 意法半导体推出采用Linux发行版的STM32MP1微处理器
» NVIDIA、微软、Epic Games、Unity及各大游戏开发商於GDC 2019启动次世代游戏

AD


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2019 远播信息股份有限公司版权所有 Powered by O3
地址:台北市中山北路三段29号11楼 / 电话 (02)2585-5526 / E-Mail: webmaster@ctimes.com.tw