CN116762078A - 用于聊天机器人会话的实体解析 - Google Patents

用于聊天机器人会话的实体解析 Download PDF

Info

Publication number
CN116762078A
CN116762078A CN202180070225.2A CN202180070225A CN116762078A CN 116762078 A CN116762078 A CN 116762078A CN 202180070225 A CN202180070225 A CN 202180070225A CN 116762078 A CN116762078 A CN 116762078A
Authority
CN
China
Prior art keywords
entity
task
configuration
user
intent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180070225.2A
Other languages
English (en)
Inventor
杨欣怡
谢天
熊蔡明
刘文昊
王欢
瞿金
S·兰卡
海楚红
叶旭刚
吴飞鸿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shuo Power Co
Original Assignee
Shuo Power Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shuo Power Co filed Critical Shuo Power Co
Publication of CN116762078A publication Critical patent/CN116762078A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

***使用被定制用于执行任务集合的聊天机器人来执行与用户的会话。***可以是允许针对每个租户定制聊天机器人的多租户***。该***接收将任务映射到实体类型的任务配置以及指定用于确定特定实体类型的实体的方法的实体配置。***接收用户话语并且使用意图检测模型,例如神经网络,来确定用户的意图。意图表示用户正在请求的任务。***确定与任务相对应的一个或更多个实体。***基于所确定的意图和实体来执行任务,并基于任务来执行与用户的会话。

Description

用于聊天机器人会话的实体解析
技术领域
本公开总体上涉及在线***中的聊天机器人会话,并且具体地涉及用于在线***中的聊天机器人会话的实体解析。
背景技术
在线***通常利用聊天机器人(chatbot)与用户交互。聊天机器人为在线***的用户提供自动化的会话(conversation)界面。聊天机器人允许用户以自然方式(例如,使用语音和自然语言)与在线***交互。例如,用户能够请求在线***使用聊天机器人来执行某些任务。聊天机器人也被称为会话助理、人工智能(AI)助理、智能虚拟助理、虚拟代理等。
基于人工智能的聊天机器人可以接收可以被提供作为语音信号的用户话语并且使用自动化语音识别技术来识别用户话语中的句子。聊天机器人可以使用人工智能技术来分析自然语言句子,人工智能技术包括基于机器学习的模型,例如,诸如卷积神经网络、递归神经网络或多层感知器的人工神经网络。
为了执行与用户的会话,***可能需要确定涉及从用户话语中提取的可以被***用来执行特定任务的各个值的实体。例如,如果用户正在请求描述记录的信息,***可能需要分析用户话语以确定需要访问哪个记录。***可基于由用户提及的表示诸如用户姓名、与记录相关联的时间戳、与记录相关联的标识符等的值的实体来识别记录。这些值的不正确确定可能导致***向用户提供不正确的记录。
附图说明
图1是根据实施例的用于执行聊天机器人会话的***环境100的框图。
图2示出了根据实施例的任务配置和实体配置的示例。
图3是根据实施例的会话引擎的***架构的框图。
图4是示出了根据实施例的识别实体的过程的流程图。
图5是示出了根据实施例的从实体池中选择实体的过程的流程图。
图6是示出了根据一个实施例的典型计算机***的功能视图的框图。
附图仅出于示例的目的描绘了各个实施例。本领域技术人员将从以下论述中容易地认识到,在不偏离在本文中描述的实施例的原理的情况下,可以采用在本文中所示出的结构和方法的替代性实施例。
这些图使用相似的参考数字来标识相似的元件。参考数字之后的字母,诸如“115a”,表示该文本具体指具有该特定参考数字的元件。文本中没有后续字母的参考数字,诸如,“115”,是指图中具有该参考数字的任何或所有元件。
具体实施方式
在线***允许用户使用定制的聊天机器人来执行任务。聊天机器人可以被定制为用于让用户执行特定的任务集合。例如,在线***可以是托管多个租户的数据和服务的多租户***。多租户***的每个租户可以表示为用户执行特定任务集合的企业。每个租户可定制聊天机器人以供多租户***执行和由租户的用户使用。在线***通过聊天机器人会话接收用户的话语并且确定每个话语中的意图。对应于话语的意图确定用户请求在线***执行的任务。在线***解析用户话语中的实体以确定用于执行任务的值。在线***在本文中也可被称为***。
***执行用于在用户话语中的实体解析的以下处理。***接收将任务映射到实体类型的任务配置以及将实体类型映射到用于确定每个实体类型的实体的方法的实体配置。任务配置和实体配置定制聊天机器人以在在线***中执行任务集合。***在聊天机器人会话中接收用户话语。用户话语包括自然语言句子。***使用意图检测模型来预测自然语言句子的意图。意图表示用户通过自然语言句子请求的任务。***从任务配置中识别对应于所请求的任务的实体类型。对于每个所识别的实体类型,***通过执行与实体配置中指定的实体类型相对应的方法来确定该实体类型的实体。如果执行任务所需的所有实体被确定,则***执行所请求的任务。***可以在聊天机器人会话中将基于所执行的任务的响应发送给用户。例如,如果用户请求了交易的状态,则***可以通过识别用于唯一地识别交易的一个或更多个实体、访问数据库以检索交易的状态、并且向用户发送响应(向用户通知状态)来执行任务。
***环境
图1是根据实施例的用于执行聊天机器人会话的***环境100的框图。***环境100包括通过客户端设备115与用户通信的在线***120。在线***120包括会话引擎150和数据存储(data store)160。在线***120可包括图1中未示出的其他组件,例如,其他类型的数据存储、外部***接口等。***环境100可以包括图1中未示出的其他元件,例如,网络。在线***120在本文中可被称为***。
在线***120的用户105、110使用客户端设备115与在线***交互。一些用户可以是特权用户,例如,维护和配置在线***120的***管理员105。其他用户110仅使用由在线***提供的功能,例如,以执行由在线***支持的各个任务。
会话引擎150使用聊天机器人来执行与用户110的会话。在线***120允许***管理员105使用聊天机器人配置125来定制聊天机器人。如图1所示,***管理员105可以使用客户端设备115a向在线***120提供聊天机器人配置125。聊天机器人配置配置和定制由会话引擎150使用的聊天机器人。聊天机器人可被定制以允许用户执行特定的任务集合。执行某些类型的交易的企业可定制聊天机器人,以允许用户与在线***120进行会话以执行与交易有关的任务,例如,执行认证、执行交易、检查交易的状态等。
在实施例中,聊天机器人配置125包括任务配置130和实体配置135。任务配置130指定可以由用户使用聊天机器人执行的任务。实体配置135指定描述表示执行任务所需的各个值的实体的信息。例如,为了检查订单的状态,在线***120需要订单id或一个或更多个值来识别订单,例如,下订单的日期、下订单的账户。这些值被称为在会话期间提及的实体。实体配置135指定用于确定实体的值的方法。
图2提供了任务配置130和实体配置135的说明性示例。对于每个任务,任务配置指定与执行任务相关的实体集合。由实体表示的值可以由用户提供,或者可以由会话引擎150确定,例如,通过访问数据存储160或通过调用某些服务(例如,web服务)。例如,如果任务表示检索订单的状态,则与任务相关的实体包括订单ID和订单本身的状态。会话引擎150可以从用户获得订单ID,例如,通过生成请求订单ID的问题或请求可以用于访问订单ID的诸如订单日期的信息。会话引擎150可以从数据存储160访问订单状态,并且向用户提供订单状态信息。
会话引擎150根据配置125执行与用户110的会话。会话引擎150接收用户话语140并基于用户话语执行任务。会话引擎150可以与数据存储160交互以执行任务,例如,访问存储在数据存储160中的信息或更新存储在数据存储160中的信息。会话引擎150可以生成***响应145并提供给用户。可以向用户发送***响应145以请求执行任务所需的附加信息。***响应145可以通知用户任务被完成或向用户提供所请求的信息。
在一些实施例中,在线***120是允许多个租户使用该***的多租户***,每个租户表示用户组。术语“租户”是指作为多租户***的客户的组织或企业。作为示例,租户可以是雇用了使用多租户***来管理其销售过程的销售人员的公司。术语“租户”可以指作为多租户***的客户的整个组织的用户的集合或者组织的用户的子集。因此,实施例允许租户专用的聊天机器人,该租户专用的聊天机器人可以被定制用于用户集合(例如,该组织的用户的整个集合、该组织内的特定用户组或该组织内的个别用户)。多租户***存储多个租户的数据并允许租户共享在该多租户***上运行的应用。多租户***可以运行租户被允许执行的各个应用。
数据存储160为在线***120的用户存储数据。多租户***可将多个租户的数据存储在同一物理数据存储(例如,数据存储160)中,除了跨租户强制执行数据的逻辑分离之外。因此,一个租户无权访问另一租户的数据,除非这样的数据被明确地共享。数据存储160可以被实施为存储一个或更多个表的关系型数据库。
图1中所示的在线***120和客户端设备115表示计算设备。计算设备可以是执行例如可兼容MicrosoftTM WindowsTM的操作***(OS)、AppleTM OS X和/或Linux OS的常规计算机***。计算设备还可以是诸如个人数字助理(PDA)、移动电话、视频游戏***等的设备。
客户端设备115可以经由网络(图1中未示出)与在线***120交互。网络使用诸如传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、互联网控制消息协议(ICMP)等的联网协议。可以使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式表示在网络上交换的数据。
图2示出了根据实施例的用于定制聊天机器人的任务配置和实体配置的示例。在实施例中,在线***120提供针对***管理员的用户界面,以提供可以被存储在存储任务配置和实体配置的配置文件中的信息。如图2所示,可指定多个任务配置130,每个任务配置文件用于为任务集合定制的特定聊天机器人。例如,任务配置130a指定任务T1和T2的配置,而任务配置130b指定任务T2和T3的配置。
除其他细节之外,每个任务配置指定与执行该任务相关的实体。例如,如在任务配置130a中指定的,任务T1使用实体E1和E2,而任务T2使用实体E2和E3。两个不同配置文件中的任务的规范可以是不同的。因此,在两个不同的任务配置中,不同的实体可以被指定为与相同的任务相关联。例如,任务配置130b指定任务T2使用实体E3和E4,而配置130b指定任务T2使用实体E2和E3。
实体配置135指定用于不同实体类型的方法。例如,实体配置135指定实体类型E1、E2、E3和E4。而且,实体配置135指定了用于处理实体类型E1的方法M1和M2、用于处理实体类型E2的方法M3、用于处理实体类型E3的方法M4和M5、以及用于处理实体类型E4的方法M6。在实施例中,独立于任务配置来指定实体配置。因此,实体配置将独立于与由聊天机器人使用的任务配置而被使用。在其他实施例中,实体配置可以特定于任务配置。因而,每当聊天机器人正在使用任务配置时,就使用相应的实体配置。在实施例中,***可以使用特定于任务的实体配置和任务独立配置的组合。例如,一些实体类型可以独立于任务配置被指定,并且一些实体类型可以被指定用于特定任务配置。
在实施例中,相同的实体类型可以在独立于任务的实体配置中具有一种配置并且在特定于任务的实体配置中具有另一种配置。特定于任务的实体配置识别针对其指定实体配置的特定任务,例如,特定于任务的实体配置可以为任务T1的实体类型E1指定实体配置。如果聊天机器人正在使用该任务,例如任务T1,则使用特定于任务的实体配置。相同的实体类型可以用于其他任务,例如任务T2和T3。对于使用指定其他任务(诸如任务T2和T3)的任务配置的聊天机器人,使用来自独立于任务的实体配置的实体规范。
以下是指定任务check_order的任务配置的示例。尽管以下示例仅示出了一个任务,但任务配置可以指定任何数量的任务。
任务的配置包括描述、一个或更多个范例、一个或更多个实体类型以及成功标准。范例指定可以由请求该特定任务的用户使用的自然语言句子的示例。实体类型识别与该任务相关的实体。成功标准可以是指定需要执行以成功完成任务的处理的逻辑表达式。处理可以包括需要被执行的其他任务和需要被确定的实体。如果描述任务成功的表达式是对E1和E2执行的OR运算,则如果E1或E2被成功评估,则任务完成。因而,如果OR表达式的子表达式中的任何一个子表达式评估成功,则OR表达式评估成功。如果AND表达式的所有子表达式都评估成功,则AND表达式评估成功,从而指示用户成功地验证了该部分认证。
在线***支持可以在任务配置中指定的实体动作集合。例如,任务配置可以指定实体动作INFO,该实体动作INFO指定在线***提供实体信息。实体动作QUERY指定在线***将基于用户提供的信息来搜索实体。类似地,实体动作INSERT指定在线***将基于用户提供的信息***记录。实体动作DELETE指定在线***将删除基于用户提供的信息识别的记录。实体动作UPDATE指定在线***将更新基于由用户提供的信息识别的记录。类似地,***可以支持其他动作。用户可以例如使用利用编程语言指定的功能或方法来定义实体功能。这些是实体动作的示例。其他实施例可以支持其他实体动作。此外,每个实体动作可以以除了本文所指示的方式之外的方式来定义。
以下是实体配置文件的示例。这是在执行任务(例如,verify_user任务)时使用的任务特定的实体配置。实体配置指定两种实体类型email_address和zip_code。对于每个实体类型,实体配置指定实体的类型的值、与实体相关联的一个或更多个方法、以及确认标志。确认标志指定***是否应当向用户确认为实体确定的值是否正确。例如,会话引擎可以问诸如“你指的是电子邮件地址是[email protected]吗?”的问题。对于实体类型email_address,所指定的类型是“email”,指定单个方法“拼写”,并且确认标志具有值“是”。对于实体类型zip_code,存在四种指定的方法:命名实体识别(ner)、拼写、正则表达式(regex)和模糊(fuzzy)匹配。
在一些实施例中,任务配置指定用户定义的实体功能。用户定义的实体功能可以使用语言(例如,诸如PYTHON之类的编程语言)来指定。例如,以上示例任务配置指定功能funcGetWeather,其检查对应于实体zip_code的邮政编码的天气。功能funcGetWeather可以包括与提供天气信息的web服务交互的指令。功能funcGetWeather可以由会话引擎在与用户的会话期间调用以提供特定邮政编码的天气情况。
在实施例中,实体配置指定“响应”属性,该“响应”属性定义由会话引擎在会话过程中提供给用户的响应。在在线***处理指定“响应”属性的实体后,由会话引擎提供响应。在实施例中,“响应”属性指定包括与实体相关联的值的模板。例如,针对以上示出的示例“zip_code”实体的“响应”属性可以指定funcGetWeather的输出被附加到字符串“当前天气是”并且响应于用户问题而提供给用户。因此,“响应”属性允许用户定制与实体相关联的响应。如果实体配置未指定“响应”属性,则会话引擎可以使用默认响应,例如,诸如附加到实体值的字符串“该值是”之类的语句。类似地,属性“提醒”允许用户定制在会话引擎请求来自用户的值时呈现给用户的提醒,而不是使用默认提醒。
每种方法的指令可以存储在文件中并被访问以用于处理实体。***可以执行与实体类型的类型相关联的某些检查,以确保所确定的值与类型相符。例如,类型EMAIL可指定特定格式。
在一些实施例中,实体配置将问题指定为包括文本字符串和值的组合的模板。例如,实体配置可以指定问题“entity_name+“是什么””。会话引擎基于用于向用户询问的模板来生成问题。会话引擎150存储用于生成用于询问用户的问题的默认模板的集合。会话引擎150检查实体配置以确定实体配置是否指定针对特定上下文的问题的模板。如果实体配置指定针对该特定上下文的问题的模板,则会话引擎150使用来自实体配置的模板,否则会话引擎150使用默认模板。
上下文的示例是用户提供无效的实体类型的值。会话引擎处理接收的值以确定接收的值中的错误的类型。实体配置指定用于特定类型的错误的问题的模板。如果错误是由实体值的不正确格式引起的格式错误,则会话引擎使用模板,该模板提供问题中的实体类型的格式信息。例如,如果用户话语提供了具有无效格式的订单号,则会话引擎生成以下问题并询问用户“订单号是3个字符和3位数字的组合,可以请你提供有效订单号吗?”因此,实体配置包括用于在聊天机器人会话期间获得实体值的问题集合。
***架构
图3是根据实施例的会话引擎的***架构的框图。在线***120包括语音识别模块310、意图检测模型330、任务执行模块350、响应生成模块360、配置存储370、以及实体解析模块380。其他实施例可以具有与在此描述的组件不同的组件和/或除在此描述的组件之外的其他组件。此外,在此描述的功能可以以不同的方式分布在组件之间。
在线***允许用户通过指定聊天机器人配置来定制聊天机器人。聊天机器人配置存储在配置存储370中。聊天机器人配置可以作为配置文件(例如,XML或YML文件)被接收。
会话引擎150允许用户使用在线***120执行任务。例如,如果在线***实现电子商务网站,则会话引擎120允许用户执行与交易有关的任务,例如,执行在线交易、检查交易的状态等。任务由任务执行模块350执行。任务执行模块350可以与其他组件交互,例如与数据存储160交互,以访问执行任务所必需的数据或更新执行任务所必需的数据。任务执行模块350可以与外部服务(例如,地图服务)交互以确认地址。
在实施例中,任务执行模块350维护存储任务集合的数据结构。例如,数据结构可以是队列数据结构或堆栈数据结构。如果任务执行模块350需要执行任务,则任务执行模块350在数据结构上存储任务对象。任务对象指定任务的类型和用于存储执行任务所需的各个实体的槽(slot)。任务执行模块350从任务数据结构获得任务并对其进行处理。任务配置可以指定执行任务需要执行其他相关任务。因而,为了执行任务,任务执行模块350可以向任务数据结构添加其他任务。任务执行模块350持续处理任务数据结构上的任务,直到所有任务都被执行。
会话引擎150执行与用户的自然语言会话。会话引擎150从用户接收话语。话语可以经由允许用户输入文本的用户界面被提供为文本信号。话语可以经由用户界面被提供作为语音信号,该用户界面允许用户向捕获该语音信号的麦克风讲话。会话引擎150可以向用户询问用于接收信息的问题并且从用户接收自然语言回答。会话引擎150生成呈现给用户的会话。会话引擎追踪会话的状态以确保回答各个问题。会话引擎150将从用户接收到的回答提供给认证模块150的各个模块。如果用户正在使用针对会话的基于语音的界面,则会话引擎150使用语音识别模块310将接收到的音频信号转换成文本以供进一步处理。
语音识别模块310接收音频信号作为输入并且将该音频信号转换成文本以供进一步处理。语音识别模块310允许用户使用语音来进行与在线***120的会话。语音识别模块310的输出作为输入提供给在线***120的其他模块。在实施例中,语音识别模块310为识别出的字词提供置信度水平,该置信度水平指示字词被正确转录的可能性。
实体解析模块380识别与用户请求的允许的动作相关的实体。实体是指***确定执行任务的值。例如,为了执行用于验证用户的任务,***可以确定用户的名称、用户的邮政编码、用户的电子邮件等中的一个或更多个。为了检索交易的记录,***可能需要用于唯一地识别记录的信息,例如,与交易相关联的日期和时间戳、记录标识符等。任务配置指定执行任务所需的实体的类型。实体解析模块380执行在此(例如,在图4-5中)描述的各种过程。
实体解析模块380可以执行用于识别实体类型的实体的不同方法,如在实体配置中所指定的。例如,在zip_code实体类型的以上示例配置中,指定了四种方法:命名实体识别、拼写、正则表达式和模糊匹配。
实体解析模块380通过将句子提供给命名实体识别模型来执行命名实体识别,该命名实体识别模型接收句子作为输入并且识别一个或更多个命名实体及其类型。命名实体是与预定义类别(例如,个人名称、组织、位置、时间表达式、数量、货币值、百分比等)的集合相关联的实体。在实施例中,命名实体识别模型是使用具有已知命名实体的句子训练的神经网络。作为示例,例如,输入句子“我想要电视在周末交付给圣何塞”,命名实体识别模型识别以下类别的命名实体及其值:类别产品、值“电视”;类别时间,值“周末”;以及类别位置,值“圣何塞”。
实体解析模块380通过向实体的用户提供拼写并要求用户确认或者通过要求用户拼写出实体来执行用于实体识别的拼写方法。实体解析模块380通过将输入句子的各个部分与实体配置中指定的正则表达式相匹配并选择句子的与正则表达式相匹配的部分来执行用于实体识别的正则表达式方法。实体解析模块380通过执行输入句子的部分与在实体配置中指定的样本表达式的模糊匹配来执行用于实体识别的模糊匹配方法。如果句子的一部分被确定为基于模糊匹配与示例具有高的匹配度,则实体解析模块380确定句子的该部分是实体类型的,针对该实体类型的方法在实体配置中被指定。
根据实施例,神经网络经配置以接收自然语言句子和示例短语作为输入并且确定该示例短语是否可以从该自然语言句子中推理。如果自然语言句子暗含示例短语,则可以从自然语言句子推理示例短语。示例短语可以是另一自然语言句子或自然语言句子的一部分。
在实施例中,神经网络生成指示示例短语可以从自然语言请求中推理的置信度的度量的置信度分数。例如,较高的置信度的度量指示可以从自然语言请求推理示例短语的较高可能性。给定两个示例短语,由神经网络生成的针对自然语言句子的分数可以被比较以确定哪个示例短语更好地反映自然语言请求的意图。此外,给定示例短语的集合,神经网络可以使用成对的自然语言句子和来自该集合的示例短语作为输入来执行以生成分数。可以比较分数,以确定表示自然语言句子的意图的最佳匹配示例短语。神经网络可以使用存储成对的自然语言句子和可以从其推理的示例短语的标记的训练数据集来训练。
机器学习模块390训练意图检测模型330。在实施例中,机器学习模块390使用包括几对自然语言请求和对应的示例短语的标记的数据集来训练意图检测模型330。可以在***管理员提供的任务配置130中指定对应于意图的示例短语。
识别实体的过程
在图4-5中示出了与实体识别相关的过程。其他实施例可以以不同的顺序执行这些流程图中的步骤。此外,各个实施例可以包括与在此描述的步骤不同的步骤和/或除在此描述的步骤外的附加的步骤。
图4是示出了根据实施例的识别实体的过程的流程图。会话引擎150在聊天机器人会话中接收410来自用户的话语。话语包括自然语言句子。会话引擎150向意图检测模型330提供句子以确定句子的意图。意图表示用户正在通过聊天机器人会话请求***执行的任务。意图检测模型330将所接收的自然语言句子与示例短语或句子进行比较,以根据任务配置来确定对应于意图的匹配示例短语或句子。
会话引擎150从任务配置中识别430与所请求的任务相对应的实体类型。会话引擎150通过执行与在实体配置中指定的每个实体类型相对应的方法来确定440与实体类型相对应的实体。
在线***120基于所确定的实体值来执行所请求的任务。在线***120基于所执行的任务向用户发送响应。如果所请求的任务表示存储在数据存储160中的一些信息,则在线***120将所请求的信息提供给用户。例如,用户可以请求订单的状态或产品或服务的价格,并且在线***提供所请求的信息。作为另一个示例,在线***120可以仅通知用户所请求的任务完成。例如,如果用户请求***更新存储一些信息的记录,则在线***120向用户发送响应,该响应让用户知道记录被更新。
图5是示出了根据实施例的从实体池中选择实体的过程的流程图。会话引擎150选择510被映射到用户所请求的任务的实体类型。会话引擎150执行520实体配置中指定的方法以确定表示实体类型的实体的集合的实体池。基于用户话语确定的实体池的示例如下:{entity_type1:[candidate11,candidate12,...,],entity_type2:[candidate21,candidate22,...,],...}。该池包括实体类型entity_typel和entity_type2。对于实体类型entity_type1,实体池包括作为候选实体的集合[candidate11,candidate12,...,],而对于实体类型entity_type2,实体池包括作为候选实体的集合[candidate21,candidate22,...,]。
在实施例中,在实体配置中针对实体类型指定的方法与模型(例如,诸如神经网络等基于机器学习的模型)相关联。会话引擎150执行模型以基于作为话语接收的句子确定实体。会话引擎150可使用诸如语音标记器的一部分、命名实体识别模型、参考解析模型等模型。
在实施例中,会话引擎150追踪基于在与用户的会话期间接收的来自用户的先前话语所识别的实体。会话引擎150将基于当前话语确定的实体添加到从先前话语确定的实体,以确定实体类型的实体池。
如果实体池包括不只一个实体,则会话引擎150基于在实体配置中为实体类型指定的提示从实体池中过滤530出实体。会话引擎150排除实体,直到为实体池中的实体类型留下单个实体。因而,每个实体池中的实体的数量可以减少。例如,以上的示例实体池可以更新为{entity_type1:[candidate11],entity_type2:[candidate21],...}。会话引擎150选择540剩余实体作为用于该实体类型的实体,并提供给任务执行模块350以供执行任务。一旦每个实体类型的实体可用,任务执行模块350就执行任务。
在任务执行模块350维护任务数据结构的实施例中,任务执行模块350使用确定的实体的值来更新对应于当前任务的任务对象。一旦表示任务的实体的值的所有槽被填充,任务执行模块350就执行任务。
如果在从实体池中过滤实体后,会话引擎150确定在实体池中存在不只一个实体,则会话引擎150生成用于询问用户的问题,哪个实体值是正确的一个。会话引擎150将所生成的问题作为聊天机器人会话的一部分发送给用户。
在实施例中,实体配置以特定顺序指定用于每个实体类型的方法,并且会话引擎150试图以实体配置中指定的方法的顺序获得实体的值。例如,会话引擎150执行第一方法以确定实体的值。如果该方法成功,则会话引擎150使用该实体的所确定的值。如果该方法未能提供该实体的值,则会话引擎150执行下一方法,以此类推,直到确定该实体的值为止。
在实施例中,实体配置指定用于从实体池中过滤出候选实体的提示。提示可指定实体的数据类型,例如整数、字符串、浮点数等。会话引擎150针对指定类型检查每个候选实体,并且从实体池中移除未能匹配指定类型的候选实体。
在实施例中,实体配置指定对应于实体类型的命名实体的可能名称。例如,对于zip_code实体类型,实体配置指定潜在名称“ZIPCODE”、“zip-code”、“号码”等。这些表示命名实体识别模型可以分配给该实体类型的实体的名称。这些名称可以从对来自用户的先前会话的分析中获得。会话引擎150识别在先前话语期间确定的命名实体,所述命名实体具有与在实体配置中指定的潜在名称相匹配的名称。会话引擎150将具有匹配名称的命名实体添加到实体类型的实体池。
计算机架构
图6是示出了根据实施例的用作在图1的环境100中示出的实体中的一者的典型计算机***的功能视图的高级框图。示出了耦合到芯片组604的至少一个处理器602。存储器606、存储设备608、键盘610、图形适配器612、指点设备614和网络适配器616也耦合到芯片组604。显示器618耦合到图形适配器612。在一个实施例中,芯片组604的功能由存储器控制器集线器620和I/O控制器集线器622提供。在另一个实施例中,存储器606被直接耦合到处理器602而不是芯片组604。
存储设备608是非暂时性计算机可读存储介质,如硬盘驱动器、只读光盘存储器(CD-ROM)、DVD、或固态存储器设备。存储器606保持处理器602使用的指令和数据。指点设备614可以是鼠标、追踪球或其他类型的指点设备,并且被用来与键盘610组合以将数据输入到计算机***600中。图形适配器612将图像和其他信息显示在显示器618上。网络适配器616将计算机***600耦合到网络。
如本领域已知的,计算机600可以具有不同于图6中所示的组件和/或除图6中所示的组件外的其他组件。此外,计算机600可以没有某些示出的组件。例如,作为在线***120的计算机***600可以没有键盘610和指点设备614。此外,存储设备608可以是本地的和/或远离计算机600(诸实施在存储区域网络(SAN)内)的。
计算机600被适配成用于执行计算机模块以用于提供在本文中所描述的功能。如本文所使用的,术语“模块”是指用于提供特定功能的计算机程序指令和其他逻辑。模块可以在硬件、固件和/或软件中实现。模块可以包括一个或更多个进程,和/或仅由进程的部分提供。模块通常被存储在存储设备608上,被加载到存储器606中,并且由处理器602执行。
图1的实体所使用的计算机***600的类型可以根据实施例和实体所使用的处理能力而变化。例如,客户端设备115可以是具有有限处理能力的移动电话、小型显示器618,并且可以没有指点设备614。相反,在线***120可以包括一起工作以提供本文中描述的功能的多个刀片服务器。
附加考虑
组件的具体命名、术语的大写、属性、数据结构、或任何其他编程或结构方面不是强制性或重要的,并且实施所描述的实施例的机制可以具有不同的名称、格式或协议。进一步,***可通过硬件和软件的组合来实施,如所描述的,或完全以硬件元件实施。同样地,在此描述的各个***组件之间的功能的特定划分仅是示例性的,而不是强制性的;由单个***组件执行的功能可以替代地由多个组件执行,并且由多个组件执行的功能可以替代地由单个组件执行。
以上描述的一些部分呈现了在对信息的操作的算法和符号表示方面的特征。这些算法描述和表示是数据处理领域的技术人员用来将他们的工作的实质最有效地传达给本领域的其他技术人员的手段。虽然在功能上或逻辑上描述了这些操作,但是不言而喻的是这些操作是由计算机程序来实现的。此外,在不失一般性的情况下,事实还证明,将这些操作的布置称为模块或者由功能名称指代有时是方便的。
除非另有具体说明,如从以上讨论中显而易见的,应当认识到,贯穿整个描述,利用如“处理”或“计算”或“预测”或“确定”或“显示”等术语的讨论是指计算机***或类似电子计算设备的动作和过程,该计算机***或类似电子计算设备操纵和变换表示为计算机***存储器或寄存器或其他此类信息存储、传输或显示设备内的物理(电子)量的数据。
在本文中描述的一些实施例包括以算法的形式描述的处理步骤和指令。应当注意的是,实施例的处理步骤和指令可以实施在软件、固件或硬件中,并且当实施在软件中时,可以被下载以驻留在由实时网络操作***使用的不同平台上并且从由实时网络操作***使用的不同平台操作。
所描述的实施例还涉及用于执行在本文中的操作的装置。装置可为所需目的而专门构造,或者它可以包括由存储在计算机可读介质上的计算机程序选择性地激活或重新配置的通用计算机,该计算机可读介质可由该计算机访问。这样的计算机程序可以存储在非暂时性计算机可读存储介质中,诸如但不限于任何类型的盘,包括软盘、光学盘、CD-ROM、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、专用集成电路(ASIC)、或适于存储电子指令的任何类型的介质,并且每一者耦合至计算机***总线。此外,本说明书中提到的计算机可以包括单个处理器或者可以是用于增加计算能力的采用多处理器设计的架构。
在本文呈现的算法和操作并非固有地与任何特定计算机或其他设备相关。各种通用***也可以与根据本文中的教导的程序一起使用,或者可以证明构造更专用的装置来执行所要求的方法步骤是方便的。这些各种各样的***的所需结构以及等效变化对本领域技术人员将是显而易见的。此外,本文中的实施例并不是根据特定编程语言描述的。应当认识到,各种编程语言可以用于实现本文所描述的实施例的教导。
这些实施例非常适合于多种拓扑结构上的种类繁多的计算机网络***。在此领域内,大型网络的配置和管理包括存储设备和计算机,所述存储设备和计算机通过诸如互联网之类的网络通信地耦合到不同的计算机和存储设备。
最后,应当注意的是,本说明书中所使用的语言主要是出于可读性和指导性目的而选择的,并且可以不被选择以描绘或限制创造性的主题。因此,实施例的公开旨在为示例性的,而不是限制性的。

Claims (20)

1.一种用于在聊天机器人会话中确定用户的意图的计算机实现的方法,所述方法包括:
接收任务配置,所述任务配置将任务映射到实体类型;
接收实体配置,所述实体配置将实体类型映射到用于确定每个实体类型的实体的方法;
在聊天机器人会话中接收来自用户的自然语言句子;
使用意图检测模型来预测所述自然语言句子的意图,所述意图表示由所述用户通过所述自然语言句子请求的任务;
从所述任务配置中识别与所请求的任务相对应的一个或更多个实体类型;
对于每个识别的实体类型,通过执行与在所述实体配置中指定的所述实体类型相对应的方法来确定所述实体类型的实体;
基于所确定的实体来执行所请求的任务;以及
在所述聊天机器人会话中将基于所执行的任务的响应发送给所述用户。
2.根据权利要求1所述的方法,其中确定实体类型的实体包括:
确定包括一个或更多个候选实体的实体池;以及
基于在所述实体配置中指定的一个或更多个提示从所述实体池中排除一个或更多个实体。
3.根据权利要求2所述的方法,其中提示指定所述实体类型的数据类型,其中响应于确定实体具有与被指定为所述提示的所述数据类型不同的数据类型,排除所述实体。
4.根据权利要求2所述的方法,进一步包括:
确定实体池是否具有多个实体;
响应于所述实体池包括多个实体,生成用于向所述用户确认所述实体的值的问题;以及
将所生成的问题发送给所述用户。
5.根据权利要求1所述的方法,其中实体配置指定实体的一个或更多个名称,所述方法进一步包括:
基于用户话语选择命名实体,所述用户话语具有与在所述实体配置中为所述实体指定的所述一个或更多个名称相匹配的名称,所述命名实体基于命名实体识别模型来确定;以及
基于所选择的命名实体的值来确定所述实体的值。
6.根据权利要求1所述的方法,其中所述意图检测模型包括神经网络,所述神经网络被配置为接收输入句子和示例句子,并且基于所述输入句子和所述示例句子之间的匹配来输出分数。
7.根据权利要求6所述的方法,其中预测所述自然语言句子的意图包括:
将所接收的自然语言句子与示例句子集合中的每一者进行比较;以及
基于所述比较,选择与被确定为与所接收的自然语言句子匹配的一个或更多个示例相对应的意图。
8.根据权利要求6所述的方法,进一步包括:
接收指定候选意图集合的聊天机器人配置,其中候选意图与由所述在线***响应于通过所述聊天机器人接收的用户请求而执行的任务相对应;
其中所述聊天机器人配置为每个候选意图指定示例句子集合,并且所述意图检测模型通过使用所述神经网络将所接收的自然语言句子与在所述聊天机器人配置中指定的候选意图的示例句子进行匹配来确定所接收的自然语言句子的意图。
9.根据权利要求6所述的方法,进一步包括:
使用包括具有已知意图的示例句子的训练数据集来训练所述神经网络。
10.根据权利要求1所述的方法,其中所述在线***是托管多个租户的数据和服务的多租户***,其中所述聊天机器人配置专用于使用所述多租户***执行任务集合的租户,来自所述任务集合的每个任务与在所述聊天机器人配置中指定的候选意图相对应。
11.根据权利要求1所述的方法,进一步包括:
由所述在线***基于与所述用户的会话维护任务集合,其中来自所述任务集合的任务与从用户话语确定的意图相对应;以及
从所述任务集合中选择任务并执行所述任务。
12.一种非暂时性计算机可读存储介质,其存储指令,所述指令在由计算机处理器执行时,使所述计算机处理器执行用于在聊天机器人会话中确定用户的意图的步骤,所述步骤包括:
接收任务配置,所述任务配置将任务映射到实体类型;
接收实体配置,所述实体配置将实体类型映射到用于确定每个实体类型的实体的方法;
在聊天机器人会话中接收来自用户的自然语言句子;
使用意图检测模型来预测所述自然语言句子的意图,所述意图表示由所述用户通过所述自然语言句子请求的任务;
从所述任务配置中识别与所请求的任务相对应的一个或更多个实体类型;
对于每个识别的实体类型,通过执行与在所述实体配置中指定的所述实体类型相对应的方法来确定所述实体类型的实体;
基于所确定的实体来执行所请求的任务;以及
在所述聊天机器人会话中将基于所执行的任务的响应发送给所述用户。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其中确定实体类型的实体包括:
确定包括一个或更多个候选实体的实体池;以及
基于在所述实体配置中指定的一个或更多个提示从所述实体池中排除一个或更多个实体。
14.根据权利要求13所述的非暂时性计算机可读存储介质,其中所述指令进一步使所述计算机处理器执行包括以下的步骤:
确定实体池是否具有多个实体;
响应于所述实体池包括多个实体,生成用于向所述用户确认所述实体的值的问题;以及
将所生成的问题发送给所述用户。
15.根据权利要求13所述的非暂时性计算机可读存储介质,其中实体配置指定实体的一个或更多个名称,其中所述指令进一步使所述计算机处理器执行包括以下的步骤:
基于用户话语选择命名实体,所述用户话语具有与在所述实体配置中为所述实体指定的所述一个或更多个名称相匹配的名称,所述命名实体基于命名实体识别模型来确定;以及
基于所选择的命名实体的值来确定所述实体的值。
16.根据权利要求12所述的非暂时性计算机可读存储介质,其中所述意图检测模型包括神经网络,所述神经网络被配置为接收输入句子和示例句子,并且基于所述输入句子和所述示例句子之间的匹配来输出分数。
17.根据权利要求16所述的方法,其中预测所述自然语言句子的意图包括:
将所接收的自然语言句子与示例句子集合中的每一者进行比较;以及
基于所述比较,选择与被确定为与所接收的自然语言句子匹配的一个或更多个示例相对应的意图。
18.根据权利要求16所述的非暂时性计算机可读存储介质,其中所述指令进一步使所述计算机处理器执行包括以下的步骤:
接收指定候选意图集合的聊天机器人配置,其中候选意图与由所述在线***响应于通过所述聊天机器人接收的用户请求而执行的任务相对应;
其中所述聊天机器人配置为每个候选意图指定示例句子集合,并且所述意图检测模型通过使用所述神经网络将所接收的自然语言句子与在所述聊天机器人配置中指定的候选意图的示例句子进行匹配来确定所接收的自然语言句子的意图。
19.根据权利要求12所述的非暂时性计算机可读存储介质,其中所述在线***是托管多个租户的数据和服务的多租户***,其中所述聊天机器人配置专用于使用所述多租户***执行任务集合的租户,来自所述任务集合的每个任务与所述聊天机器人配置中指定的候选意图相对应。
20.一种计算机***,包括:
计算机处理器;以及
非暂时性计算机可读存储介质,其存储指令,所述指令在由计算机处理器执行时,使所述计算机处理器执行包括以下的步骤:
接收任务配置,所述任务配置将任务映射到实体类型;
接收实体配置,所述实体配置将实体类型映射到用于确定每个实体类型的实体的方法;
在聊天机器人会话中接收来自用户的自然语言句子;
使用意图检测模型来预测所述自然语言句子的意图,所述意图表示由所述用户通过所述自然语言句子请求的任务;
从所述任务配置中识别与所请求的任务相对应的一个或更多个实体类型;
对于每个识别的实体类型,通过执行与在所述实体配置中指定的实体类型相对应的方法来确定所述实体类型的实体;
基于所确定的实体来执行所请求的任务;以及
在所述聊天机器人会话中将基于所执行的任务的响应发送给所述用户。
CN202180070225.2A 2020-08-13 2021-01-16 用于聊天机器人会话的实体解析 Pending CN116762078A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/993,256 US11651158B2 (en) 2020-08-13 2020-08-13 Entity resolution for chatbot conversations
US16/993,256 2020-08-13
PCT/US2021/013779 WO2022035461A1 (en) 2020-08-13 2021-01-16 Entity resolution for chatbot conversations

Publications (1)

Publication Number Publication Date
CN116762078A true CN116762078A (zh) 2023-09-15

Family

ID=74587133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180070225.2A Pending CN116762078A (zh) 2020-08-13 2021-01-16 用于聊天机器人会话的实体解析

Country Status (4)

Country Link
US (1) US11651158B2 (zh)
EP (1) EP4193292A1 (zh)
CN (1) CN116762078A (zh)
WO (1) WO2022035461A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100353B (zh) * 2020-09-15 2024-06-07 京东方科技集团股份有限公司 人机对话方法及***、计算机设备及介质
CN114600112A (zh) * 2020-09-29 2022-06-07 谷歌有限责任公司 使用自然语言处理的文档标记和导航
US11790906B2 (en) * 2021-01-25 2023-10-17 Google Llc Resolving unique personal identifiers during corresponding conversations between a voice bot and a human
US11886821B2 (en) * 2021-04-16 2024-01-30 Accenture Global Solutions Limited Method and system for inferring answers from knowledge graphs

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875237B2 (en) * 2013-03-14 2018-01-23 Microsfot Technology Licensing, Llc Using human perception in building language understanding models
US20190179903A1 (en) 2015-01-23 2019-06-13 Conversica, Inc. Systems and methods for multi language automated action response
US20180114124A1 (en) * 2015-03-24 2018-04-26 Koninklijke Philips N.V. Learning mode for context identification
US10497366B2 (en) * 2018-03-23 2019-12-03 Servicenow, Inc. Hybrid learning system for natural language understanding
US10698707B2 (en) 2018-04-24 2020-06-30 Facebook, Inc. Using salience rankings of entities and tasks to aid computer interpretation of natural language input
US10839159B2 (en) * 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11948058B2 (en) * 2018-12-11 2024-04-02 Adobe Inc. Utilizing recurrent neural networks to recognize and extract open intent from text inputs
US10607042B1 (en) 2019-02-12 2020-03-31 Live Objects, Inc. Dynamically trained models of named entity recognition over unstructured data
US11003863B2 (en) * 2019-03-22 2021-05-11 Microsoft Technology Licensing, Llc Interactive dialog training and communication system using artificial intelligence
US11200886B2 (en) * 2019-04-02 2021-12-14 Accenture Global Solutions Limited System and method for training a virtual agent to identify a user's intent from a conversation
US11151166B2 (en) * 2019-07-03 2021-10-19 Microsoft Technology Licensing, Llc Context-based multi-granularity intent discovery
US10916242B1 (en) * 2019-08-07 2021-02-09 Nanjing Silicon Intelligence Technology Co., Ltd. Intent recognition method based on deep learning network
US11914962B2 (en) * 2019-09-12 2024-02-27 Oracle International Corporation Reduced training intent recognition techniques
US11373045B2 (en) * 2019-09-24 2022-06-28 ContactEngine Limited Determining context and intent in omnichannel communications using machine learning based artificial intelligence (AI) techniques
US11380306B2 (en) * 2019-10-31 2022-07-05 International Business Machines Corporation Iterative intent building utilizing dynamic scheduling of batch utterance expansion methods

Also Published As

Publication number Publication date
US11651158B2 (en) 2023-05-16
WO2022035461A1 (en) 2022-02-17
US20220050966A1 (en) 2022-02-17
EP4193292A1 (en) 2023-06-14

Similar Documents

Publication Publication Date Title
US11997055B2 (en) Chat management system
US10937413B2 (en) Techniques for model training for voice features
US11531821B2 (en) Intent resolution for chatbot conversations with negation and coreferences
AU2022221524B2 (en) Tailoring an interactive dialog application based on creator provided content
US11651158B2 (en) Entity resolution for chatbot conversations
US11902221B2 (en) Customizing chatbots based on user specification
US20200349228A1 (en) Significant correlation framework for command translation
US11544470B2 (en) Efficient determination of user intent for natural language expressions based on machine learning
US11315547B2 (en) Method and system for generating speech recognition training data
US10854189B2 (en) Techniques for model training for voice features
US11887599B2 (en) Configurable conversation engine for executing customizable chatbots
US11769013B2 (en) Machine learning based tenant-specific chatbots for performing actions in a multi-tenant system
WO2022018676A1 (en) Natural language enrichment using action explanations
US11588800B2 (en) Customizable voice-based user authentication in a multi-tenant system
US20210264112A1 (en) Bot dialog manager
US12050509B2 (en) Root cause pattern recognition based model training
US20220237063A1 (en) Root cause pattern recognition based model training
KR20240091214A (ko) 데이터로부터의 질문 및 답변 쌍들의 추출을 위한 규칙-기반 기술들
CN116431781A (zh) 问答方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination