CN115917553A - 在聊天机器人中实现稳健命名实体识别的实体级数据扩充 - Google Patents

在聊天机器人中实现稳健命名实体识别的实体级数据扩充 Download PDF

Info

Publication number
CN115917553A
CN115917553A CN202180041814.8A CN202180041814A CN115917553A CN 115917553 A CN115917553 A CN 115917553A CN 202180041814 A CN202180041814 A CN 202180041814A CN 115917553 A CN115917553 A CN 115917553A
Authority
CN
China
Prior art keywords
utterance
model
template
data set
entity
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
CN202180041814.8A
Other languages
English (en)
Inventor
S·P·K·加德
Y·吴
A·D·卡努加
E·L·贾拉勒丁
V·比什诺伊
M·E·约翰逊
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN115917553A publication Critical patent/CN115917553A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • 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
    • 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/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • 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
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0631Creating reference templates; Clustering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于在自然语言处理中训练聊天机器人系统的数据扩充技术。在一个特定方面,提供了一种方法,所述方法包括:生成针对实体的要覆盖的值列表;从具有所述实体的上下文的数据集中选择话语;将所述话语转换为模板,其中,所述模板中的每个模板包括针对所述实体的映射到所述值列表的词槽;从所述模板中选择模板;基于所选模板内的词槽与针对所述实体的所述值列表之间的映射从所述值列表中选择值;以及基于所述所选模板和所选值创建人工话语,其中,创建所述人工话语包括将所述所选值插入所述所选模板的映射到针对所述实体的所述值列表的词槽中。

Description

在聊天机器人中实现稳健命名实体识别的实体级数据扩充
优先权要求
本申请是于2020年6月12日提交的美国临时申请号63/038,337的非临时申请并且要求所述美国临时申请的权益,所述美国临时申请出于所有目的通过援引以其全文并入本文。
技术领域
本公开总体上涉及聊天机器人系统,并且更具体地涉及用于在自然语言处理中训练聊天机器人系统的数据扩充技术。
背景技术
为了获得即时反应,世界各地的许多用户使用即时消息传递或聊天平台。组织经常使用这些即时消息传递或聊天平台与客户(或最终用户)进行实时会话。然而,雇用服务人员与客户或最终用户进行实时交流对于组织来说会是非常昂贵的。已经开始开发聊天机器人或机器人来模拟与最终用户的会话,尤其是通过因特网。最终用户可以通过最终用户已经安装并使用的消息传递应用程序与机器人交流。智能机器人(通常通过人工智能(AI)提供动力)可以在实时会话中更智能地且根据上下文进行交流并且因此可以允许机器人与最终用户之间进行更加自然的会话以改善会话体验。不是最终用户去学习机器人知道如何作出回应的固定的一组关键词或命令,而是智能机器人可以能够基于自然语言的用户话语理解最终用户的意图并且相应地作出回应。
然而,聊天机器人很难构建,因为这些自动化解决方案需要某些领域中的特定知识和可能只在专业开发人员的能力范围内的某些技术的应用。作为构建这种聊天机器人的一部分,开发人员可以首先了解企业和最终用户的需求。开发人员然后可以分析并作出与例如以下各项有关的决策:选择要用于分析的数据集;准备用于分析的输入数据集(例如,在分析之前清理数据、提取、格式化和/或变换数据,执行数据特征工程等);识别用于执行分析的适当的(多种)机器学习(ML)技术或(多个)ML模型;以及改善技术或模型以基于反馈改善结果/效果。识别适当的模型的任务可以包括开发多个模型(可能并行地)、迭代地对这些模型进行测试和实验、之后识别特定的模型(或多个模型)以供使用。进一步地,基于监督式学习的解决方案通常涉及训练阶段、随后是应用(即,推理)阶段和介于训练阶段与应用阶段之间的迭代循环。开发人员可以负责仔细地实施并监测这些阶段,以实现最佳解决方案。例如,为了训练(多种)ML技术或(多个)模型,需要精确的训练数据以使算法能够理解和学习某些模式或特征(例如,对于聊天机器人——需要意图提取和仔细的句法分析,而不仅仅是原始语言处理),(这些)ML技术或模型将使用这些模式或特征来预测期望的结果(例如,从话语中推断出意图)。为了确保(多种)ML技术或(多个)模型正确学习这些模式和特征,开发人员可以负责针对(这些)ML技术或模型来选择、丰富和优化训练数据集。
发明内容
本公开涉及用于在自然语言处理中训练聊天机器人系统的数据扩充技术。
在各种实施例中,提供了一种方法,所述方法包括:由数据处理系统生成针对实体的要覆盖的值列表;由所述数据处理系统从具有所述实体的上下文的数据集中选择话语;由所述数据处理系统将所述话语转换为模板,其中,所述模板中的每个模板包括针对所述实体的映射到所述值列表的词槽;由所述数据处理系统从所述模板中选择模板;由所述数据处理系统基于所选模板内的词槽与针对所述实体的所述值列表之间的映射从所述值列表中选择值;以及由所述数据处理系统使用所述所选模板和所选值生成人工话语,其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中。
在一些实施例中,所述方法进一步包括:在从所述数据集中选择话语之前,由所述数据处理系统使用训练数据集训练模型,其中,所述训练数据集是所述数据集或其子集;由所述数据处理系统使用测试数据集或验证数据集测试所述模型;由所述数据处理系统基于对所述模型的所述测试来评估所述模型的性能;以及由所述数据处理系统基于所述评估来识别所述实体。
在一些实施例中,所述方法进一步包括:由所述数据处理系统用所述人工话语扩充所述数据集或所述训练数据集,以生成已扩充的训练数据集;由所述数据处理系统使用所述已扩充的训练数据集来训练所述模型;由所述数据处理系统使用所述测试数据集或所述验证数据集或另一测试数据集或验证数据集重新测试所述模型;由所述数据处理系统基于对所述模型的所述重新测试来评估所述模型的性能;由所述数据处理系统确定所述模型的所述性能满足预定义标准;以及响应于所述模型满足所述预定义标准,将所述模型部署为聊天机器人系统的一部分。
在一些实施例中,所述方法进一步包括:由所述数据处理系统确定所述所选模板内的所述词槽包括映射到所述值列表的第一元素以及映射到函数的第二元素;由所述数据处理系统基于所述所选模板内的所述词槽与所述函数之间的映射来处理所述函数,以生成函数值;以及由所述数据处理系统将所述所选值与所述函数值进行组合以获得词槽值,其中,生成所述人工话语包括将所述词槽值插入所述所选模板的所述词槽中。
在一些实施例中,所述方法进一步包括:由所述数据处理系统确定所述所选模板映射到包括所述词槽和另一词槽的嵌套词槽映射集;由所述数据处理系统确定所述嵌套词槽映射集中的所述另一词槽映射到另一值列表;以及由所述数据处理系统基于所述所选模板内的另一词槽与所述另一值列表之间的映射从所述另一值列表中选择另一值,其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中并将所选另一值插入所述所选模板中的所述另一词槽中。
在一些实施例中,所述方法进一步包括由所述数据处理系统用所述人工话语扩充所述数据集或训练数据集,以生成已扩充的训练数据集,用于训练模型以对包括所述实体的多个实体进行识别和分类。
在一些实施例中,所述模板是基于包括以下条件的启发式方法来选择的:(i)在具有多个实体分类的模板与具有单一实体分类的模板中做出选择;(ii)权衡模板种类与模板质量;(iii)根据上下文对模板进行归类;(iv)模型是否需要每个模板的最低出现次数/用户想要教导所述模型的独特上下文;或(v)以上各项的任何组合。
在各种实施例中,提供了一种系统,所述系统包括一个或多个数据处理器和包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部。
在各种实施例中,提供了一种计算机程序产品,所述计算机程序产品有形地体现在非暂态机器可读存储介质中并且包括被配置成使一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部的指令。
可以用多种方式并且在多种上下文中实施上文和下文所描述的技术。如下文更详细地描述的,参考以下附图提供了几种示例实施方式和上下文。然而,以下实施方式和上下文仅是许多实施方式和上下文中的一些。
附图说明
图1是并入了示例性实施例的分布式环境的简化框图。
图2是根据某些实施例的实施主机器人的计算系统的简化框图。
图3是根据某些实施例的实施技能机器人的计算系统的简化框图。
图4是根据各种实施例的聊天机器人训练和部署系统的简化框图。
图5A图示了根据各种实施例的用于用已扩充的训练数据来训练预测模型的过程流程。
图5B图示了根据各种实施例的用于生成已扩充的训练数据的过程流程。
图5C图示了根据各种实施例的用于从模板生成人工话语的过程流程。
图6描绘了用于实施各种实施例的分布式系统的简化图。
图7是根据各种实施例的系统环境的一个或多个部件的简化框图,通过所述系统环境,由实施例系统的一个或多个部件提供的服务可以作为云服务提供。
图8图示了可以用于实施各种实施例的示例计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
引言
数字助理是帮助用户在自然语言会话中完成各种任务的人工智能驱动接口。针对每个数字助理,客户可以组装一个或多个技能。技能(在本文中也描述为聊天机器人、机器人或技能机器人)是聚焦于如跟踪库存、提交时间卡和创建费用报告等特定类型的任务的单独机器人。当最终用户与数字助理接洽时,数字助理评估最终用户输入并且将会话路由到适当的聊天机器人并从适当的聊天机器人路由会话。可以通过如
Figure BDA0003990824470000041
Messenger(即时通)、
Figure BDA0003990824470000042
messenger或短消息服务(SMS)等各种通道使数字助理对最终用户可用。通道使得聊天通过各种消息传递平台在最终用户与数字助理及其各聊天机器人之间来回地传送。通道还可以支持用户代理升级、事件发起的会话和测试。
意图允许聊天机器人理解用户想要聊天机器人做什么。意图包括典型的用户请求和陈述的排列,这也可以称为话语(例如,获得账户余额、进行购物等)。如本文所使用的,话语或消息可以指代在与聊天机器人的会话期间交换的一组词(例如,一个或多个句子)。意图可以通过提供说明某个用户行动的名称(例如,订披萨)并编译通常与触发行动相关联的一组现实生活用户陈述或话语来创建。因为聊天机器人的认知是源自这些意图,所以每个意图可以从稳健的数据集(一至两打话语)创建并且变化,使得聊天机器人可以解释不明确的用户输入。一组丰富的话语使聊天机器人能够理解在其接收到如“Forget this order!(忽略此订单!)”或“Cancel delivery!(取消派送!)”等消息(意指相同的事情但以不同的方式表达的消息)时用户想要什么。意图和属于意图的话语共同构成聊天机器人的训练语料库。通过用语料库训练模型,客户基本上可以将所述模型变成用于将最终用户输入解析成单个意图的参考工具。客户可以通过多轮意图测试和意图训练来提高聊天机器人的认知的敏锐度。
然而,构建可以基于用户话语确定最终用户的意图的聊天机器人在某种程度上是有挑战性的任务,这部分地是由于自然语言的微妙性和不明确性以及输入空间的维度(例如,可能的用户话语)和输出空间的大小(意图的数目)。这样,为了改善聊天机器人的性能和与聊天机器人的用户体验,可能需要训练、监测、调试和再训练聊天机器人。在传统系统中,提供了训练系统以用于在口语理解(SLU)和自然语言处理(NLP)中训练和再训练数字助理或聊天机器人的机器学习模型。传统上,用于聊天机器人系统的模型在NLP中使用针对任何意图“制造”的话语进行训练。例如,话语“Do you do price changes?(你做价格变动吗?)”可以用于训练聊天机器人系统的分类器模型,以将这种类型的话语分类为意图——“Do you offer a price match(你提供价格匹配吗)”。使用制造的话语来训练模型有助于最初训练聊天机器人系统以提供服务,然后一旦聊天机器人系统被部署并开始从用户那里获得真实话语,就可以重新训练聊天机器人系统。
作为针对话语的NLP处理的一部分,数字助理被训练成理解话语的含义,所述处理涉及识别对应于话语的一个或多个意图和一个或多个实体。数字助理中的实体提取具有两个阶段:经由命名实体识别器进行的命名实体识别和实体解析。这里解决的特定训练问题涉及到命名实体识别。实体可以被理解为名词,并且经常被称为词槽。实体通常是像日期、时间、城市、名称、品牌等,(本文中用作示例的几个常见实体是独立于领域的,被称为系统实体:PERSON(人物),NUMBER(数字),CURRENCY(货币),DATE_TIME(日期和时间);然而,应当理解,本公开不限于这些系统实体,也适用于任何实体类型,如复合实体、实体角色、实体列表等)。例如,对于旅行机器人,捕获出发城市、目的地、旅行方式、价格、日期和时间是界面的基础。然而,捕获实体对数字助理来说是一项艰巨的任务,因为用户在各种上下文以各种语言输入数据,而且是随机的,没有特定的顺序。以下表1示出了几个实体提取问题的输入(话语)和输出(实体)的示例:
表1
Figure BDA0003990824470000061
然而,捕获这些实体对于数字助理基于用户的意图采取行动是很重要的。
传统上,实体识别模型的训练从预先标记的数据开始。在监督式机器学习环境中,特别是在这个问题上,挑战的核心是缺乏足够的具有预先标记的数据的训练数据供模型学习。为数字助理构建稳健的命名实体识别模型所面临的更多具体挑战如下:(i)训练数据中缺乏对更多种类的CURRENCY符号的覆盖(支持不同的货币的条件);(ii)训练数据中缺乏对不同CURRENCY金额书写规定的覆盖(支持不同金额书写规定的条件);(iii)训练数据中缺乏具体的CURRENCY单位、组合话语数量(解决其中每种货币具有主要单位、次要单位的话语以及具有正确的主要单位、次要单位和金额格式的话语的条件);(iv)缺乏TIME_DATE具有简写格式的话语(解决简写(如将September 5(9月5日)简写为“Sep 5(9.5)”)的条件);以及(v)缺乏PERSON和NUMBER具有不同书写格式的话语(支持名称和数字的所有格式的条件)。任何机器学习模型只有在其进行训练的预先标记的训练数据良好时才表现良好。因此,训练数据的质量对模型的表现起决定性作用。
本文所述的系统实体相当普遍,并且因此有许多公开可用的数据集可供使用。但是公共预先标记数据所存在的问题是,公共预先标记数据不够多样化,无法训练模型来检测具有各种变化的实体(货币类型、数字格式、数据时间格式等)。获得标记的多样化数据的选项之一是亲自将带有标记的附加话语写入训练数据。另一种选项是将带有标记的附加话语的写入外包给自由职业者或致力于数据标记的公司。另一种选项是使用众包,这基本上是利用众包工人来扩大手工作业的规模。然而,这些方法对于使用许多聊天机器人系统的企业系统可能难以实施,这些系统使用多种语言针对许多不同的任务进行训练并且针对每个任务接收各种各样的话语(许多是非常短的话语)。在采用诸如这种的聊天机器人的系统中,需要以合成不可知的方式自动获得实体的多样性,以便为许多不同的聊天机器人快速高效地生成多种语言的大量训练数据语料库。
因此,需要不同的方法来解决这些问题。所开发的方法使用数据扩充技术来生成更多具有所有必要特征的话语,以获得实体的多样性,并训练模型来检测具有各种变化的实体。在各种实施例中,提供了一种方法,所述方法包括:由数据处理系统生成针对实体的要覆盖的值列表;由所述数据处理系统从具有所述实体的上下文的数据集中选择话语;由所述数据处理系统将所述话语转换为模板,其中,所述模板中的每个模板包括针对所述实体的映射到所述值列表的词槽;由所述数据处理系统从所述模板中选择模板;由所述数据处理系统基于所选模板内的词槽与针对所述实体的所述值列表之间的映射从所述值列表中选择值;以及由所述数据处理系统使用所述所选模板和所选值生成人工话语,其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中。
机器人和分析系统
机器人(也称为技能、聊天机器人、交谈机器人或谈话机器人)是可以执行与最终用户的会话的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用程序(application)对自然语言消息(例如,问题或评论)作出回应。企业可以使用一个或多个机器人系统通过消息传递应用程序与最终用户交流。消息传递应用程序(所述消息传递应用程序可以被称为通道)可以是最终用户已经安装并且熟悉的最终用户优选的消息传递应用程序。因此,为了与机器人系统聊天,最终用户不需要下载并安装新的应用程序。消息传递应用程序可以包括例如过顶(over-the-top,OTT)消息传递通道(如Facebook Messenger、Facebook WhatsApp、微信、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(如Amazon Dot、Echo或Show、Google Home、Apple HomePod等)、本地或混合扩展的移动和web应用程序扩展/具有聊天能力的响应式移动应用程序或web应用程序、或基于声音的输入(如具有使用Siri、微软小娜(Cortana)、谷歌之音(Google Voice)或用于交互的其他语音输入的界面的设备或应用程序)。
在一些示例中,机器人系统可以与统一资源标识符(URI)相关联。URI可以使用一串字符标识机器人系统。URI可以用作一个或多个消息传递应用程序系统的webhook(网络挂接)。URI可以包括例如统一资源定位符(URL)或统一资源名称(URN)。机器人系统可以被设计成从消息传递应用程序系统接收消息(例如,超文本传送协议(HTTP)post调用消息)。HTTP post调用消息可以涉及来自消息传递应用程序系统的URI。在一些实施例中,消息可以不同于HTTP post调用消息。例如,机器人系统可以从短消息服务(SMS)接收消息。虽然本文的讨论可以将机器人系统接收到的通信称作消息,但是应理解,消息可以是HTTP post调用消息、SMS消息或两个系统之间的任何其他类型的通信。
最终用户可以通过会话式交互(有时称为会话式用户接口(UI))与机器人系统交互,正如人之间的交互那样。在一些情况下,交互可以包括最终用户对机器人说“Hello(你好)”以及机器人用“Hi(嗨)”回应并询问最终用户机器人可以如何提供帮助。在一些情况下,交互还可以是与例如银行业机器人的交易式交互,如将钱从一个账户转移到另一个账户;与例如HR机器人的信息式交互,如检查假期结余;或与例如零售机器人的交互,如讨论退回已购商品或寻求技术支持。
在一些实施例中,机器人系统可以在没有与机器人系统的管理员或开发人员交互的情况下智能地处置最终用户交互。例如,最终用户可以向机器人系统发送一个或多个消息以便实现期望的目标。消息可以包括某种内容,如文本、表情符号、音频、图像、视频或传达消息的其他方法。在一些实施例中,机器人系统可以将内容转换成标准化形式(例如,利用适当的参数针对企业服务的表述性状态转移(REST)调用)并且生成自然语言回应。机器人系统还可以提示最终用户输入另外的输入参数或请求其他另外的信息。在一些实施例中,机器人系统还可以发起与最终用户的交流,而不是被动地回应最终用户话语。本文所描述的是用于识别机器人系统的显式调用并确定被调用的机器人系统的输入的各种技术。在某些实施例中,显式调用分析是由主机器人基于检测到话语中的调用名称而执行的。响应于检测到调用名称,话语可以被细化以供输入到与调用名称相关联的技能机器人。
与机器人的会话可以遵循包括多个状态的特定会话流。所述流可以基于输入来定义接下来会发生什么。在一些实施例中,可以使用包括用户定义的状态(例如,最终用户意图)和在状态中或状态之间要采取的动作的状态机来实施机器人系统。会话可以基于最终用户输入来采用不同的路径,这可能会影响机器人针对流作出的决定。例如,在每个状态下,基于最终用户输入或话语,机器人可以确定最终用户的意图以便确定要采取的下一个适当动作。如本文所使用的且在话语的上下文中,术语“意图”是指提供话语的用户的意图。例如,用户可以打算让机器人参与用于订购披萨的会话,使得用户的意图可以通过话语“Order pizza(订购披萨)”来表示。用户意图可以涉及用户希望聊天机器人代表用户执行的特定任务。因此,话语可以表达为反映用户的意图的问题、命令、请求等。意图可以包括最终用户想要完成的目标。
在聊天机器人的配置的上下中,本文所使用的术语“意图”是指用于将用户的话语映射到聊天机器人可以执行的特定任务/动作或特定种类的任务/动作的配置信息。为了区分话语的意图(即,用户意图)与聊天机器人的意图,本文中有时将后者称为“机器人意图”。机器人意图可以包括与意图相关联的一组一个或多个话语。例如,订购披萨的意图可以具有表达下订单购买披萨的期望的话语的各种排列。这些相关联的话语可以用于训练聊天机器人的意图分类器以使意图分类器能够随后确定来自用户的输入话语是否与订购披萨意图相匹配。机器人意图可以与用于启动与用户在某个状态中的会话的一个或多个对话流相关联。例如,针对订购披萨意图的第一消息可以是问题“What kind of pizza would youlike?(你想要哪种披萨?)”。除了相关联的话语之外,机器人意图可以进一步包括与意图有关的命名实体。例如,订购披萨意图可以包括用于执行订购披萨的任务的变量或参数,例如馅料1、馅料2、披萨类型、披萨大小、披萨数量等。实体的值通常是通过与用户交谈获得的。
图1是并入了根据某些实施例的聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,所述DABP使得DABP 102的用户能够创建并部署数字助理或聊天机器人系统。DABP 102可以用于创建一个或多个数字助理(或DA)或聊天机器人系统。例如,如图1所示,代表特定企业的用户104可以使用DABP 102来创建并部署用于特定企业的用户的数字助理106。例如,DABP 102可以被银行用来创建供银行的客户使用的一个或多个数字助理。多个企业可以使用同一个DABP 102平台来创建数字助理。作为另一示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建并部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
出于本公开的目的,“数字助理”是通过自然语言会话帮助数字助理的用户完成各种任务的实体。可以仅使用软件(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令实施的数字实体)、使用硬件、或使用硬件和软件的组合来实施数字助理。数字助理可以在如计算机、移动电话、手表、器具、车辆等各种物理系统或设备中体现或实施。数字助理有时也称为聊天机器人系统。因此,出于本公开的目的,术语数字助理和聊天机器人系统是可互换的。
数字助理(如使用DABP 102构建的数字助理106)可以用于经由数字助理与其用户108之间基于自然语言的会话来执行各种任务。作为会话的一部分,用户可以向数字助理106提供一个或多个用户输入110并从数字助理106获得返回的回应112。会话可以包括输入110和回应112中的一个或多个。经由这些会话,用户可以请求由数字助理执行一个或多个任务,并且作为回应,数字助理被配置为执行用户请求的任务并以适当的回应来回应用户。
用户输入110通常呈自然语言的形式并且被称为话语。用户话语110可以是文本形式,如当用户键入句子、问题、文本片段或甚至单个单词并将其作为输入提供给数字助理106时。在一些实施例中,用户话语110可以是音频输入或语音的形式,如当用户讲出或说出某些内容作为输入提供给数字助理106时。话语通常呈用户108说出的语言的形式。例如,话语可以是英语或某种其他语言。当话语呈语音形式时,将语音输入转换成该特定语言的文本形式的话语,并且然后由数字助理106来处理文本话语。可以使用各种语音到文本处理技术将语音或音频输入转换成文本话语,所述文本话语然后由数字助理106来处理。在一些实施例中,语音到文本的转换可以由数字助理106自身完成。
话语(其可以是文本话语或语音话语)可以是片段、一个句子、多个句子、一个或多个单词、一个或多个问题、上述类型的组合等。数字助理106被配置为将自然语言理解(NLU)技术应用于话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106被配置成执行用于理解话语的含义的处理,所述处理涉及识别对应于话语的一个或多个意图和一个或多个实体。在理解话语的含义后,数字助理106可以响应于理解的含义或意图来执行一个或多个动作或操作。出于本公开的目的,假设这些话语是已经由数字助理106的用户108直接提供的文本话语,或者是将输入语音话语转换为文本形式的结果。然而,这并不旨在以任何方式进行限制或约束。
例如,用户108的输入可以通过提供如“I want to order a pizza(我想要订购披萨)”的话语来请求订购披萨。在接收到这种话语之后,数字助理106被配置为理解话语的含义并采取适当的动作。适当的动作可以涉及例如以请求关于用户期望订购的披萨的类型、披萨的大小、披萨的任何浇头等用户输入的问题来回应用户。由数字助理106提供的回应也可以是自然语言形式,并且通常以与输入话语相同的语言。作为生成这些回应的一部分,数字助理106可以执行自然语言生成(NLG)。为了用户能够经由用户与数字助理106之间的会话来订购披萨,数字助理可以引导用户提供用于披萨订购的所有必要信息,并且然后在会话结束时使披萨被订购。数字助理106可以通过向用户输出指示已经订购披萨的信息来结束会话。
在概念层级上,数字助理106响应于从用户接收的话语执行各种处理。在一些实施例中,该处理涉及一系列处理步骤或处理步骤流水线,包括例如理解输入话语的含义(有时称为自然语言理解(NLU)、确定响应于话语而要执行的动作、在适当的情况下使动作被执行、响应于用户话语生成要输出到用户的回应、向用户输出回应等。NLU处理可以包括对所接收的输入话语进行语法分析以理解话语的结构和含义、细化并重新形成所述话语以开发出所述话语的更好的可理解形式(例如,逻辑形式)或结构。生成回应可以包括使用NLG技术。
数字助理(如数字助理106)执行的NLU处理可以包括如句子语法分析(例如,标记化、按屈折变化形式进行归类、识别句子的词性标签、识别句子中的命名实体、生成依存树来表示句子结构、将句子分成子句、分析单独的子句、解析指代、执行组块等)等各种NLP有关处理。在某些实施例中,NLU处理或其部分是由数字助理106自身执行的。在一些其他实施例中,数字助理106可以使用其他资源来执行NLU处理的部分。例如,可以通过使用语法分析器、词性标记器和/或命名实体识别器处理句子来识别输入话语句子的句法和结构。在一种实施方式中,针对英语语言,使用由斯坦福自然语言处理(NLP)小组提供的语法分析器、词性标记器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福CoreNLP工具包的一部分提供的。
虽然本公开中提供的各个示例示出了英语语言的话语,但是这仅意味着作为示例。在某些实施例中,数字助理106还能够处置除英语以外的语言的话语。数字助理106可以提供被配置用于针对不同语言执行处理的子系统(例如,实施NLU功能的部件)。这些子系统可以实施为可以使用服务调用从NLU核心服务器调用的可插单元。这使NLU处理对于每种语言而言是灵活且可扩展的,包括允许不同的处理顺序。可以为单独的语言提供语言包,其中,语言包可以登记可从NLU核心服务器提供服务的子系统的列表。
可以通过各种不同的通道(如但不限于经由某些应用程序、经由社交媒体平台、经由各种消息传递服务和应用程序、以及其他应用程序或通道)使数字助理(如图1中描绘的数字助理106)对其用户108而言是可用的或可访问的。单个数字助理可以为自身配置几个通道,使得单个数字助理可以同时在不同的服务上运行并通过不同的服务进行访问。
数字助理或聊天机器人系统通常包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是被配置为与用户交互并完成特定类型的任务(如跟踪库存、提交时间卡、创建费用报告、订购食物、查询银行账户、进行预约、购买小部件等)的单独的聊天机器人(称为技能机器人)。例如,针对图1所描绘的实施例,数字助理或聊天机器人系统106包括技能116-1、116-2等。出于本公开的目的,术语“技能(skill)”和“技能(skills)”分别与术语“技能机器人(skill bot)”和“技能机器人(skill bots)”同义地使用。
与数字助理相关联的每个技能通过与用户的会话帮助数字助理的用户完成任务,其中,所述会话可以包括由用户提供的文本或音频输入与由技能机器人提供的回应的组合。这些回应可以呈以下形式:给用户的文本或音频消息和/或使用呈现给用户以供用户进行选择的简单的用户界面元素(例如,选择列表)。
存在各种方法可以将技能或技能机器人与数字助理相关联或将其添加到数字助理。在一些实例中,可以由企业开发技能机器人,并且然后将其添加到使用DABP 102的数字助理。在其他实例中,可以使用DABP 102开发并创建技能机器人,并且然后将其添加到使用DABP 102创建的数字助理。在又其他实例中,DABP 102提供在线数字商店(称为“技能商店”),所述在线数字商店提供涉及各种各样的任务的多个技能。通过技能商店提供的技能还可以公开(expose)各种云服务。为了将技能添加到使用DABP 102生成的数字助理,DABP102的用户可以经由DABP 102访问技能商店、选择所需的技能、并指示将所选技能添加到使用DABP 102创建的数字助理。来自技能商店的技能可以按原样或以修改的形式添加到数字助理(例如,DABP 102的用户可以选择并复制技能商店提供的特定技能机器人、对所选技能机器人进行定制或修改并且然后将修改后的技能机器人添加到使用DABP 102创建的数字助理)。
可以使用各种不同的架构来实施数字助理或聊天机器人系统。例如,在某些实施例中,使用DABP 102创建并部署的数字助理可以使用主机器人/次(或子)机器人范式或架构来实施。根据该范式,数字助理被实施为与是技能机器人的一个或多个次机器人交互的主机器人。例如,在图1所描绘的实施例中,数字助理106包括主机器人114和是主机器人114的次机器人的技能机器人116-1、116-2等。在某些实施例中,数字助理106自身被认为充当主机器人。
根据主-次机器人架构实施的数字助理使数字助理的用户能够通过统一用户接口(即,经由主机器人)与多个技能交互。当用户与数字助理接洽时,主机器人会接收到用户输入。然后,主机器人执行用于确定用户输入话语的含义的处理。然后,主机器人确定用户的话语中所请求的任务是否可以由主机器人自身来处置,否则,主机器人选择用于处置用户请求的适当技能机器人并将会话路由到所选技能机器人。这使用户能够通过公共的单个接口与数字助理进行会话,并且仍然有能力使用被配置为执行特定任务的几个技能机器人。例如,针对为企业开发的数字助理,数字助理的主机器人可以与具有特定功能的技能机器人接口连接,这些技能机器人比如用于执行与客户关系管理(CRM)有关的功能的CRM机器人、用于执行与企业资源规划(ERP)有关的功能的ERP机器人、用于执行与人力资本管理(HCM)有关的功能的HCM机器人等。这样,数字助理的最终用户或消费者只需要知道如何通过公共的主机器人接口访问数字助理,而在后台提供了多个技能机器人来处置用户请求。
在某些实施例中,在主机器人/次机器人基础设施中,主机器人被配置为了解可用技能机器人的列表。主机器人可以访问标识了各种可用技能机器人的元数据,并且针对每个技能机器人,技能机器人的能力包括可以由技能机器人执行的任务。在接收到话语形式的用户请求之后,主机器人被配置为从多个可用技能机器人中识别或预测可以最好地服务或处置用户请求的特定技能机器人。然后,主机器人将话语(或话语的一部分)路由到该特定技能机器人以进行进一步的处置。因此,控制从主机器人流动到技能机器人。主机器人可以支持多个输入通道和输出通道。
虽然图1的实施例示出了数字助理106包括主机器人114以及技能机器人116-1、116-2和116-3,但这并不旨在是限制性的。数字助理可以包括提供数字助理的功能的各种其他部件(例如,其他系统和子系统)。这些系统和子系统可以仅以软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)、仅以硬件或在使用软件和硬件的组合的实施方式中实施。
DABP 102提供了使DABP 102的用户能够创建数字助理(包括与数字助理相关联的一个或多个技能机器人)的基础设施以及各种服务和特征。在一些实例中,可以通过克隆现有技能机器人来创建技能机器人,例如,克隆由技能商店提供的技能机器人。如前所述,DABP 102提供技能商店或技能目录,所述技能商店或技能目录提供了用于执行各种任务的多个技能机器人。DABP 102的用户可以从技能商店克隆技能机器人。根据需要,可以对克隆的技能机器人进行修改或定制。在一些其他实例中,DABP 102的用户使用由DABP 102提供的工具和服务从头开始创建技能机器人。如前所述,DABP 102所提供的技能商店或技能目录可以提供用于执行各种任务的多个技能机器人。
在某些实施例中,在高层级上,创建或定制技能机器人涉及以下步骤:
(1)为新技能机器人配置设置
(2)为技能机器人配置一个或多个意图
(3)针对一个或多个意图配置一个或多个实体
(4)训练技能机器人
(5)为技能机器人创建对话流
(6)根据需要将自定义部件添加到技能机器人
(7)测试并部署技能机器人
下文简要描述了上述每个步骤。
(1)为新技能机器人配置设置——可以针对技能机器人配置各种设置。例如,技能机器人设计者可以为正在创建的技能机器人指定一个或多个调用名称。然后,这些调用名称可以被数字助理的用户用来显式调用技能机器人。例如,用户可以在用户话语中输入调用名称,以显式调用对应的技能机器人。
(2)为技能机器人配置一个或多个意图和相关联的示例话语——技能机器人设计者为正在创建的技能机器人指定一个或多个意图(也称为机器人意图)。然后基于这些指定的意图来训练技能机器人。这些意图代表技能机器人被训练以针对输入话语推断出的类别或分类。在接收到话语之后,经训练的技能机器人会推断出所述话语的意图,其中,所推断出的意图是从用于训练技能机器人的预定义的意图集中选择的。然后,技能机器人基于针对该话语推断出的意图采取适当的动作以对话语作出回应。在一些实例中,技能机器人的意图代表技能机器人可以为数字助理的用户执行的任务。每个意图被赋予一个意图标识符或意图名称。例如,对于针对银行训练的技能机器人,为所述技能机器人指定的意图可以包括“CheckBalance(查询余额)”、“TransferMoney(转账)”、“DepositCheck(存款查询)”等。
对于为技能机器人定义的每个意图,技能机器人设计者还可以提供一个或多个示例话语,这些示例话语代表并说明了意图。这些示例话语旨在表示用户可以针对该意图向技能机器人输入的话语。例如,针对CheckBalance意图,示例话语可以包括“What's mysavings account balance?(我的储蓄账户余额是多少?)”、“How much is in mychecking account?(我的活期存款账户里有多少钱?)”、“How much money do I have inmy account(我的账户里有多少钱)”等。因此,可以将典型的用户话语的各种排列指定为意图的示例话语。
这些意图及其相关联的示例话语用作用于训练技能机器人的训练数据。可以使用各种不同的训练技术。作为该训练的结果,生成预测模型,所述预测模型被配置为将话语作为输入并输出所述预测模型针对所述话语推断出的意图。在一些实例中,将输入话语提供给意图分析引擎,所述引擎被配置为使用经训练的模型来预测或推断输入话语的意图。然后,技能机器人可以基于推断出的意图采取一个或多个动作。
(3)针对技能机器人的一个或多个意图配置实体——在一些实例中,可能需要另外的上下文来使技能机器人能够适当地回应用户话语。例如,可能存在其中用户输入话语解析成技能机器人中的相同意图的情况。例如,在以上示例中,话语“What’s my savingsaccount balance?”和“How much is in my checking account?”均解析成相同的CheckBalance意图,但是这些话语是请求不同事情的不同请求。为了阐明这种请求,将一个或多个实体添加到意图。使用银行业技能机器人的示例,被称为账户类型(AccountType)的实体(所述实体定义了被称为“checking(活期存款)”和“saving(储蓄)”的值)可以使技能机器人能够对用户请求进行语法分析并适当地作出回应。在上面的示例中,虽然这些话语解析为相同的意图,但是这两个话语的与AccountType实体相关联的值是不同的。这使技能机器人能够针对这两个话语执行可能不同的动作,尽管这两个话语解析为相同的意图。可以针对为技能机器人配置的某些意图指定一个或多个实体。因此,实体用于将上下文添加到意图自身。实体帮助更充分地描述意图并使技能机器人能够完成用户请求。
在某些实施例中,有两种类型的实体:(a)DABP 102提供的内置实体;以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以与各种机器人一起使用的通用实体。内置实体的示例包括但不限于与时间、日期、地址、数字、电子邮件地址、持续时间、循环时间段、货币、电话号码、URL等有关的实体。自定义实体用于更多定制的应用程序。例如,针对银行业技能,AccountType实体可以被技能机器人设计者定义为通过检查用户输入的关键字(如活期存款、储蓄、信用卡等)来实现各种银行业交易。
(4)训练技能机器人——技能机器人被配置成接收呈话语形式的用户输入,语法分析或以其他方式处理接收到的输入并且识别或选择与接收到的用户输入相关的意图。如以上所指示的,为此,必须对技能机器人进行训练。在某些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入话语解析成其所配置的意图中的一个意图。在某些实施例中,技能机器人使用预测模型,所述预测模型是使用训练数据训练的并且允许技能机器人辨别用户说出(或者在一些情况下,正试图说出)的内容。DABP 102提供可以被技能机器人设计者用于训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或其组合。在某些实施例中,训练数据的一部分(例如,80%)用于训练技能机器人模型并且另一部分(例如,其余20%)用于测试或验证模型。一旦进行了训练,经训练的模型(有时也称为经训练的技能机器人)便可以用于处置用户的话语并对用户的话语作出回应。在某些情况下,用户的话语可以是仅需要单一的回答并且无需另外的会话的问题。为了处置这种情况,可以为技能机器人定义Q&A(问与答)意图。这使技能机器人能够在不必更新对话框定义的情况下输出对用户请求的回复。Q&A意图是以与常规意图类似的方式创建的。用于Q&A意图的对话流可能与用于常规意图的对话流不同。
(5)为技能机器人创建对话流——为技能机器人指定的对话流描述了在响应于接收到的用户输入来解析技能机器人的不同意图时,技能机器人如何反应。对话流定义了技能机器人将采取的操作或动作,例如,技能机器人如何回应用户话语、技能机器人如何提示用户进行输入、技能机器人如何返回数据。对话流像技能机器人所遵循的流程图一样。技能机器人设计者使用如markdown语言等语言指定对话流。在某些实施例中,可以使用被称为OBotML的YAML版本来指定技能机器人的对话流。针对技能机器人的对话流定义充当会话自身的模型,所述模型是使技能机器人设计者精心策划技能机器人与技能机器人所服务的用户之间的交互的模型。
在某些实施例中,技能机器人的对话流定义包含以下三个部分:
(a)上下文部分
(b)默认转变部分
(c)状态部分
上下文部分——技能机器人设计者可以在上下文部分中定义会话流中使用的变量。可以在上下文部分中命名的其他变量包括但不限于:针对错误处置的变量、针对内置实体或自定义实体的变量、使技能机器人能够识别并保存用户偏好的用户变量等。
默认转变部分——技能机器人的转变可以在对话流状态部分中或在默认转变部分中定义。在默认转变部分中定义的转变充当后备并且当状态内没有定义适用的转变或触发状态转变所需的条件无法得到满足时被触发。默认转变部分可以用于定义允许技能机器人得体地处置出乎意料的用户动作的路由。
状态部分——对话流及其有关操作被定义为管理对话流内的逻辑的暂时状态的序列。对话流定义内的每个状态节点都命名一个部件,所述部件提供所述对话中的那个时候所需的功能。因此,状态是围绕部件构建的。状态包含特定于部件的性质并且定义了在部件执行之后被触发的向其他状态的转变。
特殊情况场景可以使用状态部分来处置。例如,您有时可能想要为用户提供这样的选项:暂时让用户离开与之接洽的第一技能而进行数字助理内的第二技能中的事情。例如,如果用户忙于与购物技能进行会话(例如,用户已做出一些购买选择),则用户可能想要跳转至银行业技能(例如,用户可能想要确保他/她有足够的钱用于购买)并且然后返回到购物技能以完成用户的订单。为了解决这一点,第一技能中的动作可以被配置成发起与相同数字助理中的第二不同技能的交互并且然后返回到原始流。
(6)将自定义部件添加到技能机器人——如上文所描述的,技能机器人的对话流中指定的状态对对应于状态提供所需的功能的部件进行了命名。部件使技能机器人能够执行功能。在某些实施例中,DABP 102提供了用于执行各种各样的功能的一组预先配置的部件。技能机器人设计者可以选择这些预先配置的部件中的一个或多个并且将其与技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用DABP 102提供的工具创建自定义部件或新的部件并且将自定义部件与技能机器人的对话流中的一个或多个状态相关联。
(7)测试并部署技能机器人——DABP 102提供了使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后,可以将技能机器人部署并包括在数字助理中。
虽然以上描述描述了如何创建技能机器人,但是还可以使用类似的技术来创建数字助理(或主机器人)。在主机器人或数字助理层级,可以为数字助理配置内置系统意图。这些内置系统意图用于标识在不调用与数字助理相关联的技能机器人的情况下数字助理自身(即,主机器人)可以处置的一般任务。针对主机器人定义的系统意图的示例包括:(1)Exit(退出):当用户发出想要退出数字助理中的当前会话或上下文的信号时适用;(2)Help(帮助):当用户请求帮助或定向时适用;以及(3)UnresolvedIntent(未解析意图):适用于与退出意图和帮助意图不太匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。该信息使主机器人能够选择用于处置话语的特定技能机器人。
在主机器人或数字助理层级,当用户向数字助理输入短语或话语时,数字助理被配置为执行用于确定如何路由话语和相关会话的处理。数字助理使用路由模型来确定这一点,所述路由模型可以是基于规则的、基于AI的或其组合。数字助理使用路由模型来确定对应于用户输入话语的会话是要被路由到特定技能以进行处置、要由数字助理或主机器人自身按照内置系统意图进行处置、还是要被处置为当前会话流中的不同状态。
在某些实施例中,作为此处理的一部分,数字助理确定用户输入话语是否使用其调用名称显式地标识技能机器人。如果调用名称存在于用户输入中,则所述调用名称被视为对应于调用名称的对技能机器人的显式调用。在这种场景下,数字助理可以将用户输入路由到显式调用的技能机器人以进行进一步处置。在某些实施例中,如果不存在特定调用或显式调用,则数字助理评估接收到的用户输入话语并针对与数字助理相关联的系统意图和技能机器人计算置信度得分。针对技能机器人或系统意图计算的得分表示用户输入代表技能机器人被配置为执行的任务或代表系统意图的可能性有多大。选择相关联的计算的置信度得分超过阈值(例如,置信度阈值路由参数)的任何系统意图或技能机器人作为候选以进行进一步的评估。然后,数字助理从所识别的候选中选择特定的系统意图或技能机器人用于对用户输入话语进行进一步的处置。在某些实施例中,在一个或多个技能机器人被识别为候选之后,对与那些候选技能相关联的意图进行评估(根据每个技能的意图模型)并且针对每个意图确定置信度得分。置信度得分超过阈值(例如,70%)的任何意图通常均被视为候选意图。如果选择了特定技能机器人,则将用户话语路由到该技能机器人以进行进一步的处理。如果选择了系统意图,则由主机器人自身根据所选系统意图执行一个或多个动作。
图2是根据某些实施例的主机器人(MB)系统200的简化框图。MB系统200可以仅以软件、仅以硬件、或以硬件和软件的组合实施。MB系统200包括预处理子系统210、多个意图子系统(MIS)220、显式调用子系统(EIS)230、技能机器人调用器240和数据存储250。图2所描绘的MB系统200仅仅是主机器人中的部件布置的示例。本领域普通技术人员将认识到许多可能的变型、替代方案和修改。例如,在一些实施方式中,MB系统200可以具有比图2所示的那些系统或部件更多或更少的系统或部件,可以组合两个或更多个子系统,或者可以具有不同的子系统配置或布置。
预处理子系统210从用户接收话语“A”202并通过语言检测器212、语言语法分析器214和命名实体识别器216来处理话语。如上所述,可以以包括音频或文本的各种方式来提供话语。话语202可以是句子片段、完整句子、多个句子等。话语202可以包括标点符号。例如,如果话语202作为音频提供,则预处理子系统210可以使用将标点符号(例如,逗号、分号、句号等)插入到结果文本中的语音文本转换器(未示出)来将音频转换为文本。
语言检测器212基于话语202的文本来检测话语202的语言。话语202的处置方式取决于语言,因为每种语言都有其自己的语法和语义。在分析话语的句法和结构时,会考虑语言之间的差异。
语言语法分析器214对话语202进行语法分析以提取话语202中各个语言单元(例如,单词)的词性(POS)标签。POS标签包括例如名词(NN)、代词(PN)、动词(VB)等。语言语法分析器214还可以对话语202的语言单位进行标记化(例如,将每个单词转换为单独的记号)并对单词按屈折变化形式进行归类。词元(lemma)是如在字典中表示的一组单词的主要形式(例如,“run”是run、runs、ran、running等的词元)。语言语法分析器214可以执行的其他类型的预处理包括复合表达式的组块,例如,将“credit(信用)”和“card(卡)”组合成单个表达式“credit_card(信用卡)”。语言语法分析器214还可以识别话语202中的单词之间的关系。例如,在一些实施例中,语言语法分析器214生成依存树,所述依存树指示话语的哪一部分(例如,特定名词)是直接宾语、话语的哪一部分是介词等。
命名实体识别器216将文本(例如,话语)中的命名实体识别和分类为预定义类别,诸如人物、组织、地点、时间表达式、货币、通用资源语言地址等。身份识别涉及检测构成预定义实体的一个单词或一串单词。例如,每个单词代表一个记号(token):“太平洋(ThePacific Ocean)”是由三个记号组成的字符串,其代表一个实体。在一些实例中,为了促进实体识别,可以使用内部-外部-开始标记法来指示实体开始和结束的位置。然后,可以将所识别的实体中的每一个分类到预定义类别中。例如,命名实体识别机器学习模型可能会检测到文本字符串中的单词“Oracle”,将该单词识别为一个实体,并将其分类为“公司”。为了学习什么是、什么不是相关实体以及如何对其进行归类,由命名实体识别器216实施的命名实体识别机器学习模型在训练数据语料库上进行训练。训练数据与任务或技能的相关性越大,每个模型在完成任务或技能的命名实体识别方面就越准确。一旦定义了实体和类别,实体和类别就可以用来标记数据并创建训练数据集(在一些实例中,命名实体识别数据程序可以自动完成这个工作)。然后,训练数据集可以用于训练一个或多个算法,以便对新出现的话语中的实体和类别进行预测性的文本标记。
由语言检测器212、语言语法分析器214和命名实体识别器216执行的处理的结果形成提取的信息205,并与话语202本身一起作为输入提供给MIS 220。
如上所述,话语202可以包括多于一个句子。为了检测多个意图和显式调用的目的,话语202可以被视为单个单元,即使它包括多个句子。然而,在某些实施例中,预处理可以例如由预处理子系统210执行,以识别多个句子中的单个句子以用于多个意图分析和显式调用分析。通常,无论话语202是在单个句子的级别上处理还是作为包括多个句子的单个单元处理,MIS 220和EIS 230产生的结果都基本相同。
MIS 220确定话语202是否表示多个意图。尽管MIS 220可以检测到话语202中存在多个意图,但MIS 220执行的处理不涉及确定话语202的意图是否与已为机器人配置的任何意图相匹配。相反,确定话语202的意图是否与机器人意图相匹配的处理可以由MB系统200的意图分类器242或(例如,如图3的实施例中所示的)技能机器人的意图分类器执行。MIS220执行的处理假设存在可以处置话语202的机器人(例如,特定技能机器人或主机器人本身)。因此,由MIS 220执行的处理不需要知道聊天机器人系统中有哪些机器人(例如,向主机器人注册的技能机器人的身份),也不需要知道已经为特定机器人配置了什么意图。
为了确定话语202包括多个意图,MIS 220应用数据存储250中的一组规则252中的一个或多个规则。应用于话语202的规则取决于话语202的语言并且可以包括指示存在多个意图的句子模式。例如,句子模式可以包括连接句子的两个部分(例如,连词)的并列连接词,其中这两个部分对应于不同的意图。如果话语202与句子模式相匹配,则可以推断出话语202表示多个意图。应该注意的是,具有多个意图的话语不一定具有不同的意图(例如,涉及不同机器人的意图或同一机器人内的不同意图)。相反,话语可以有相同意图的不同实例,例如“Place a pizza order using payment account X,then place a pizza orderusing payment account Y(使用支付账户X下披萨订单,然后使用支付账户Y下披萨订单)”。
作为确定话语202表示多个意图的一部分,MIS 220还确定话语202的哪些部分与每个意图相关联。MIS 220针对包含多个意图的话语中所表示的每个意图构建用于单独处理的新话语来代替原始话语,例如,如图2中所描绘的话语“B”206和话语“C”208。因此,原始话语202可以被分成两个或更多个单独的话语,每次处置一个。MIS 220使用提取的信息205和/或根据对话语202本身的分析来确定应该首先处置两个或更多个话语中的哪一个。例如,MIS 220可以确定话语202包含指示应该首先处置特定意图的标记词。与该特定意图相对应的新形成的话语(例如,话语206或话语208中的一个)将首先被发送以供EIS 230进一步处理。在由第一个话语触发的会话已经结束(或已被暂时暂停)之后,然后可以将下一个最高优先级的话语(例如,话语206或话语208中的另一个话语)发送到EIS 230进行处理。
EIS 230确定其接收的话语(例如,话语206或话语208)是否包含技能机器人的调用名称。在某些实施例中,聊天机器人系统中的每个技能机器人被指派唯一的调用名称,所述调用名称将技能机器人与聊天机器人系统中的其他技能机器人区分开来。调用名称列表可以作为技能机器人信息254的一部分保存在数据存储250中。当话语包含与调用名称相匹配的单词时,话语被视为显式调用。如果机器人未被显式调用,则EIS 230接收到的话语被视为是非显式调用话语234并且被输入到主机器人的意图分类器(例如,意图分类器242)以确定使用哪个机器人来处置话语。在一些实例中,意图分类器242将确定主机器人应该处置非显式调用话语。在其他实例中,意图分类器242将确定将话语路由到以进行处置的技能机器人。
EIS 230所提供的显式调用功能有几个优点。它可以减少主机器人不得不执行的处理量。例如,当存在显式调用时,主机器人可能不必(例如,使用意图分类器242)进行任何意图分类分析,或者可能不得不进行简化的意图分类分析以选择技能机器人。因此,显式调用分析可以在不借助意图分类分析的情况下实现对特定技能机器人的选择。
而且,可能存在多个技能机器人之间的功能重叠的情况。例如,如果两个技能机器人处置的意图重叠或彼此非常接近,则可能会发生这种情况。在这种情况下,主机器人可能难以仅基于意图分类分析来识别要选择多个技能机器人中的哪一个。在这种场景下,显式调用使得对于要使用的特定技能机器人没有歧义。
除了确定话语是显式调用之外,EIS 230还负责确定是否应该将话语的任何部分用作对被显式调用的技能机器人的输入。具体地,EIS 230可以确定话语的一部分是否与调用无关。EIS 230可以通过分析话语和/或分析提取的信息205来执行该确定。EIS 230可以将与调用无关的话语部分发送到被调用的技能机器人,而不是发送EIS 230所接收到的整个话语。在一些实例中,被调用的技能机器人的输入简单地通过删除与调用相关联的任何话语部分来形成。例如,“I want to order pizza using Pizza Bot(我想使用披萨机器人来订购披萨)”可以缩短为“I want to order pizza”,因为“using Pizza Bot”与披萨机器人的调用相关,但与要由披萨机器人执行的任何处理无关。在一些实例中,EIS 230可以重新格式化要发送到被调用机器人的部分,例如,以形成完整的句子。因此,EIS 230不仅确定存在显式调用,而且当存在显式调用时确定向技能机器人发送什么。在一些实例中,可能没有任何文本可以输入到被调用的机器人中。例如,如果话语是“Pizza Bot”,则EIS 230可以确定披萨机器人正在被调用,但没有要由披萨机器人处理的文本。在这样的场景下,EIS230可以向技能机器人调用器240指示没有要发送的内容。
技能机器人调用器240以各种方式调用技能机器人。例如,技能机器人调用器240可以响应于接收到作为显式调用的结果已经选择特定技能机器人的指示235来调用机器人。指示235可以由EIS 230连同显式调用的技能机器人的输入一起发送。在这种场景下,技能机器人调用器240会将会话的控制权交给显式调用的技能机器人。显式调用的技能机器人将通过将输入视为独立话语来确定对来自EIS 230的输入的适当回应。例如,回应可以是执行特定动作或在特定状态下开始新会话,其中新会话的初始状态取决于从EIS 230发送的输入。
技能机器人调用器240可以调用技能机器人的另一种方式是通过使用意图分类器242进行隐式调用。可以使用机器学习和/或基于规则的训练技术来训练意图分类器242,以确定话语代表特定技能机器人被配置为执行的任务的可能性。意图分类器242在不同的分类上进行训练,每个技能机器人一个分类。例如,每当向主机器人注册新技能机器人时,与新技能机器人相关联的示例话语列表可以用于训练意图分类器242以确定特定话语代表新技能机器人可以执行的任务的可能性。作为该训练的结果产生的参数(例如,机器学习模型的一组参数值)可以存储为技能机器人信息254的一部分。
在某些实施例中,意图分类器242是使用机器学习模型实施的,如本文进一步详细描述的。机器学习模型的训练可以涉及输入来自与各种技能机器人相关联的示例话语的至少一个话语子集,以生成关于哪个机器人是用于处置任何特定训练话语的正确机器人的推断作为机器学习模型的输出。对于每个训练话语,可以提供用于训练话语的正确机器人的指示作为基本事实信息。然后可以适配机器学习模型的行为(例如,通过反向传播)以最小化所生成的推断与基本事实信息之间的差异。
在某些实施例中,意图分类器242针对向主机器人注册的每个技能机器人确定指示技能机器人可以处置话语(例如,从EIS 230接收的非显式调用话语234)的可能性的置信度得分。意图分类器242还可以确定已配置的每个系统级意图(例如,帮助、退出)的置信度得分。如果特定置信度得分满足一个或多个条件,则技能机器人调用器240将调用与特定置信度得分相关联的机器人。例如,可能需要满足阈值置信度得分值。因此,意图分类器242的输出245是对系统意图的识别或对特定技能机器人的识别。在一些实施例中,除了满足阈值置信度得分值之外,置信度得分必须超过下一个最高置信度得分一定的裕量。当多个技能机器人的置信度得分均超过阈值置信度得分值时,施加这样的条件将能够使得路由到特定技能机器人。
在基于置信度得分的评估识别出机器人之后,技能机器人调用器240将处理移交给所识别的机器人。在系统意图的情况下,所识别的机器人是主机器人。否则,所识别的机器人是技能机器人。进一步地,技能机器人调用器240将确定提供什么作为所识别的机器人的输入247。如上所述,在显式调用的情况下,输入247可以基于与调用无关的话语部分,或者输入247可以是什么都没有(例如,空字符串)。在隐式调用的情况下,输入247可以是整个话语。
数据存储250包括一个或多个计算设备,其存储由主机器人系统200的各种子系统使用的数据。如以上所解释的数据存储250包括规则252和技能机器人信息254。规则252包括例如用于由MIS 220确定话语何时表示多个意图以及如何分割表示多个意图的话语的规则。规则252进一步包括用于由EIS 230确定要将显式调用技能机器人的话语的哪些部分发送到技能机器人的规则。技能机器人信息254包括聊天机器人系统中的技能机器人的调用名称,例如,通过特定主机器人注册的所有技能机器人的调用名称的列表。技能机器人信息254还可以包括意图分类器242用来确定聊天机器人系统中每个技能机器人的置信度得分的信息,例如机器学习模型的参数。
图3是根据某些实施例的技能机器人系统300的简化框图。技能机器人系统300是可以仅以软件实施、仅以硬件实施、或以硬件和软件的组合实施的计算系统。在某些实施例中,如图1所描绘的实施例中,技能机器人系统300可以用于在数字助理内实施一个或多个技能机器人。
技能机器人系统300包括MIS 310、意图分类器320和会话管理器330。MIS 310类似于图2中的MIS 220并提供类似的功能,包括可操作地使用数据存储350中的规则352来确定:(1)话语是否代表多个意图,以及如果是,(2)如何将话语拆分为针对多个意图中的每个意图的单独话语。在某些实施例中,由MIS 310应用的用于检测多个意图和用于分割话语的规则与MIS 220所应用的规则相同。MIS 310接收话语302和提取的信息304。提取的信息304类似于图2中的提取的信息205,并且可以使用语言检测器212、语言语法分析器214和/或命名实体识别器216、或技能机器人系统300本地的语言检测器、语言语法分析器和/或命名实体识别器来生成。
意图分类器320可以以与以上结合图2的实施例讨论的意图分类器242类似的方式被训练,并在此进一步详细描述。例如,在某些实施例中,意图分类器320是使用机器学习模型来实施的。针对特定技能机器人,使用与该特定技能机器人相关联的示例话语的至少一个子集作为训练话语来训练意图分类器320的机器学习模型。每个训练话语的基本事实将是与训练话语相关联的特定机器人意图。
话语302可以直接从用户接收或通过主机器人提供。当通过主机器人提供话语302时,例如,作为通过图2中描绘的实施例中的MIS 220和EIS 230处理的结果,可以绕过MIS310以避免重复已经由MIS 220执行的处理。然而,如果直接从用户接收到话语302,例如,在路由到技能机器人之后发生的会话期间,则MIS 310可以处理话语302以确定话语302是否代表多个意图。如果是,则MIS 310应用一个或多个规则以将话语302拆分为针对每个意图的单独话语,例如话语“D”306和话语“E”308。如果话语302不代表多个意图,则MIS 310将话语302转发到意图分类器320以进行意图分类,而不拆分话语302。
意图分类器320被配置为将接收到的话语(例如,话语306或308)与同技能机器人系统300相关联的意图相匹配。如以上所解释的,技能机器人可以配置有一个或多个意图,每个意图包括与该意图相关联并用于训练分类器的至少一个示例话语。在图2的实施例中,主机器人系统200的意图分类器242被训练以确定各个技能机器人的置信度得分和针对系统意图的置信度得分。类似地,可以训练意图分类器320以确定针对与技能机器人系统300相关联的每个意图的置信度得分。由意图分类器242执行的分类是在机器人级别,而由意图分类器320执行的分类是在意图级别并且因此更细粒度。意图分类器320可以访问意图信息354。对于与技能机器人系统300相关联的每个意图,意图信息354包括代表意图并说明意图的含义并且通常与可由该意图执行的任务相关联的话语列表。意图信息354可以进一步包括作为在该话语列表上进行训练的结果而产生的参数。
会话管理器330接收特定意图的指示322作为意图分类器320的输出,所述指示由意图分类器320识别为与输入到意图分类器320的话语最佳匹配。在一些实例中,意图分类器320不能确定任何匹配。例如,如果话语涉及系统意图或不同技能机器人的意图,则由意图分类器320计算的置信度得分可能低于阈值置信度得分值。当这种情况发生时,技能机器人系统300可以将话语提交给主机器人以进行处置,例如,以路由到不同的技能机器人。然而,如果意图分类器320成功地识别技能机器人内的意图,则会话管理器330将发起与用户的会话。
由会话管理器330发起的会话是特定于由意图分类器320识别的意图的会话。例如,会话管理器330可以使用被配置为针对所识别的意图执行对话流的状态机来实施。状态机可以包括默认起始状态(例如,当在没有任何附加输入的情况下调用意图时)和一个或多个附加状态,其中每个状态与将由技能机器人执行的动作(例如,执行购买交易)和/或要呈现给用户的对话(例如,问题、回应)相关联。因此,会话管理器330可以在接收到识别到意图的指示322时确定动作/对话335,并且可以响应于在会话期间接收到的后续话语来确定附加动作或对话。
数据存储350包括一个或多个计算设备,其存储由技能机器人系统300的各种子系统使用的数据。如图3中所描绘的,数据存储350可以包括规则352和意图信息354。在某些实施例中,数据存储350可以集成到主机器人或数字助理的数据存储中,例如图2中的数据存储250。
实体数据扩充
已经发现,用于实体识别和提取的模型在包含可以用多种不同数量的语言和格式表达的实体的文本上的效果很差。为了克服这个问题,各种实施例涉及用任何数量的语言和格式的多样化实体集(例如,添加用于描述一个或多个实体的各种文本和文本格式)来扩充训练数据的技术,以便使模型检测出具有各种变化的实体(货币类型、数字格式、数据_时间格式等)。通过用任何数量的语言和格式的多样化实体集来扩充训练数据,这些模型在实体识别和提取方面变得更好。在已扩充的实体数据上训练的模型可以在聊天机器人系统中实施,如关于图1、图2和图3所描述的。有利地,这些模型和聊天机器人在各种语言和/或文本格式的话语上表现更好,因为这些模型能够更好地识别和提取话语中的实体。此外,由于扩充是以合成不可知的方式自动应用的,因此客户或客户端无需担心在训练数据中手动添加各种语言和/或文本格式的话语。
图4示出图示了被配置为基于文本数据训练一个或多个模型的聊天机器人系统400的各方面的框图,所述一个或多个模型例如被实施为命名实体识别器。如图4所示,由该示例中的聊天机器人系统400执行的实体识别包括各个阶段:用于建立和训练模型的预测模型训练阶段410、用于评估已训练模型的性能的评估阶段415、以及用于实施一个或多个聊天机器人的聊天机器人实施阶段420。预测模型训练阶段410建立和训练供其他阶段使用的一个或多个预测模型425a-425n(‘n’表示任何自然数)(所述预测模型在本文中可单独称为预测模型425或统称为预测模型425)。例如,预测模型425可以包括用于识别话语中的一个或多个实体的模型、用于确定话语代表特定技能机器人被配置为执行的任务的可能性的另一个模型、用于根据第一类型技能机器人的话语来预测意图的另一个模型、以及根据第二类型技能机器人的话语来预测意图的另一个模型。在根据本公开的其他示例中可以实施其他类型的预测模型。
预测模型425可以是机器学习(“ML”)模型,如卷积神经网络(“CNN”),例如,初始神经网络、残差神经网络(“Resnet”);或递归神经网络,例如长短期记忆(“LSTM”)模型或门控递归单元(“GRU”)模型;深度神经网络(“DNN”)的其他变型网络(例如,用于单意图分类的多标签n分DNN分类器(multi-label n-binary DNN classifier)或多类DNN分类器。预测模型425也可以是为自然语言处理而训练的任何其他合适的ML模型,如朴素贝叶斯分类器、线性分类器、支持向量机、诸如随机森林模型的装袋模型(Bagging Model)、提升模型(BoostingModel)、浅层神经网络、或这种技术中的一种或多种的组合——例如,CNN-HMM或MCNN(多尺度卷积神经网络)。聊天机器人系统400可以采用相同类型的预测模型或不同类型的预测模型来识别话语中的一个或多个实体,确定话语代表特定技能机器人被配置为执行的任务的可能性,根据第一类型技能机器人的话语来预测意图,以及根据第二类型技能机器人的话语来预测意图。在根据本公开的其他示例中可以实施其他类型的预测模型。
为了训练各种预测模型425,训练阶段410由三个主要部分构成:数据集准备430、模板工程435和模型训练440。数据集准备430包括加载数据资产445、将数据资产445拆分为训练集和验证集445a-n使得系统可以训练和测试预测模型425、以及执行基本预处理。将数据资产445拆分为训练集和验证集445a-n可以随机执行(例如,90%/10%或70%/30%),或者拆分可以根据更复杂的验证技术(诸如K-折交叉验证、留一交叉验证、留一组交叉验证、嵌套交叉验证等)来执行,以最小化采样偏差和过拟合。
训练数据445a可以至少包括来自与一个或多个技能机器人相关联的示例话语的话语子集。如上所述,可以以包括音频或文本的各种方式来提供话语。话语可以是句子片段、完整句子、多个句子等。例如,如果话语作为音频提供,则数据准备430可以使用将标点符号(例如,逗号、分号、句号等)插入到结果文本中的语音文本转换器(未示出)来将音频转换为文本。在一些实例中,示例话语由客户端或客户提供。在其他实例中,示例话语是从先前的话语库中自动生成的(例如,从库中识别特定于聊天机器人被设计要学习的技能的话语)。预测模型425的训练数据445a可以包括输入文本或音频(或者文本或音频帧的输入特征)和与输入文本或音频(或输入特征)相对应的标签450作为矩阵或值表。例如,对于每个训练话语,可以提供要由预测模型425推断出的正确实体及其分类的指示作为标签450的基本事实信息。然后可以适配预测模型425的行为(例如,通过反向传播)以最小化为各种实体生成的推断与基本事实信息之间的差异。
模板工程435包括将训练数据445a扩充为包括具有任何数量的语言和格式的多样化实体集的人工话语的过程,以使预测模型425对各种语言和/或文本格式的话语更具弹性。通过用具有任何数量的语言和格式的多样化实体集的人工话语来扩充训练数据445a,预测模型425在识别各种语言和文本格式的实体方面变得更好。扩充包括多个操作,大致为:(i)从原始训练数据集中提取模板,这将确保已扩充的训练数据具有与原始训练数据集相似的预测变量分布,以及(ii)基于自定义语法使用词槽映射方法,以生成包括具有任何数量的语言和格式的多样化实体集的人工话语的已扩充训练数据,如关于图5A至图5C详细描述的。随着实体级数据扩充技术的引入,预测模型425在各种语言和/或文本格式的话语上表现更好,因为预测模型425能够更好地识别任何数量的语言和格式的实体。此外,由于实体级数据扩充是以合成不可知的方式自动应用的,因此客户或客户端无需担心在训练数据中手动添加各种语言和/或文本格式的话语。
模型425的训练过程包括:为模型425选择超参数,并执行将来自已扩充训练数据445a的子集的话语输入模型425中的迭代操作,以便为模型425找到模型参数(例如,权重和/或偏置)集,该模型参数集使目标函数最大化或最小化,例如,使损失函数最小化。超参数是可以调整或优化以控制模型425的行为的设置。大多数模型明确定义了控制模型的不同方面(诸如内存或执行成本)的超参数。然而,可以定义附加超参数以使模型适应特定的场景。例如,超参数可以包括模型的隐藏单元或层数、模型的学习率、卷积核宽度、或模型的参数数量。每一次训练迭代可以涉及为模型425找到模型参数集(用定义的超参数集进行配置),使得使用该模型参数集的目标函数值小于前一次迭代中使用不同模型参数集的目标函数值。目标函数可以被构造为衡量使用模型425推断出的输出与使用标签150标注到已扩充训练数据445a的子集的基本事实之间的差异。
一旦识别出模型参数集,模型425已被训练好,并且可以使用测试数据445b的子集(测试或验证数据集)进行测试或验证。测试或验证过程包括使用验证技术(诸如K-折交叉验证、留一交叉验证、留一组交叉验证、嵌套交叉验证等)将来自测试数据445b的子集的话语输入模型425中的迭代操作,以调整超参数并最终找到最佳的超参数集。一旦获得最佳的超参数集,可以将来自测试数据445a的子集的保留测试集输入模型425中以获得输出(在该示例中,一个或多个识别的实体),并使用相关性技术(诸如布兰德-奥特曼方法和斯皮尔曼等级相关系数)对输出与基本事实实体进行评估。进一步地,可以在实体识别评估阶段415中计算性能指标450,诸如误差、准确率、精确率、召回率、接受者操作特征(ROC)曲线等。指标450可以在实体识别评估阶段415中使用,以分析用于识别实体的模型425的性能,如关于图5A至图5C详细描述的。
模型训练阶段410输出已训练模型,包括一个或多个已训练的实体识别模型455。一个或多个已训练的实体识别模型455可以在用于实施一个或多个聊天机器人的聊天机器人实施阶段420中部署和使用。例如,一个或多个聊天机器人可以配置有一个或多个已训练的实体识别模型455,以接收来自一个或多个用户的文本数据460,并从一个或多个聊天机器人接收的各种话语中识别和提取实体465。实体465可以是从文本数据460获得的提取的信息(例如,图2和图3中分别描述的提取的信息205、304)的一部分,并且可以用于下游处理,诸如意图分类。
实体数据扩充技术
图5A是图示了利用实体数据扩充对预测模型进行整体调整的过程500的流程图。图5所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图5所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图5描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在某些实施例中,如图1至图4中描绘的实施例中,图5中描绘的处理可以由预处理子系统(例如,预处理子系统210或预测模型训练阶段410)执行,以使用已扩充的数据集来创建、训练、更新和部署一个或多个预测模型(被实施为命名实体识别器)。
在步骤505处,数据处理系统(例如,关于图4描述的聊天机器人系统400)获得包括话语的数据集。数据集包括现实的、以任务为导向的对话数据(由话语组成),这些数据可以从语料库中获得,所述语料库诸如问题-答案数据集(例如,包括维基百科文章、从中手动生成的事实问题、以及手动生成的这些问题的答案)、客户支持数据集(例如,从聊天记录中提取的两人对话,用于接收对各种问题的技术支持)、对话数据集(例如,从原始电影剧本中提取的虚构对话合集,其中包括成对电影角色之间的对话交流)、多语言数据集(例如,客户以各种语言提供的反馈,其中陈述了对给定的公司、产品或服务感到不满意的原因)等。
在步骤510处,将数据集拆分为训练数据集和测试和/或验证数据集(评价数据集作为一个或多个预测模型的目标)。尽管下面的处理是针对单一的训练数据集和单一的测试和/或验证数据集来解释的,但是应当理解,数据集可以拆分为一个或多个训练数据集和一个或多个测试和/或验证数据集,并以类似的方式进行处理。将数据资产拆分为训练集和验证集可以随机执行(例如,90%/10%或70%/30%),或者拆分可以根据更复杂的验证技术(诸如K-折交叉验证、留一交叉验证、留一组交叉验证、嵌套交叉验证等)来执行,以最小化采样偏差和过拟合。训练数据集可以标记之前获得,或者训练数据集可以在获得之后再进行标记。标记可以包括为实体预定义分类列表,在每个话语中定位实体,并用来自预定义分类列表中的分类来标记实体。例如,可以将实体的分类预定义为PRODCUT(产品)、COMPANY(公司)、CURRENCY(货币)和TIME(时间),可以识别实体介于其间的话语的索引,并且可以为索引的位置内实体的分类创建标签(例如,如果如Oracle(甲骨文)这样被分类到COMPANY类别下的实体介于索引9至17之间,并且如10/25/20这样被分类到TIME类别下的实体介于索引35至45之间,则话语可以标记为(实体:(9,17,‘COMPANY’),(35,45,‘TIME’))。
在步骤515处,在训练数据集上训练预测模型,以学习用于对话语中的实体进行识别和分类的参数。训练过程可以包括:为模型选择超参数,并执行将来自训练数据集的话语输入模型中的迭代操作,以便为模型找到模型参数(例如,权重和/或偏置)集,该模型参数集使目标函数最大化或最小化,例如,使损失函数最小化。每一次训练迭代可以涉及为模型找到模型参数集(用定义的超参数集进行配置),使得使用该模型参数集的目标函数值小于前一次迭代中使用不同模型参数集的目标函数值。目标函数可以被构造为衡量使用模型推断出的输出与使用标签标注到训练数据集的基本事实之间的差异。
在步骤520处,在测试和/或验证数据集上测试和/或验证一个或多个预测模型,以识别话语中的一个或多个实体。测试或验证过程包括使用验证技术(诸如K-折交叉验证、留一交叉验证、留一组交叉验证、嵌套交叉验证等)将来自测试和/或验证数据集的话语输入模型中的迭代操作,以调整超参数并最终找到最佳的超参数集。一旦获得最佳的超参数集,可以将来自测试和/或验证数据集的保留测试集输入模型中以获得输出(例如,一个或多个识别的实体),并使用相关性技术(诸如布兰德-奥特曼方法和斯皮尔曼等级相关系数)对输出与基本事实实体进行评估。进一步地,可以计算性能指标,诸如误差(例如,平均绝对误差或平均平方误差)、准确率(例如,分类准确率)、精确率(例如,F1分数)、召回率(例如,F1分数)、接受者操作特征(ROC)曲线(例如,曲线下面积(AUC)-ROC曲线)等。所述指标可以用于分析用于识别实体的模型的性能。例如,评估工具可以用于了解保留测试集上的假正(false positive)和假负(false negative),以评估模型的行为。执行并分析测试和/或验证,以获得对模型的基线评估,并且(如果有的话)获得一种理解,即,需要在训练数据集中添加附加信息(例如,附加的名词、文本格式、货币类型、URL类型等)或使所述附加信息多样化,以提高用于识别各种语言和/或文本格式的话语中的实体的模型的性能。例如,测试和/或验证可以证明,当模型试图识别和分类实体:CURRENCY(特别是对于没有美元货币的话语)时,模型的表现并不理想,并且因此获得一种理解,即,需要在训练数据集中添加附加信息(例如,附加的货币类型)或使所述附加信息多样化,以提高用于实体:CURRENCY的模型的性能。
在需要在训练数据集中添加附加信息或使所述附加信息多样化以提高模型性能的实例中,在步骤525处,从原始语料库——拆分前在步骤505中获得的数据集——或其子集(诸如拆分后的训练数据集)创建或提取一个或多个模板,如关于图5B详细描述的。在步骤530处,数据处理系统使用一个或多个模板创建人工话语,如关于图5B详细描述的。在步骤535处,数据处理系统用人工话语扩充数据集或其子集,以获得已扩充的数据集。用人工话语对数据集或其子集进行扩充的比率(扩充率)可以基于一个或多个因素来设定。在一些实例中,扩充率是基于对测试和验证数据的分析来选择的,例如,扩充率是基于其对提高命名实体识别模型性能的感知/确定能力来选择的。在其他实例中,扩充率是随机选择的,并且可以在此后进行优化。在其他实例中,为防止一个或多个预测模型从一个或多个先前观察到的分类中预测实体的能力出现退化,扩充率是基于预定义模式来选择的。例如,扩充率可以由以下(多个)模式来界定:CURRENCY:3*|原始训练数据集中货币话语出现的次数|,和/或TIME_DATE:0.75*|原始训练数据集中time-date(时间-日期)话语出现的次数|。
在步骤540处,将已扩充的数据集拆分为已扩充的训练数据集和已扩充的测试和/或验证数据集(评价数据集作为一个或多个预测模型的目标)。尽管下面的处理是针对单一的训练数据集和单一的测试和/或验证数据集来解释的,但是应当理解,已扩充的数据集可以拆分为一个或多个已扩充的训练数据集和一个或多个已扩充的测试和/或验证数据集,并以类似的方式进行处理。将已扩充的数据资产拆分为训练集和验证集可以随机执行(例如,90%/10%或70%/30%),或者拆分可以根据更复杂的验证技术(诸如K-折交叉验证、留一交叉验证、留一组交叉验证、嵌套交叉验证等)来执行,以最小化采样偏差和过拟合。已扩充的训练数据集如关于步骤510所述的那样基于为实体预定义的分类列表来进行标记。
在步骤545处,使用已扩充的训练数据集来训练模型(或训练新的基础模型)。训练过程可以包括:为模型选择超参数,并执行将来自已扩充的训练数据集的话语输入模型中的迭代操作,以便为模型找到模型参数(例如,权重和/或偏置)集,该模型参数集使目标函数最大化或最小化,例如,使损失函数最小化。每一次训练迭代可以涉及为模型找到模型参数集(用定义的超参数集进行配置),使得使用该模型参数集的目标函数值小于前一次迭代中使用不同模型参数集的目标函数值。目标函数可以被构造为衡量使用模型推断出的输出与使用标签标注到已扩充的训练数据集的基本事实之间的差异。
在步骤550处,在已扩充的测试和/或验证数据集上测试和/或验证模型,以识别话语中的一个或多个实体。测试或验证过程包括使用验证技术(诸如K-折交叉验证、留一交叉验证、留一组交叉验证、嵌套交叉验证等)将来自已扩充的测试和/或验证数据集的话语输入模型中的迭代操作,以调整超参数并最终找到最佳的超参数集。一旦获得最佳的超参数集,可以将来自测试和/或验证数据集的保留测试集输入模型中以获得输出(例如,一个或多个识别的实体),并使用相关性技术(诸如布兰德-奥特曼方法和斯皮尔曼等级相关系数)对输出与基本事实实体进行评估。进一步地,可以计算性能指标,诸如误差(例如,平均绝对误差或平均平方误差)、准确率(例如,分类准确率)、精确率(例如,F1分数)、召回率(例如,F1分数)、接受者操作特征(ROC)曲线(例如,曲线下面积(AUC)-ROC曲线)等。所述指标可以用于分析用于识别实体的模型的性能。与步骤520中对模型的基线评估相比,所述指标也可以用于分析模型的性能。例如,评估工具可以用于了解保留测试集上的假正和假负,以评估模型的行为。区分工具可以用于了解新模型与前一版本的模型之间的差异、和/或新模型与基础模型的差异。为了知道是否存在任何退化。退化工具可以用于确保这两个模型版本和/或新模型与基础模型之间不存在退化。
此后,基于对模型训练和测试的评估,可以迭代地重复步骤525至550,直到评估证明用于识别各种语言和/或文本格式的话语中的一个或多个实体的一个或多个预测模型具有最佳性能。模型的最佳性能可以由用户或系统定义为实现一个或多个性能指标(例如,准确率为x%,实现误差分数x,准确率比基线评估或先前版本的模型的准确率增加x%,给定实体分类的误差分数至少降低x,在识别和分类给定实体方面比基线评估至少改善x等)。一旦模型已被训练和/或达到最佳性能,在步骤555处,将模型部署在聊天机器人系统内(例如,作为技能机器人的一部分),以用于识别各种语言和/或文本格式的话语中的一个或多个实体。例如,聊天机器人可以接收话语,所述话语可以由一个或多个预测模型分析以确定所述话语是否包含一个或多个实体,并且识别的实体可以在下游过程中由聊天机器人使用以例如推断所述话语的意图。
图5B是图示了用于从一个或多个训练数据集创建或提取一个或多个模板并基于所述一个或多个模板创建人工话语的过程560的流程图,如在关于图5A描述的过程500中实施的。图5B所描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图5B所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图5B描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在某些实施例中,诸如在图1至图4中描绘的实施例中,图5B中描绘的处理可以由数据处理系统执行,所述数据处理系统包括被配置为自动生成模板和话语以用于训练预测模型的模板引擎。模板引擎自动生成大量已扩充的数据,所述已扩充的数据在上下文中与在训练系统内已经使用的训练数据相似,同时也有足够的变化,以确保模型不会学习特定的句子模式。这比众包数据(其提供数量,但上下文不相似)或手动添加更多话语(其提供相似的上下文,但无法手动生成足够多的话语,也无法确保数据的某种多样性)更有利。
以下对过程560的讨论通过将CURRENCY作为示例实体解释了数据扩充过程(所述过程适合于整个过程500),所述示例实体被用户或计算系统识别(例如,经由在步骤520和550中执行的分析)为可能受益于数据扩充(例如,训练数据对某些货币单位缺乏足够的覆盖)。尽管CURRENCY被用作示例实体,但是应当理解,本文描述的过程也可以对其他分类的实体及其组合实施。在步骤565处,生成或识别针对给定实体的要覆盖的值列表。例如,针对CURRENCY实体的要覆盖的单位列表由数据处理系统(例如,关于图4描述的聊天机器人系统400)生成或识别。地名录列表(地理词典或目录)可以用于生成或识别流行名词,例如,货币及其同义词、主要单位和次要单位(例如,美元和美分)、以及标准文本格式(例如,按货币数字格式、按国家、语言或地区归类的货币类型列表)。所述列表可能如下:
∨覆盖的货币列表
SGD$
新加坡元(Sing-dollar)
新元(Sing-dollars)
新币(Sing)
SGD
卢比(Rs.)
印度币(Rs)
澳大利亚元(AUS Dollar)
澳元(AUS Dollars)
泰铢(Thai Baht)
R$
EGP
SDG
LBP
ARS
COP
PHP
CLP
DOP
CUP
UYU
等等
在步骤570处,从具有给定实体的上下文的数据集(例如,来自原始语料库——拆分前在步骤505中获得的数据集——或其子集(诸如拆分后的训练数据集))中选择话语。例如,可以手动地或由数据处理系统从具有CURRENCY实体的正确上下文的数据集中选择多个话语。针对CURRENCY实体可以选择的示例话语是:“He paid$100.78for dinner(他为晚餐支付了100.78美元)”;然而,应当理解,可替代地或另外,存在许多其他具有CURRENCY实体的话语示例可以进行选择。
在步骤575处,将所选话语转换为模板,其中,所述模板中的每个模板包括针对给定实体的映射到值列表的词槽。例如,数据处理系统执行脚本将所有所选话语模板化。更特别地,所述脚本将使所选话语转换为模板列表,这些模板基本上是具有词槽的句子。模板被存储为与给定实体以及可选地与给定实体的上下文相关联的列表,并且来自所述列表的模板随后将被选择并由模板引擎为实体填充不同的值,如关于图5C详细描述的。模板可以用自定义语法来定义,以便自定义用于识别话语中定义的实体分类的模型的行为。例如,由编程语言的句法(诸如元语言BNF(巴克斯-诺尔范式))定义的上下文无关文法(上下文无关文法(context-free grammars)是用于生成字符串模式的一组递归规则)可以用于对像货币这样的其中具有多个组成部分(例如,符号、代码、主要次要单位等)的复杂实体进行建模并支持嵌套词槽映射。用于所选话语“He paid$100.78for dinner”的示例模板可以是“他为晚餐支付了/<CURRENCY_slot_augmented>{CURRENCY}/(He paid/<CURRENCY_slot_augmented>{CURRENCY}/for dinner)”。作为另一示例,用于所选话语“Create an expensefor$10AUD on May 21st(在5月21日产生一笔10澳元的费用)”的模板可以是在[(on|at)/<date>{TIME_DATE}/]产生一笔/(<digit_amount>[]<cur_type>|<cur_type>[]<digit_amount>){CURRENCY}/的费用(Create an(expense|exp)for/(<digit_amount>[]<cur_type>|<cur_rtype>[]<digit_amount>){CURRENCY}/[(on|at)/<date>{TIME_DATE}/])。每个词槽包括一个或多个元素,所述一个或多个元素被映射到一个或多个值(例如,一系列潜在值或要执行的操作)。例如,继续上面的示例,词槽:/<CURRENCY_slot_augmented>{CURRENCY}/映射到以下元素:<cur_type>和<digit_amount>。元素<cur_type>是值列表类型元素;而元素<digit_amount>是函数类型元素。每个元素:<cur_type>和<digit_amount>映射到单独的值,例如,<cur_type>映射到CURRENCY实体的单位列表,并且<digit_amount>映射到用于为CURRENCY实体生成十进制数的函数。
在步骤580处,从模板列表中选择模板,基于所选模板内的词槽与给定实体的值列表之间的映射从值列表中选择值,并且基于所选模板和所选值创建人工话语。创建人工话语包括将所选值插入所选模板中的、映射到给定实体的值列表的词槽中。例如,用模板列表(例如,包括CURRECNY实体的模板列表)和针对实体(例如,CURRENCY)的要覆盖的值(例如,单位)列表来运行模板引擎,以生成人工话语。模板引擎具有配置文件,用户可以在所述配置文件中指定什么词槽映射到什么实体文件,然后模板引擎将遵循所述映射来生成人工话语。可以从列表中选择多个模板和/或值,并且可以(基于所选择或设定的任何扩充率)通过用模板列表以及针对实体的要覆盖的值列表迭代地运行模板引擎来生成多个人工话语。
图5C中的流程图图示了用于相对于示例模板:“他为晚餐支付了/<CURRENCY_slot_augmented>{CURRENCY}/”来生成人工话语的子过程(分别关于图5A和图5B描述的530、580)。在步骤(A)处,基于对测试和验证数据的分析(例如,在关于图5A描述的步骤520、550中执行的分析),确定实体:CURRENCY需要扩充以提高命名实体识别模型的性能。另外,为创建人工话语的过程设定扩充率以扩充训练数据。在一些实例中,扩充率是基于对测试和验证数据的分析来选择的,例如,扩充率是基于其对提高命名实体识别模型性能的感知/确定能力来选择的。在其他实例中,扩充率是随机选择的,并且可以在此后进行优化。在其他实例中,为防止一个或多个预测模型从一个或多个先前观察到的分类中预测实体的能力出现退化,扩充率是基于预定义模式来选择的。
在步骤(B)处,从与所确定的实体:CURRENCY以及可选地与给定实体的上下文相关联的模板列表中选择模板(该模板列表可以根据关于图5B描述的步骤575生成)。当模板列表被创建时,它们与实体以及可选地与给定实体的上下文相关联(例如,在文件或数据库中创建了所述列表与实体之间的映射)。例如,模板引擎具有配置文件,用户可以在所述配置文件中指定什么模板映射到什么实体文件,然后模板引擎将遵循所述映射来识别与所确定的实体:CURRENCY相关联的模板列表。之后,以控制方式(即,基于预定义选择协议,如按顺序或使用适用度函数)或随机地从所识别的模板列表中选择模板(例如,他为晚餐支付了/<CURRENCY_slot_augmented>{CURRENCY}/)。在一些实例中,执行模板创建和提取以确保已扩充的训练数据集具有与用于训练模型的原始数据集(例如,来自原始语料库——拆分前在步骤505中获得的数据集——或其子集(诸如拆分后的训练数据集))相同的分布。例如,启发式方法可以用于如何选择模板。启发式方法可以包括以下条件:(i)在具有多个实体分类的模板与具有单一实体分类的模板中做出选择;(ii)权衡模板种类与模板质量;(iii)根据诸如与账户余额有关的一些上下文对模板进行归类;(iv)模型是否需要每个模板的最低出现次数/用户想要教导所述模型的独特上下文;或(v)以上各项的任何组合。
在步骤(C)处,识别所选模板内一个或多个词槽的元素。词槽可以通过解析模板并基于用于生成模板的自定义句法定位定义词槽的文本来识别,例如,/******/之间的任何文本可以识别为词槽,包括诸如_slot_等标识符的任何文本可以识别为词槽,或其任何组合。当词槽被创建时,它们与一个或多个元素相关联(例如,在文件或数据库中创建了词槽与元素之间的映射)。例如,模板引擎具有配置文件,用户可以在所述配置文件中指定什么元素映射到什么词槽,然后模板引擎将遵循所述映射来识别与所识别的词槽相关联的元素。如所图示的,词槽:/<CURRENCY_slot_augmented>{CURRENCY}/从以下模板中被识别:他为晚餐支付了/<CURRENCY_slot_augmented>{CURRENCY}/;并且词槽:/<CURRENCY_slot_augmented>{CURRENCY}/映射到以下元素:<cur_type>和<digit_amount>。元素<cur_type>是值列表类型元素;而元素<digit_amount>是函数类型元素。
在步骤(D)和(E)处,识别各元素的值。当词槽的元素被创建时,它们与值相关联(例如,在文件或数据库中创建了元素与值之间的映射)。例如,模板引擎具有配置文件,用户可以在所述配置文件中指定什么值映射到什么元素,然后且模板引擎可以使用该映射来识别与所识别的元素相关联的值。如所图示的,元素<cur_type>映射到针对实体:CURRENCY的各种值的列表;并且映射到用于生成随机十进制数作为针对实体:CURRENCY的值的函数。
在步骤(F)处,根据所识别的值执行一个或多个操作,并将操作的结果进行组合,以生成每个所识别词槽的词槽值。例如,对于值列表类型元素,从所识别的针对实体:CURRENCY的各种值的列表中(即,基于预定义选择协议,如按顺序或使用适用度函数)或随机地选择值(例如,SGD$)。对于函数类型元素,运行所述函数以获得所述函数的输出,例如,可以运行随机十进制数生成器以获得20.45。值列表类型元素:SGD$的值与函数类型元素的值进行组合以生成词槽值:SGD$20.45。如应当理解,值的组合可能比值的简单顺序排列更复杂。例如,在一些实例中,可以使用单独的函数或随机顺序发生器对值进行组合。
在步骤(G)处,然后将每个所识别词槽的词槽值输入到所识别模板内的相关联词槽中,以生成人工话语。例如,将SGD$20.45输入模板:他为晚餐支付了/<CURRENCY_slot_augmented>{CURRENCY}/的词槽:/<CURRENCY_slot_augmented>{CURRENCY}/中;以生成人工话语:他为晚餐支付了SGD$20.45。可以从列表中选择多个模板和/或值,并且可以(基于所选择或设定的任何扩充率)通过用模板列表以及针对实体的要覆盖的值列表迭代地运行模板引擎来生成多个人工话语。
模板引擎的扩展性很好——虽然这是具有一个模板的简单示例,但在现实中,脚本可能会提供很多不同的模板,以及模板引擎可以映射到的进一步模板或文件或函数的更长层次结构。表2示出了在模板中使用嵌套词槽映射集来为特定的实体:CURRENCY和TIME_DATE定制数据扩充功能的一些示例。
表2
Figure BDA0003990824470000371
Figure BDA0003990824470000381
Figure BDA0003990824470000391
Figure BDA0003990824470000401
说明性系统
图6描绘了分布式系统600的简化图。在图示的示例中,分布式系统600包括经由一个或多个通信网络610耦接到服务器612的一个或多个客户端计算设备602、604、606和608。客户端计算设备602、604、606和608可以被配置为执行一个或多个应用程序。
在各种示例中,服务器612可以被适配成运行实现本公开所描述的一个或多个实施例的一个或多个服务或软件应用程序。在某些示例中,服务器612还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些示例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户进而可以利用一个或多个客户端应用程序来与服务器612交互以利用这些部件所提供的服务。
在图6所描绘的配置中,服务器612可以包括实施由服务器612执行的功能的一个或多个部件618、620和622。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式系统600不同的各种不同系统配置是可能的。因此,图6所示出的示例是用于实施示例系统的分布式系统的一个示例并且不旨在是限制性的。
用户可以使用客户端计算设备602、604、606和/或608来执行一个或多个应用程序、模型或聊天机器人,所述一个或多个应用程序、模型或聊天机器人可以生成然后可以根据本公开的教导实施或服务的一个或多个事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图6描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,Microsoft
Figure BDA0003990824470000411
Apple
Figure BDA0003990824470000412
或类UNIX操作系统、Linux或类Linux操作系统(如Google ChromeTM OS)),包括各种移动操作系统(例如,Microsoft Windows
Figure BDA0003990824470000413
Windows
Figure BDA0003990824470000414
AndroidTM
Figure BDA0003990824470000415
Palm
Figure BDA0003990824470000416
)。便携式手持设备可以包括蜂窝电话、智能电话(例如,
Figure BDA0003990824470000417
)、平板计算机(例如,
Figure BDA0003990824470000418
)、个人数字助理(PDA)等。可穿戴设备可以包括Google
Figure BDA0003990824470000419
头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有
Figure BDA00039908244700004110
姿势输入设备的Microsoft
Figure BDA00039908244700004111
游戏控制台、Sony
Figure BDA00039908244700004112
系统、由
Figure BDA00039908244700004113
提供的各种游戏系统、以及其他)等。客户端设备可以能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序)并可以使用各种通信协议。
(多个)网络610可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、
Figure BDA00039908244700004114
等。仅通过示例的方式,(多个)网络610可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)1002.11协议套件、
Figure BDA0003990824470000421
和/或任何其他无线协议中的任一种协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器612可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、
Figure BDA0003990824470000422
服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合。服务器612可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构,比如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各种示例中,服务器612可以被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用程序。
服务器612中的计算系统可以运行一个或多个操作系统,所述一个或多个操作系统包括以上所讨论的那些操作系统中的任何一个操作系统以及任何可商购获得的服务器操作系统。服务器612也可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、
Figure BDA0003990824470000423
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从
Figure BDA0003990824470000424
(国际商业机器公司)等商购获得的那些数据库服务器。
在一些实施方式中,服务器612可以包括一个或多个应用程序以分析并合并从客户端计算设备602、604、606和608的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于
Figure BDA0003990824470000425
馈送、
Figure BDA0003990824470000426
更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等相关的实时事件。服务器612还可以包括一个或多个应用程序以经由客户端计算设备602、604、606和608的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统600还可以包括一个或多个数据储存库614、616。在某些示例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库614、616中的一个或多个可以用于存储信息(如与聊天机器人性能或生成的模型有关的信息)以供服务器612在执行根据各种实施例的各种功能时使用的聊天机器人使用。数据储存库614、616可以驻留在各种位置。例如,服务器612所使用的数据储存库可以在服务器612本地或者可以远离服务器612并经由基于网络的或专用的连接与服务器612通信。数据储存库614、616可以是不同类型。在某些示例中,服务器612所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle
Figure BDA0003990824470000431
和其他供应商提供的数据库。这些数据库中的一个或多个数据库可以被适配成响应于SQL格式的命令来实现数据到以及从数据库的存储、更新和取得。
在某些示例中,数据储存库614、616中的一个或多个数据储存库还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型,如例如键值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。
在某些示例中,本公开所描述的功能可以经由云环境作为服务提供。图7是根据某些示例的各种服务在其中可以作为云服务提供的基于云的系统环境的简化框图。在图7所描绘的示例中,云基础设施系统702可以提供可以由使用一个或多个客户端计算设备704、706和708的用户所请求的一个或多个云服务。云基础设施系统702可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括以上针对服务器612所描述的那些计算机和/或服务器。云基础设施系统702中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
(多个)网络710可以促进客户端704、706和708与云基础设施系统702之间的数据通信和交换。(多个)网络710可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络710可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
图7所描绘的示例仅是云基础设施系统的一个示例并且不旨在是限制性的。应了解,在一些其他示例中,云基础设施系统702可以具有比图7所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或布置。例如,尽管图7描绘了三个客户端计算设备,但是在替代性示例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统702)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的室内服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle
Figure BDA0003990824470000441
提供如中间件服务、数据库服务、Java云服务以及其他服务等几种云服务。
在某些示例中,云基础设施系统702可以使用不同的模型(如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施系统702可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。
SaaS模型使应用程序或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用程序的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施系统702托管的按需应用程序的访问。Oracle
Figure BDA0003990824470000442
提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序以及其他等的各种服务。
IaaS模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由Oracle
Figure BDA0003990824470000443
提供各种IaaS服务。
PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle
Figure BDA0003990824470000444
提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务、以及其他服务。
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施系统702提供的一个或多个服务。然后,云基础设施系统702执行处理以提供客户的订阅订单中请求的服务。例如,用户可以使用话语来请求云基础设施系统采取如上文所描述的某个动作(例如,意图)和/或为如本文所描述的聊天机器人系统提供服务。云基础设施系统702可以被配置为提供一个或甚至多个云服务。
云基础设施系统702可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他示例中,在私有云模型下,云基础设施系统702可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他示例中,在社区云模型下,云基础设施系统702和所提供的服务可以由有关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。
客户端计算设备704、706和708可以是不同类型的(如图6所描绘的客户端计算设备602、604、606和608)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施系统702交互,如请求由云基础设施系统702提供的服务。例如,用户可以使用客户端设备从如本公开所描述的聊天机器人请求信息或动作。
在一些示例中,由云基础设施系统702执行的用于提供服务的处理可以涉及模型训练和部署。此分析可以涉及使用、分析并操纵数据集来训练并部署一个或多个模型。该分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,大数据分析可以由云基础设施系统702执行以用于针对聊天机器人系统生成并训练一个或多个模型。用于该分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图7中的示例所描绘的,云基础设施系统702可以包括被用于促进供给由云基础设施系统702提供的各种云服务的基础设施资源730。基础设施资源730可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用程序请求的存储的存储虚拟机可以是云基础设施系统702的一部分。在其他示例中,存储虚拟机可以是不同系统的一部分。
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施系统702为不同客户提供的各种云服务,资源可以绑定到资源组或资源模块(也称为“群(pod)”)中。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些示例中,可以针对不同类型的云服务预先供给不同的群。例如,可以针对数据库服务供给第一组群、可以针对Java服务供给第二组群(所述第二组群可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源可以在服务之间共享。
云基础设施系统702自身可以在内部使用由云基础设施系统702的不同部件共享并且促进云基础设施系统702供给服务的服务732。这些内部共享服务可以包括但不限于安全和身份服务、整合服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施系统702可以包括多个子系统。这些子系统可以以软件或硬件或其组合实施。如图7所描绘的,子系统可以包括使得云基础设施系统702的用户或客户能够与云基础设施系统702交互的用户接口子系统712。用户接口子系统712可以包括各种不同的接口,如web接口714、在线商店接口716(其中,广告并且客户可购买由云基础设施系统702提供的云服务)和其他接口718。例如,客户可以使用客户端设备请求(服务请求734)由云基础设施系统702使用接口714、716和718中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统702提供的云服务并且针对客户希望订阅的由云基础设施系统702提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施系统702提供的服务下订阅订单。作为订单的一部分,客户可以提供识别服务要针对其提供的聊天机器人系统的信息并且可选地为聊天机器人系统提供一个或多个凭证。
在某些示例(如图7所描绘的示例)中,云基础设施系统702可以包括被配置成处理新订单的订单管理子系统(OMS)720。作为该处理的一部分,OMS 720可以被配置为:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;并且策划各种工作流程来准备订单以进行供给。
一旦被正确地验证,那么,OMS 720就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子系统(OPS)724。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS724可以被配置为确定正在请求的特定云服务并且识别可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
在某些示例中,如上文所描述的设置阶段处理可以作为供给过程的一部分由云基础设施系统702来执行。云基础设施系统702可以生成应用程序ID并从云基础设施系统702自身所提供的存储虚拟机中或从除云基础设施系统702以外的其他系统所提供的存储虚拟机中为应用程序选择存储虚拟机。
云基础设施系统702可以向请求客户发送回应或通知744,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些示例中,对于请求服务的客户,回应可以包括由云基础设施系统702生成的聊天机器人系统ID和识别由云基础设施系统702对应于聊天机器人系统ID为聊天机器人系统选择的聊天机器人系统的信息。
云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础设施系统702负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统702还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用该使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息(可能包括专有信息)。在某些示例中,云基础设施系统702包括被配置成管理客户信息并提供对所管理信息的分离使得与一个客户有关的信息不能被另一个客户访问的身份管理子系统(IMS)728。IMS 728可以被配置为提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。
图8图示了计算机系统800的示例。在一些示例中,计算机系统800可以用于实施分布式环境内的任何数字助理或聊天机器人系统以及上文所描述的各种服务器和计算机系统。如图8所示,计算机系统800包括各种子系统,包括经由总线子系统802与多个其他子系统通信的处理子系统804。这些其他子系统可以包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818可以包括非暂态计算机可读存储介质,包括存储介质822和系统存储器810。
总线子系统802提供用于允许计算机系统800的各个部件和子系统按预期彼此通信的机构。虽然总线子系统802被示意性地示出为单个总线,但是总线子系统的替代性示例可以利用多个总线。总线子系统802可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围部件互连(PCI)总线(所述PCI总线可以被实施为被制造成IEEE P1386.1标准的夹层(Mezzanine)总线)等。
处理子系统804控制计算机系统800的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机系统800的处理资源可以被组织成一个或多个处理单元832、834等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些示例中,处理子系统804可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些示例中,处理子系统804的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些示例中,处理子系统804中的处理单元可以执行存储在系统存储器810内或计算机可读存储介质822上的指令。在各种示例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器810中和/或计算机可读存储介质822上(潜在地包括驻留在一个或多个存储设备上)。通过适合的编程,处理子系统804可以提供上文所描述的各种功能。在计算机系统800在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些示例中,可以可选地提供处理加速单元806以用于执行定制处理或用于卸载处理子系统804所执行的处理中的一些处理,从而加速计算机系统800所执行的总体处理。
I/O子系统808可以包括用于向计算机系统800输入信息和/或用于从或经由计算机系统800输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统800输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、合并到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的Microsoft
Figure BDA0003990824470000481
运动传感器、Microsoft
Figure BDA0003990824470000482
360游戏控制器、提供用于使用姿势和口述命令接收输入的界面的设备。用户接口输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势转化为到输入设备(如Google
Figure BDA0003990824470000483
)的输入的Google
Figure BDA0003990824470000484
眨眼检测器。另外,用户接口输入设备可以包括使用户能够通过声音命令与声音识别系统(例如,
Figure BDA0003990824470000491
导航器)交互的声音识别感测设备。
用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机系统800向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。
存储子系统818提供用于存储计算机系统800所使用的信息和数据的储存库或数据存储。存储子系统818提供用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统818可以存储当由处理子系统804执行时提供以上所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统804的一个或多个处理单元执行。存储子系统818还可以根据本公开的传授内容提供认证。
存储子系统818可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图8所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含在启动期间帮助计算机系统800内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含目前由处理子系统804操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图8所描绘的,系统存储器810可以加载正在执行的应用程序812(所述应用程序可以包括如Web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等各种应用程序)、程序数据814和操作系统816。通过示例的方式,操作系统816可以包括各种版本的Microsoft
Figure BDA0003990824470000501
Apple
Figure BDA0003990824470000502
和/或Linux操作系统、各种可商购获得的
Figure BDA0003990824470000503
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0003990824470000504
OS等)和/或如iOS、
Figure BDA0003990824470000505
电话、
Figure BDA0003990824470000506
OS、
Figure BDA0003990824470000507
OS、
Figure BDA0003990824470000508
OS操作系统等移动操作系统、以及其他操作系统。
计算机可读存储介质822可以存储提供一些示例的功能的编程和数据构造。计算机可读介质822可以为计算机系统800提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统804执行时提供以上所描述的功能的软件(程序、代码模块、指令)可以存储在存储子系统818中。通过示例的方式,计算机可读存储介质822可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、
Figure BDA0003990824470000509
盘或其他光学介质)等非易失性存储器。计算机可读存储介质822可以包括但不限于
Figure BDA00039908244700005010
驱动器、闪速存储器卡、通用串行总线(USB)闪速存储器驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质822还可以包括如基于闪速存储器的固态驱动器(SSD)、企业级闪速存储器驱动器、固态ROM等基于非易失性存储器的SSD、基于如固态RAM、动态RAM、静态RAM等易失性存储器的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些示例中,存储子系统818还可以包括可以进一步连接到计算机可读存储介质822的计算机可读存储介质读取器820。读取器820可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置为从所述存储器设备读取数据。
在某些示例中,计算机系统800可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统800可以提供对执行一个或多个虚拟机的支持。在某些示例中,计算机系统800可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统可以与由计算机系统800所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统800同时运行。
通信子系统824提供到其他计算机系统和网络的接口。通信子系统824用作用于从其他系统接收数据并且从计算机系统800向其他系统传输数据的接口。例如,通信子系统824可以使得计算机系统800能够经由因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,当计算机系统800用于实施图1所描绘的机器人系统120时,通信子系统可以用于与针对应用程序选择的聊天机器人系统通信。
通信子系统824可以支持有线通信协议和/或无线通信协议两者。在某些示例中,通信子系统824可以包括用于访问无线声音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术、如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准、或其他移动通信技术、或其任何组合)、全球定位系统(GPS)接收器部件和/或其他部件。在一些示例中,除了无线接口之外或替代无线接口,通信子系统824可以提供有线网络连接性(例如,以太网)。
通信子系统824可以接收并发射各种形式的数据。在一些示例中,除了其他形式之外,通信子系统824还可以接收结构化和/或非结构化数据馈送826、事件流828、事件更新830等形式的输入通信。例如,通信子系统824可以被配置成从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送826,如
Figure BDA0003990824470000511
馈送、
Figure BDA0003990824470000512
更新、web馈送(如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在某些示例中,通信子系统824可以被配置成接收连续数据流形式的数据,所述连续数据流可以包括(可以没有显式结束的本质上连续的或无界的)实时事件的事件流828和/或事件更新830。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
通信子系统824还可以被配置为将数据从计算机系统800传送到其他计算机系统或网络。可以将数据以如结构化和/或非结构化数据馈送826、事件流828、事件更新830等各种不同的形式传送到可以与耦接至计算机系统800的一个或多个流数据源计算机通信的一个或多个数据库。
计算机系统800可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0003990824470000513
蜂窝电话、
Figure BDA0003990824470000514
计算平板计算机、PDA)、可穿戴设备(例如,Google
Figure BDA0003990824470000515
头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的不断变化的性质,对图8所描绘的计算机系统800的描述旨在仅作为具体示例。具有比图8所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的传授内容,应了解,有其他方式和/或方法来实施各种示例。
虽然已经描述了具体示例,但是各种修改、更改、替代性构造和等同物是可能的。示例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些示例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用上文所描述的示例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应当认识到,硬件和软件的其他组合也是可能的。某些示例可以仅以硬件或仅以软件或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、系统、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(如通过执行计算机指令或代码)或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对示例的透彻理解。然而,可以在没有这些具体细节的情况下实践示例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊示例。此描述仅提供了示例性示例并且不旨在限制其他示例的范围、适用性或配置。而是,先前对示例的描述将为本领域技术人员提供用于实施各种示例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待本说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体示例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。
在前述说明书中,参考本公开的具体示例描述了本公开的各方面,但是本领域技术人员将认识到,本公开并不限于此。可以单独地或联合地使用上文所描述的公开的各种特征和方面。进一步地,在不脱离说明书的更广泛的精神和范围的情况下,可以在除了本文所描述的那些环境和应用程序外的任何数量的环境和应用环境中利用示例。因此,说明书和附图应被视为说明性的而非限制性的。
在前述描述中,出于说明的目的,以特定顺序描述了方法。应当了解,在替代性示例中,可以以与所描述的顺序不同的顺序来执行方法。还应当了解,上文所描述的方法可以由硬件部件执行或者可以体现在机器可执行指令的序列中,所述指令可以用于使机器(如用所述指令编程的通用或专用处理器或逻辑电路)执行所述方法。这些机器可执行指令可以存储在一个或多个机器可读介质上,如CD-ROM或其他类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的机器可读介质。可替代地,方法可以由硬件和软件的组合来执行。
在将部件描述为被配置成执行某些操作的情况下,这种配置可以例如通过设计用于执行操作的电子电路或其他硬件、通过对用于执行操作的可编程电子电路(例如,微处理器或其他适合的电子电路)进行编程或其任何组合来完成。
尽管本文已经详细描述了本申请的说明性示例,但是应当理解,可以以其他方式不同地体现并采用本发明概念,并且所附权利要求旨在被解释为包括这种变化,受现有技术限制的情况除外。

Claims (20)

1.一种方法,包括:
由数据处理系统生成针对实体的要覆盖的值列表;
由所述数据处理系统从具有所述实体的上下文的数据集中选择话语;
由所述数据处理系统将所述话语转换为模板,其中,所述模板中的每个模板包括针对所述实体的映射到所述值列表的词槽;
由所述数据处理系统从所述模板中选择模板;
由所述数据处理系统基于所选模板内的词槽与针对所述实体的所述值列表之间的映射从所述值列表中选择值;以及
由所述数据处理系统使用所述所选模板和所选值生成人工话语,其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中。
2.如权利要求1所述的方法,进一步包括:
在从所述数据集中选择话语之前,由所述数据处理系统使用训练数据集训练模型,其中,所述训练数据集是所述数据集或其子集;
由所述数据处理系统使用测试数据集或验证数据集测试所述模型;
由所述数据处理系统基于对所述模型的所述测试来评估所述模型的性能;以及
由所述数据处理系统基于所述评估来识别所述实体。
3.如权利要求2所述的方法,进一步包括:
由所述数据处理系统用所述人工话语扩充所述数据集或所述训练数据集,以生成已扩充的训练数据集;
由所述数据处理系统使用所述已扩充的训练数据集来训练所述模型;
由所述数据处理系统使用所述测试数据集或所述验证数据集或另一测试数据集或验证数据集重新测试所述模型;
由所述数据处理系统基于对所述模型的所述重新测试来评估所述模型的性能;
由所述数据处理系统确定所述模型的所述性能满足预定义标准;以及
响应于所述模型满足所述预定义标准,将所述模型部署为聊天机器人系统的一部分。
4.如权利要求1所述的方法,进一步包括:
由所述数据处理系统确定所述所选模板内的所述词槽包括映射到所述值列表的第一元素以及映射到函数的第二元素;
由所述数据处理系统基于所述所选模板内的所述词槽与所述函数之间的映射来处理所述函数,以生成函数值;以及
由所述数据处理系统将所述所选值与所述函数值进行组合以获得词槽值,
其中,生成所述人工话语包括将所述词槽值插入所述所选模板的所述词槽中。
5.如权利要求1所述的方法,进一步包括:
由所述数据处理系统确定所述所选模板映射到包括所述词槽和另一词槽的嵌套词槽映射集;
由所述数据处理系统确定所述嵌套词槽映射集中的所述另一词槽映射到另一值列表;以及
由所述数据处理系统基于所述所选模板内的另一词槽与所述另一值列表之间的映射从所述另一值列表中选择另一值,
其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中并将所选另一值插入所述所选模板中的所述另一词槽中。
6.如权利要求1所述的方法,进一步包括由所述数据处理系统用所述人工话语扩充所述数据集或训练数据集,以生成已扩充的训练数据集,用于训练模型以对包括所述实体的多个实体进行识别和分类。
7.如权利要求1所述的方法,其中,所述模板是基于包括以下条件的启发式方法来选择的:(i)在具有多个实体分类的模板与具有单一实体分类的模板中做出选择;(ii)权衡模板种类与模板质量;(iii)根据上下文对模板进行归类;(iv)模型是否需要每个模板的最低出现次数/用户想要教导所述模型的独特上下文;或(v)以上各项的任何组合。
8.一种系统,包括:
一个或多个处理器;以及
耦接至所述一个或多个处理器的存储器,所述存储器存储有能够由所述一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:
生成针对实体的要覆盖的值列表;
从具有所述实体的上下文的数据集中选择话语;
将所述话语转换为模板,其中,所述模板中的每个模板包括针对所述实体的映射到所述值列表的词槽;
从所述模板中选择模板;
基于所选模板内的词槽与针对所述实体的所述值列表之间的映射从所述值列表中选择值;以及
使用所述所选模板和所选值生成人工话语,其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中。
9.如权利要求8所述的系统,其中,所述处理进一步包括:
在从所述数据集中选择话语之前,使用训练数据集训练模型,其中,所述训练数据集是所述数据集或其子集;
使用测试数据集或验证数据集测试所述模型;
基于对所述模型的所述测试来评估所述模型的性能;以及
基于所述评估来识别所述实体。
10.如权利要求9所述的系统,其中,所述处理进一步包括:
用所述人工话语扩充所述数据集或所述训练数据集,以生成已扩充的训练数据集;
使用所述已扩充的训练数据集来训练所述模型;
使用所述测试数据集或所述验证数据集或另一测试数据集或验证数据集重新测试所述模型;
基于对所述模型的所述重新测试来评估所述模型的性能;
确定所述模型的所述性能满足预定义标准;以及
响应于所述模型满足所述预定义标准,将所述模型部署为聊天机器人系统的一部分。
11.如权利要求8所述的系统,其中,所述处理进一步包括:
确定所述所选模板内的所述词槽包括映射到所述值列表的第一元素以及映射到函数的第二元素;
基于所述所选模板内的所述词槽与所述函数之间的映射来处理所述函数,以生成函数值;以及
将所述所选值与所述函数值进行组合以获得词槽值,
其中,生成所述人工话语包括将所述词槽值插入所述所选模板的所述词槽中。
12.如权利要求8所述的系统,其中,所述处理进一步包括:
确定所述所选模板映射到包括所述词槽和另一词槽的嵌套词槽映射集;
确定所述嵌套词槽映射集中的所述另一词槽映射到另一值列表;以及
基于所述所选模板内的另一词槽与所述另一值列表之间的映射从所述另一值列表中选择另一值,
其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中并将所选另一值插入所述所选模板中的所述另一词槽中。
13.如权利要求8所述的系统,其中,所述处理进一步包括用所述人工话语扩充所述数据集或训练数据集,以生成已扩充的训练数据集,用于训练模型以对包括所述实体的多个实体进行识别和分类。
14.如权利要求8所述的系统,其中,所述模板是基于包括以下条件的启发式方法来选择的:(i)在具有多个实体分类的模板与具有单一实体分类的模板中做出选择;(ii)权衡模板种类与模板质量;(iii)根据上下文对模板进行归类;(iv)模型是否需要每个模板的最低出现次数/用户想要教导所述模型的独特上下文;或(v)以上各项的任何组合。
15.一种非暂态计算机可读存储器,所述非暂态计算机可读存储器存储有能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:
生成针对实体的要覆盖的值列表;
从具有所述实体的上下文的数据集中选择话语;
将所述话语转换为模板,其中,所述模板中的每个模板包括针对所述实体的映射到所述值列表的词槽;
从所述模板中选择模板;
基于所选模板内的词槽与针对所述实体的所述值列表之间的映射从所述值列表中选择值;以及
使用所述所选模板和所选值生成人工话语,其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中。
16.如权利要求15所述的非暂态计算机可读存储器,其中,所述处理进一步包括:
在从所述数据集中选择话语之前,使用训练数据集训练模型,其中,所述训练数据集是所述数据集或其子集;
使用测试数据集或验证数据集测试所述模型;
基于对所述模型的所述测试来评估所述模型的性能;以及
基于所述评估来识别所述实体。
17.如权利要求16所述的非暂态计算机可读存储器,其中,所述处理进一步包括:
用所述人工话语扩充所述数据集或所述训练数据集,以生成已扩充的训练数据集;
使用所述已扩充的训练数据集来训练所述模型;
使用所述测试数据集或所述验证数据集或另一测试数据集或验证数据集重新测试所述模型;
基于对所述模型的所述重新测试来评估所述模型的性能;
确定所述模型的所述性能满足预定义标准;以及
响应于所述模型满足所述预定义标准,将所述模型部署为聊天机器人系统的一部分。
18.如权利要求15所述的非暂态计算机可读存储器,其中,所述处理进一步包括:
确定所述所选模板内的所述词槽包括映射到所述值列表的第一元素以及映射到函数的第二元素;
基于所述所选模板内的所述词槽与所述函数之间的映射来处理所述函数,以生成函数值;以及
将所述所选值与所述函数值进行组合以获得词槽值,
其中,生成所述人工话语包括将所述词槽值插入所述所选模板的所述词槽中。
19.如权利要求15所述的非暂态计算机可读存储器,其中,所述处理进一步包括:
确定所述所选模板映射到包括所述词槽和另一词槽的嵌套词槽映射集;
确定所述嵌套词槽映射集中的所述另一词槽映射到另一值列表;以及
基于所述所选模板内的另一词槽与所述另一值列表之间的映射从所述另一值列表中选择另一值,
其中,生成所述人工话语包括将所述所选值插入所述所选模板的所述词槽中并将所选另一值插入所述所选模板中的所述另一词槽中。
20.如权利要求15所述的非暂态计算机可读存储器,其中,所述处理进一步包括用所述人工话语扩充所述数据集或训练数据集,以生成已扩充的训练数据集,用于训练模型以对包括所述实体的多个实体进行识别和分类。
CN202180041814.8A 2020-06-12 2021-06-11 在聊天机器人中实现稳健命名实体识别的实体级数据扩充 Pending CN115917553A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063038337P 2020-06-12 2020-06-12
US63/038,337 2020-06-12
PCT/US2021/036939 WO2021252845A1 (en) 2020-06-12 2021-06-11 Entity level data augmentation in chatbots for robust named entity recognition

Publications (1)

Publication Number Publication Date
CN115917553A true CN115917553A (zh) 2023-04-04

Family

ID=76797120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180041814.8A Pending CN115917553A (zh) 2020-06-12 2021-06-11 在聊天机器人中实现稳健命名实体识别的实体级数据扩充

Country Status (5)

Country Link
US (2) US11804219B2 (zh)
EP (1) EP4165540A1 (zh)
JP (1) JP2023530423A (zh)
CN (1) CN115917553A (zh)
WO (1) WO2021252845A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2569335B (en) * 2017-12-13 2022-07-27 Sage Global Services Ltd Chatbot system
US11720752B2 (en) * 2020-07-07 2023-08-08 Sap Se Machine learning enabled text analysis with multi-language support
US11599721B2 (en) * 2020-08-25 2023-03-07 Salesforce, Inc. Intelligent training set augmentation for natural language processing tasks
US11657227B2 (en) * 2021-01-13 2023-05-23 International Business Machines Corporation Corpus data augmentation and debiasing
US20230008868A1 (en) * 2021-07-08 2023-01-12 Nippon Telegraph And Telephone Corporation User authentication device, user authentication method, and user authentication computer program
US20230040181A1 (en) * 2021-08-03 2023-02-09 Samsung Electronics Co., Ltd. System and method for improving named entity recognition
US20230252287A1 (en) * 2022-02-07 2023-08-10 Accenture Global Solutions Limited Evaluation of reliability of artificial intelligence (ai) models
US11784833B1 (en) * 2022-07-25 2023-10-10 Gravystack, Inc. Apparatus and method for generating an endpoint path associated with a user
WO2024044491A1 (en) * 2022-08-22 2024-02-29 Oracle International Corporation Adaptive training data augmentation to facilitate training named entity recognition models
US11847565B1 (en) * 2023-02-14 2023-12-19 Fmr Llc Automatic refinement of intent classification for virtual assistant applications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190180196A1 (en) * 2015-01-23 2019-06-13 Conversica, Inc. Systems and methods for generating and updating machine hybrid deep learning models
US9910848B2 (en) * 2016-07-07 2018-03-06 International Business Machines Corporation Generating semantic variants of natural language expressions using type-specific templates
US10540967B2 (en) * 2016-11-14 2020-01-21 Xerox Corporation Machine reading method for dialog state tracking
US10795752B2 (en) * 2018-06-07 2020-10-06 Accenture Global Solutions Limited Data validation
US11281857B1 (en) * 2018-11-08 2022-03-22 Amazon Technologies, Inc. Composite slot type resolution
KR102634785B1 (ko) * 2019-03-26 2024-02-08 더 리전트 오브 더 유니버시티 오브 캘리포니아 보호된 데이터에 관한 분산형 개인정보 보호 컴퓨팅

Also Published As

Publication number Publication date
EP4165540A1 (en) 2023-04-19
WO2021252845A1 (en) 2021-12-16
US20210390951A1 (en) 2021-12-16
US20240013780A1 (en) 2024-01-11
US11804219B2 (en) 2023-10-31
JP2023530423A (ja) 2023-07-18

Similar Documents

Publication Publication Date Title
CN111860753B (zh) 用于训练模型的基于有向无环图的框架
CN114424185A (zh) 用于自然语言处理的停用词数据扩充
US11804219B2 (en) Entity level data augmentation in chatbots for robust named entity recognition
US11868727B2 (en) Context tag integration with named entity recognition models
JP2023520416A (ja) ドメイン外(ood)検出のための改良された技術
CN115398436A (zh) 用于自然语言处理的噪声数据扩充
US20220230000A1 (en) Multi-factor modelling for natural language processing
US20230205999A1 (en) Gazetteer integration for neural named entity recognition
CN116583837A (zh) 用于自然语言处理的基于距离的logit值
US20230095673A1 (en) Extracting key information from document using trained machine-learning models
CN116547676A (zh) 用于自然语言处理的增强型logit
CN116490879A (zh) 用于神经网络中过度预测的方法和系统
US20220229991A1 (en) Multi-feature balancing for natural language processors
CN118202344A (zh) 用于从文档中提取嵌入式数据的深度学习技术
CN118140230A (zh) 对经预训练的语言模型的单个转换器层的多头网络进行微调
US20230206125A1 (en) Lexical dropout for natural language processing
US20230154455A1 (en) Path dropout for natural language processing
US20240062112A1 (en) Adaptive training data augmentation to facilitate training named entity recognition models
US20240062108A1 (en) Techniques for training and deploying a named entity recognition model
US20230136965A1 (en) Prohibiting inconsistent named entity recognition tag sequences
US20230325599A1 (en) Training data augmentation using gazetteers and perturbations to facilitate training named entity recognition models
US20230419052A1 (en) Techniques for positive entity aware augmentation using two-stage augmentation
US20230153687A1 (en) Named entity bias detection and mitigation techniques for sentence sentiment analysis
US20230161963A1 (en) System and techniques for handling long text for pre-trained language models
WO2024044491A1 (en) Adaptive training data augmentation to facilitate training named entity recognition models

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