产生对话式用户接口的方法及系统与流程

文档序号:17718920发布日期:2019-05-22 02:01阅读:176来源:国知局
产生对话式用户接口的方法及系统与流程

本发明是有关于一种对话式用户接口,且特别是有关于一种从网页自动产生对话式用户接口的方法与系统。



背景技术:

在网络蓬勃发展的现在,企业或服务提供商可通过网页或是手机应用程序(app)发送信息并且与用户互动。当用户面对像是网页的图形化接口时,需在页面中自行探索以寻找需要的信息。而随着计算机科技快速发展,为了提供更佳的使用者体验,可使用虚拟助理(virtualassistant)作为沟通管道,协助使用者快速从网页取得想要的信息,例如查询住宿数据、查询班机表、订购电影票、买卖股票、网络购物、投资理财等等。虚拟助理与用户为实时互动模式,例如是一个对话式用户接口(conversationaluserinterface,cui),让使用者只需通过输入自然对话语言,便能得到需要的结果。然而,要开发一项服务专属的对话式用户接口,需要花费不少的人力与时间,且逐一制作,而每当有新的服务或网页出现时,设计人员必须花时间了解新服务或网页系统架构逻辑,才能完成对应的对话式用户接口。因此,如何快速产生对话式用户接口,乃目前业界所致力课题之一。



技术实现要素:

本发明是有关于一种产生对话式用户接口的方法与系统,能够从输入的网页自动产生所需的对话式用户接口,大幅减少开发一个新的对话式用户接口所需的时间。

根据本发明的一实施例,提出一种产生对话式用户接口的方法,经由处理器执行下列步骤,方法包括:处理器撷取网页的内容;处理器取得网页内的第一窗体;处理器根据第一窗体取得多个第一字段;处理器根据多个第一字段以建立第一填充模型;以及处理器产生对话式用户接口,其中处理器使用第一填充模型以判断多个第一字段所需数据,并根据输入对话数据以取得可填入对应多个第一字段的数据以供填入多个第一字段。

根据本发明的另一实施例,提出一种产生对话式用户接口的系统,包括一处理器以执行以下各模块:网页撷取模块、网页分析模块、以及模型建立模块。网页撷取模块用以撷取网页的内容。网页分析模块用以取得网页内的第一窗体,并且根据第一窗体取得多个第一字段。模型建立模块用以根据多个第一字段以建立第一填充模型,并且产生对话式用户接口。其中模型建立模块使用第一填充模型以判断多个第一字段所需数据,并根据输入对话数据以取得可填入对应多个第一字段的数据以供填入多个第一字段。

根据本发明的又另一实施例,提出一种产生对话式用户接口的系统,该系统包括处理器以及储存装置,处理器能够执行多个计算机程序模块,储存装置储存可由处理器执行的计算机程序模块,其中该计算机程序模块在由处理器执行时使处理器进行以下操作:撷取网页的内容;取得网页内的第一窗体;根据第一窗体取得多个第一字段;根据多个第一字段以建立第一填充模型;以及产生对话式用户接口。其中处理器使用第一填充模型以判断多个第一字段所需数据,并根据输入对话数据以取得可填入对应多个第一字段的数据以供填入多个第一字段。

为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附图式详细说明如下:

【附图说明】

图1绘示依照本发明第一实施例的产生对话式用户接口的方法流程图。

图2绘示依照本发明第一实施例的产生对话式用户接口的系统示意图。

图3绘示依照本发明第一实施例从网页产生对话式用户接口的方法细部流程图。

图4绘示依照本发明第一实施例的更新任务数据文件流程图。

图5绘示依照本发明第一实施例的对话式用户接口操作逻辑流程图。

图6绘示依照本发明第一实施例根据填充模型填入字段的流程图。

【符号说明】

s101、s103、s105、s107、s109:步骤

20:产生对话式用户接口的系统

200:处理器

201:储存装置

202:网页撷取模块

204:网页分析模块

206:模型建立模块

301、302、311、312、313、320、602、603、611、621、622、

623、702、703、704、705、706、711、801、802、803、804、

805、806:步骤

314:填充模型

500:网页

501:窗体页面

502:信息页面

510:历史数据

601:输入窗体页面

612:输出intent与slot

700:任务数据文件

701、707:使用者输入内容

712:输出消息告知用户任务已完成

【具体实施方式】

本发明提出一种可自动将网页转换为对话式用户接口的方法与系统。本发明所指的对话式用户接口例如是网页中跳出的对话窗口,或是聊天机器人(chatbot),聊天机器人可建构于实时通信软件当中,例如facebookmessenger、whatsapp、wechat、line、telegram、skype等等的实时通信平台,亦可将本发明嵌入于app软件或网站中。企业通过聊天机器人可提供全年无休24小时的实时客户服务,而使用者也可通过聊天机器人快速解决问题。

图1绘示依照本发明第一实施例的产生对话式用户接口的方法流程图,如图1所示的方法可以经由处理器(processor)执行,处理器可以是一般的中央处理器、微处理器等,也可以是设置于计算机、移动装置、云端服务器等中的处理器。方法包括以下步骤。步骤s101:撷取网页的内容。步骤s103:取得网页内的第一窗体(form),第一窗体例如为网页中需要用户输入数据的处。步骤s105:根据第一窗体取得多个第一字段(slot)。步骤s107:根据多个第一字段以建立第一填充模型(slotfillingmodel),据以产生对话式用户接口,第一填充模型例如可定义多个第一字段所需数据。其中各步骤可由处理器执行,处理器使用第一填充模型以判断多个第一字段所需数据,并根据输入对话数据以取得可填入对应多个第一字段的数据以供填入多个第一字段。

如图1所示的方法可以实作为一软件程序,此软件程序可储存于非瞬时计算机可读取媒体(non-transitorycomputerreadablemedium),例如硬盘、光盘、随身碟、内存等程序储存装置,当处理器从非瞬时计算机可读取媒体加载此软件程序时,可执行如图1的方法流程,将一个网页转换为一个对话式用户接口。所产生的对话式用户接口可以使用第一填充模型,借由与用户对话,根据用户的输入对话数据填入第一字段所需数据,进而完成用户欲执行的工作。由于图1所示的方法可由网页自动产生对话式用户接口,因此当企业有新的服务上线时,只需提供对应的网页,便可借由本发明所提出的方法快速产生所需的对话式用户接口,可节省大量人力与时间,并可避免人工的需求理解及程序代码撰写,能够大幅降低对话式用户接口的开发成本,并且提升实际应用的可行性。

在一实施例中,产生对话式用户接口的系统可包括处理器及程序储存装置,处理器能够执行一或多个计算机可执行指令,程序储存装置储存可由处理器执行的计算机程序模块,其中该计算机程序模块在由处理器执行时使处理器进行如图1所示各步骤的操作。

图2绘示依照本发明第一实施例的产生对话式用户接口的系统示意图。产生对话式用户接口的系统20包括处理器200和储存装置201,储存装置201储存有下列各模块,由处理器200执行。网页撷取模块202、网页分析模块204、以及模型建立模块206。网页撷取模块202可用以撷取网页的内容。网页分析模块204可用以取得网页内的第一窗体,并且根据第一窗体取得多个第一字段。模型建立模块206可用以根据多个第一字段以建立第一填充模型,并且产生对话式用户接口。其中模型建立模块206使用第一填充模型以判断多个第一字段所需数据,并根据输入对话数据以取得可填入对应多个第一字段的数据以供填入多个第一字段。举例来说,模型建立模块206可以使用第一填充模型分析输入对话数据的文字以取得至少一字词,并且比对至少一字词与各个第一字段的规则(如类型、属性、及/或选项),以供填入多个第一字段。

图2所示的产生对话式用户接口的系统20为可用以执行如图1所示方法的一种实施例。在另一实施例中,网页撷取模块202、网页分析模块204、以及模型建立模块206可以个别被实施为软件单元或硬件单元,亦可以部分模块合并以软件实施、部分模块合并以硬件实施。以软件实施的模块,可被处理器加载而执行对应的功能。以硬件实施的模块,例如可被实施为微控制单元(microcontroller)、微处理器(microprocessor)、数字信号处理器(digitalsignalprocessor)、特殊应用集成电路(applicationspecificintegratedcircuit,asic)、数字逻辑电路、或现场可程序逻辑门阵列(fieldprogrammablegatearray,fpga)。

图3绘示依照本发明第一实施例从网页产生对话式用户接口的方法细部流程图。输入的数据是网页500,首先执行步骤301网页撷取,步骤301例如对应图1的步骤s101,可由网页撷取模块202执行,网页撷取模块202的一种实施例为网络爬虫(crawler)。接着执行步骤302网页分类,将撷取的网页500分类为窗体页面501以及信息页面502。窗体页面501为任务导向类,通常包括一些需要用户填入的数据,应用如订票及订房;信息页面502为信息查询类,通常包括文句说明信息,应用如条文规范及常见问题回答(faq)。对于信息页面502,可执行步骤320抽取数据,以找出关键词并进行数据索引标注。

接着针对任务导向类的处理流程进行说明。对于窗体页面501,可先执行步骤311取得窗体结构,此处所述的窗体例如对应于图1步骤s103所述的第一窗体。在一实施例中,步骤311可解析(parse)描述网页500的结构化语言,以抽取出网页中的窗体(form)及其需要的输入(input)。描述网页500的结构化语言例如是html,步骤311可从html档案中寻找关键词form与input,而找出窗体的位置,取得窗体名称以及输入名称。描述网页500的结构化语言亦可以是例如xml或是json等等具有结构特性、并可从中抽取出窗体信息的文件格式。在本说明书中以下将使用html语言作为范例说明,然而本发明并不仅限于解析html语言。

在一实施例中,步骤311还可以包括根据窗体(例如对应于图1步骤s105的第一窗体)取得对应于各字段(例如对应于图1步骤s105的第一字段)的规则,此规则至少包括以下其中之一:类型(type)、属性(attribute)、以及选项(option)。该多个规则可代表用户输入数据需符合的格式、类型、数值范围、或文字样式等等。步骤311例如可从html档案中寻找对应于各输入的关键词type、option、max、min等等,以取得各字段的规则。在一实施例中,网页分析模块204可根据网页分析各字段以判断其对应于类型、属性、以及选项的至少其中之一,根据分析结果以建立各字段的规则,举例而言,各字段的规则可以记载输入数据符合其类型的条件、符合其属性的条件、及/或符合其选项的条件。

根据步骤311取得的窗体,可接着执行步骤312定义slot与intent,其中slot代表对应于窗体的多个字段,intent代表使用者意图,用户意图可对应于窗体的功能(订票、订房)。举例而言,步骤312可以使用取得的窗体名称(formtitle)作为intent,以及使用窗体的输入部分作为slot。

以下使用一实际范例说明步骤311以及步骤312的执行结果,此二步骤例如可由图2所示的网页分析模块204执行。此处所使用范例为电影订票网页,经过步骤311解析网页html之后可取得窗体,此窗体可表示为以下表一所示的数据结构。

表一

在一实施例中,步骤311亦可将从网页取得的窗体转为另一种具结构性的数据格式,例如angularschemaform,以另一种形式描述如同表一的记载内容。

根据表一,步骤312可以定义窗体的功能(对应于窗体名称)为「订票」,窗体的多个字段(对应于输入名称)包括「电子邮件」、「电影名称」、「戏院名称」、「日期」、「放映时间」、以及「人数」。

在一实施例中,各字段的规则还可包括语法规则,语法规则可用以表示输入数据的句法规则。举例而言,语法规则可使用正规表示式(regularexpression),但并不局限于此,亦可使用其他能够表达句法规则的方式。在一实施例中,可以根据类型、属性、选项的至少其中之一,建立语法规则。例如当输入数据符合其属性的条件是数值范围1到10,可以使用正规表示式^[1-10]$,又例如当符合类型的条件是日期,可以建立对应于日期格式的正规表示式。

在一实施例中,图2所示的产生对话式用户接口的系统20还可包括语法训练模块,语法训练模块可由软件或硬件实施,例如可由处理器实施。语法训练模块可以借由历史数据(logdata)训练以建立各字段的规则,所使用的历史数据为相关于窗体的存取。如图3所示,步骤313训练字段填充规则可以读入历史数据510,以机器学习(例如神经网络)的方式建立规则。沿续前述的电影订票网页范例,历史数据510可以是过去的多笔订票纪录,从历史数据510可以得到在「电子邮件」这个字段曾经填入的多个字符串,步骤313可借由机器学习,以建立该多个字符串具有的句法规则,而得到「电子邮件」字段的规则,例如可包括正规表示式。

各字段的规则包括有语法规则的范例可见以下表二,相较于表一,表二再增加了一个语法规则的字段。

表二

于步骤312定义intent与slot以及步骤313训练字段填充规则之后,如图2所示的模型建立模块206便可据以建立填充模型314。而借由从窗体页面501建立的填充模型314,以及从信息页面502由步骤320建立的数据索引,即可完成对应于网页500的对话机器人,可与使用者进行对话互动。

需说明的是,步骤313训练字段填充规则可为选择性执行。即使没有历史数据510训练,亦可直接从步骤312定义好的slot而建立填充模型314。例如在一些使用情境中,存取窗体的历史数据510具有隐私性无法提供,或是在企业的新服务上线时,尚未具有足够数量的历史数据510。

在一实施例中,可以根据各字段的规则当中的类型、属性、选项的至少其中之一,制定一判断准则,以决定对应的字段是否需要执行步骤313。举例而言,若是类型为字符串且选项有值(例如表二的「电影名称」),则可以直接使用选项的值作为比对依据,而不执行步骤313。若是类型为数字且已有属性限制(例如表二的「人数」),则可以直接从属性转换为语法规则,不需执行步骤313。此处所述的判断准则仅为示例性说明,并非用以限定本发明。

各个字段的规则可能有一部分是会更新的内容,一部分则是固定的内容。参考表二的电影订票范例,「电子邮件」以及「人数」字段的条件为固定的,然而「电影名称」及「日期」的条件则可能会每天更动。一种解决方式为,可对于每天更新的网页500,重新执行一次如图3或图1的流程,以产生对应于更新网页的对话式用户接口。然而,此方式需要每天重新产生新的对话式用户接口程序代码,对于企业可能有管理不便的问题,也不易对于产生的对话式用户接口进一步客制化修改。

因此,在一实施例中,图2所示的产生对话式用户接口的系统20还可包括数据更新模块,数据更新模块可由软件单元或硬件单元实施,例如可由处理器实施。数据更新模块可以于排程时间(例如每天的固定时间、或每星期三、或是每个月的1日)重新撷取网页,找出窗体内哪些部分是会持续更新的,据以决定规则(包括类型、属性、选项、语法规则)的更新部分,并将规则的更新部分储存为数据文件。如此一来,即使当网页每天持续更新,本发明所提出的方法仅需更新此数据文件,并读取这个数据文件,便可无需重新执行如图1或图3产生对话式用户接口的流程。此数据文件并无特定格式限制,亦无数量限制,例如可具有2个或多个数据文件,分别对应不同的字段。为了便于说明,在以下的例子中,将以任务数据文件作为此数据文件的一种范例。

图4绘示依照本发明第一实施例的更新任务数据文件流程图。输入的数据为输入窗体页面601,步骤602从原始网页抽取form与input,类似于图3的步骤311,此处不再重复赘述。步骤603可判断此时要建立intent与slot或是要更新任务数据文件,若是要建立intent与slot,则执行步骤611定义intent与slot,产生数据输出intent与slot612,步骤611类似于图3的步骤312。而若是步骤603决定要更新任务数据文件,则执行步骤621由窗体中撷取需要实时更新部分之内容(例如「电影名称」的「选项」)。接着执行步骤622比对新撷取之内容与目前任务数据文件中的内容是否一致,若是不相同,则执行步骤623更新任务数据文件,将新撷取到网页的内容写入任务数据文件;若是相同,则可跳过步骤623。借由如图4所示的方法,可以定义出窗体的intent与slot,并且可以建立对应于网页更新数据的任务数据文件。

图5绘示依照本发明第一实施例的对话式用户接口操作逻辑流程图。来源输入数据为用户输入内容701,使用者输入内容701可以是自然语言对话数据,例如「您好」、「我今天想看电影」、「我下午3点想去戏院q看电影b」等等。步骤702读取工作slots1、s2、…、sn,例如表二中的电子邮件、电影名称、戏院名称、日期、放映时间、人数。步骤703利用已建立的填充模型,填入多个字段所需的数据,步骤703可称为slotfilling。在一实施例中,由于各个字段有对应的规则,因此执行步骤703时,可以借由比对各字段的规则,找出目前用户输入的对话数据是要填到哪一个字段。在一实施例中,步骤703可由模型建立模块206读入任务数据文件700,进行任务数据文件比对以进行各字段的内容填充。关于步骤703的详细叙述可参考图6。

接着于步骤704判断是否所有的slot都已填满,若尚未填满(例如目前仅知道日期),则于步骤705找到未填的slot,假设为si(例如为电影名称),步骤706输出消息指引用户输入si相关信息,于输出消息中亦可包括字段si对应的选项(例如可输出对话「请问您想看哪一部电影?(电影a/电影b/电影c)」)。接收使用者输入内容707之后,再回到步骤703执行slotfilling。在一实施例中,步骤705可以对于要填入的多个字段排定优先权顺序,从目前缺少的字段中,选择优先权最高的字段,优先对使用者提问。

当步骤704判断所有的slot都已填满,则进入步骤711执行任务。以电影订票网页为例,步骤711可将收集到的电影订票信息,传送至订票网页对应的网站,以完成订票动作。步骤711执行任务可以有多种实作方式,例如可以传送请求至网站、根据字段的数据和网页呼叫(或执行)网站的应用程序编程接口(applicationprogramminginterface,api)、以使用窗体传送或呼叫服务(service)的方式送至后端服务器、或是任何可将已填满的字段内容送至后端服务器的传输手段。最后可输出告知用户任务已完成的消息712,消息712可以是文字消息(例如「以下是您的订票信息……」),亦可以是将网站回传的消息撷取下来后(例如包括文字、图片、超链接)传送给使用者。

在一实施例中,于取得可填入字段的数据之后,在步骤711执行任务之前,可以显示一确认消息至显示设备,例如将目前填入各字段的数据以完整的语句呈现于手机屏幕或计算机屏幕,让用户确认即将要执行的任务是否正确,即确认填入各字段的数据是否正确。若是不正确,则可重新执行步骤702~步骤706以重新填入字段。而于确认消息被确认正确后,可执行步骤711,如传送请求至网站,或产生对应的api以传送到网站。

在一实施例中,步骤703使用的填充模型,是用以分析输入对话数据的文字以取得至少一字词,并且比对从输入对话数据所取得的一或多个字词与各字段的规则,以供填入字段。相关流程图可参考图6,其绘示依照本发明第一实施例根据填充模型填入字段内容的流程图。

步骤801接收用户的自然语言输入。步骤802可对用户输入的自然语言执行断词与词性标注,步骤803执行内容正规化。举例而言,当使用者输入「我要订今天电影票两张」,步骤802可取得多个字词「我」、「要」、「订」、「今天」、「电影票」、「两」、「张」,步骤803正规化可将「今天」转为「2017-08-23」,将「两」转为「2」。

步骤804可以使用任务数据文件比对,计算最小编辑距离,抽取与选项内容相符字词,以填入slot。在上述的例子中,可以根据选项比对出2017-08-23,而填入日期字段。另外,使用者可能输入「我想看电影xxx」,使用者输入的电影名称xxx可能由于翻译名称、输入错误、记错等等原因,而无法匹配任何一个可能的选项。此时可借由计算最小编辑距离,决定可能选项中与xxx最接近的一者,而填入电影名称字段。在没有使用任务数据文件的实施例中,步骤804可以略过以任务数据文件进行字段内容填充的步骤。

步骤805可以根据各字段的规则以及从对话数据取得的字词,进行语法规则比对、类型比对、属性比对、选项比对,以填入slot。在上述的例子中,可以根据类型与属性比对出用户输入的「2」应填入「人数」字段。若是用户有输入电子邮件地址,步骤805亦可借由语法规则比对而填入「电子邮件」字段。将可填入的数据填入对应字段之后,执行步骤806语意框架(semanticframe)输出,接着便进入图5所示的步骤704。

上述的多个实施例为网页内有一个窗体的情形,而有些网页可能包含多于两个窗体,例如旅行业者网页可能有国内旅游窗体与国外旅游窗体,租屋网页可能有房客找房窗体以及房东出租窗体。在一实施例中,如图2所示的网页分析模块204可用以取得网页内的第一窗体以及第二窗体,并且取得对应于第一窗体的第一功能与多个第一字段,以及取得对应于第二窗体的第二功能与多个第二字段,窗体对应的功能例如可从窗体名称取得。模型建立模块206可根据多个第一字段建立第一填充模型,以及根据多个第二字段建立第二填充模型。建立填充模型的方法可参考图3。

模型建立模块206所产生的对话式用户接口可用以决定用户意图,举例而言,对话式用户接口可于屏幕画面显示多个按钮让用户选择,或者可借由包含多个选项的提问方式让使用者回答。接着可根据取得的使用者意图,决定使用哪一个对应的窗体。例如当用户意图对应于第一功能时,模型建立模块206使用第一填充模型,根据输入对话数据以取得可填入对应多个第一字段的数据以供填入多个第一字段;当用户意图对应于第二功能时,模型建立模块206使用第二填充模型,根据输入对话数据以取得可填入对应多个第二字段的数据以供填入多个第二字段。

根据上述多个实施例的产生对话式用户接口的方法与系统,可以从一个输入的网页,自动快速产生对话式用户接口,能够减少程序开发所需的人力以及时间成本。而借由解析网页可取得各个字段的规则,因而能够在读取用户输入的对话数据时,使各个字段有比对的依据,而能够将数据填入适当的字段。此外,更可以通过存取网页的历史数据训练而建立各字段的规则。本发明同时亦考虑到字段规则可能会随时间变化的情形,可借由重新撷取网页而将需要更新的部分储存于数据文件,如此能够避免重复产生新的对话用户界面,增加管理的便利性并提高使用弹性。而本发明亦能够处理具有多个窗体的网页,可先判断使用者意图,据以决定使用的填充模型。

综上所述,虽然本发明已以实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视后附的申请专利范围所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1