CN112487156A - 减少使用数据库的对话系统的训练 - Google Patents
减少使用数据库的对话系统的训练 Download PDFInfo
- Publication number
- CN112487156A CN112487156A CN202010942350.5A CN202010942350A CN112487156A CN 112487156 A CN112487156 A CN 112487156A CN 202010942350 A CN202010942350 A CN 202010942350A CN 112487156 A CN112487156 A CN 112487156A
- Authority
- CN
- China
- Prior art keywords
- database
- named entity
- requestable
- data
- dialog system
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 91
- 238000010801 machine learning Methods 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 description 29
- 230000009471 action Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 235000013550 pizza Nutrition 0.000 description 6
- 241000282414 Homo sapiens Species 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000004424 eye movement Effects 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 235000001674 Agaricus brunnescens Nutrition 0.000 description 2
- 241000207836 Olea <angiosperm> Species 0.000 description 2
- CDBYLPFSWZWCQE-UHFFFAOYSA-L Sodium Carbonate Chemical compound [Na+].[Na+].[O-]C([O-])=O CDBYLPFSWZWCQE-UHFFFAOYSA-L 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 235000013361 beverage Nutrition 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000010006 flight Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000037211 monthly cycles Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- LFQCEHFDDXELDD-UHFFFAOYSA-N tetramethyl orthosilicate Chemical compound CO[Si](OC)(OC)OC LFQCEHFDDXELDD-UHFFFAOYSA-N 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3343—Query execution using phonetics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1815—Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及减少使用数据库的对话系统的训练。描述了用于使用从数据库导出的数据来训练和执行机器学习模型的技术。对话系统使用来自数据库的数据以生成用于自然语言理解应用的相关训练数据。生成的训练数据随后被用于训练机器学习模型。与传统的标记技术相比,这使对话系统可以利用大量可用数据来加快训练过程。对话系统使用经过训练的机器学习模型从接收到的口头话语中识别命名实体,并基于所识别的命名实体生成并输出语音响应。
Description
相关申请的交叉引用
本申请按照35U.S.C.119(e)要求申请日为2019年9月12日标题为“面向数据库的对话技术”的美国申请62/899,647的权益和优先权,出于所有目的,通过引用将其内容全部合并于本文。
技术领域
本公开总体上涉及对话系统。更具体地但非限制性地,本公开描述了用于提高训练效率和将机器学习模型应用到使用数据库的对话处理任务的技术。
背景技术
现在,越来越多的设备使用户能够使用声音或口头语音与设备直接进行交互。例如,对于用户可以提出问题或进行陈述以请求执行某些动作的设备,用户可以用自然语言与这种设备对话。作为响应,设备执行请求的动作或使用声音输出响应用户的问题。由于使用声音直接交互是人类与周围环境进行交流的一种更自然,更直观的方式,因此这种基于语音的系统的普及正以天文数字的速度增长。
在常规系统中,对话系统使用已经在标记数据上训练过的机器学习模型。传统上,对数据进行标记是由人工完成,并且会是一个繁琐且耗时的过程。通常,用于训练模型的数据越多,模型能够进行预测的准确性就越高。但是,用大量训练数据来改进模型的愿望与手工标记大数据语料库的实践之间存在矛盾。
发明内容
本公开总体上涉及对话系统。更具体地,描述了一种技术,用于使用数据库来训练机器学习模型,该机器学习模型随后被用于响应于声音输入来执行任务。本文描述了各种实施例,包括方法、系统、存储程序的非暂态计算机可读存储介质、代码、由一个或多个处理器执行的指令等。
在某些实施例中,对话系统接收口头话语。对话系统使用机器学习模型从口头话语中别命名实体。机器学习模型已经在从数据库提取的数据上进行了训练,该数据库基于数据库中的列将多个命名实体映射到相应的命名实体类型。对话系统基于所识别的命名实体生成语音响应,并提供语音响应作为输出。
在一些方面,对话系统还从数据库提取原始数据,从提取的原始数据生成训练数据,并且在所生成的训练数据上训练机器学习模型。在一些方面,生成训练数据包括识别与数据库的列相关联的元数据,并且使用元数据和列的对应条目作为种子数据来生成训练数据。在一些方面,机器学习模型是第一机器学习模型,并且命名实体是第一命名实体,并且该方法进一步包括使用第二机器学习模型来识别第二命名实体。
在一些方面,数据库进一步包括多个可请求值,并且该方法进一步包括,由对话系统使用数据库,识别多个可请求值中的映射到所识别的命名实体的可请求值,其中语音响应包括可请求值或其派生物。
在一些方面,数据库包括多个表格,并且该方法还包括基于所识别的命名实体从多个表格中选择特定表格,其中,所选择的表格用于识别可请求值。在一些方面,识别可请求值包括对所选择的表格执行查询以检索映射到所识别的命名实体的可请求值。
实施例还包括被配置用于执行本文描述的方法的系统和计算机可读介质(例如,非暂态计算机可读存储器)。
通过参考以下说明书,权利要求书和附图,前述以及其他特征和实施例将变得更加显而易见。
附图说明
图1A和1B是描述根据某些实施例的对话系统的简化框图。
图2是描述根据某些实施例的方法的简化流程图,该方法用于使用机器学习模型来处理语音输入,该机器学习模型已经在从数据库导出的数据上进行了训练。
图3是描述根据某些实施例的方法的简化流程图,该方法用于训练在图2方法中使用的机器学习模型。
图4是描述根据某些实施例的方法的简化流程图,该方法用于使用数据库来回答查询。
图5A和5B是根据某些实施例的数据库表格的简化示例。
图6描述了用于实现实施例的分布式系统的简化图。
图7是根据某些实施例的基于云的系统环境的简化框图,其中各种存储相关的服务可以被提供为云服务。
图8示出了可以用于实现某些实施例的示例性计算机系统。
具体实施方式
在下面的描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实施各种实施例。附图和描述不是用来限制的。词语“示例性”在本文中用来表示“用作示例,实例或说明”。本文中作为示例描述的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
能够通过声音输入和声音输出与用户对话的支持声音的系统可以有多种形式。例如,可以将这样的系统设置为独立设备,数字或虚拟助手,具有声音功能的服务,等等。在每一种形式中,系统能够接收声音或语音输入,理解输入,生成响应或响应于输入采取动作,以及使用声音输出来输出响应。在某些实施例中,这种支持声音的系统中的对话功能由对话系统或基础设施(“对话系统”)提供。
对话系统通常使用训练过的机器学习算法。传统上,这些机器学习算法在使用之前需要漫长且计算密集的训练期。在加快训练过程方面已取得进展(例如,使用深度学习)。但是,减少训练的尝试通常依赖于常规训练数据,并且不会像期望的那样减少训练期。
如上所述,通常在标记数据上训练用于对话系统的机器学习模型。传统上,对数据进行标记是由人工完成,并且会是一个繁琐且耗时的过程。而通过使用大量训练数据获得的准确性的提高与手工标记大数据语料库的实践之间存在矛盾。
根据一些实施例,与上述传统方法相比,使用从预先存在的数据库导出的信息,可以减少或消除机器学习模型的训练阶段。在某些实施例中,大量的训练数据可以从数据库或知识库上传到自然语言理解(NLU)系统,该系统将随机生成从上传的数据导出的相关训练数据。这样可以进行快速训练,并提高机器学习模型(例如用于机器人应用程序的命名实体识别器和语义解析器)的准确性。对话系统可以使用数据库的属性(例如列标题)来训练机器学习模型,从而极大地减少甚至消除了生成训练数据所需的工作量。
在一些实施例中,这种机器学习模型可以被实施为命名实体识别器(Named EntityRecognizer,NER)。NER是经过训练以识别事物名称的模型,这些事物名称可以是专有名称(例如,佛罗里达州),商品(例如,鞋子),服务(例如,按摩)等等。NER还可以经过训练来识别描述性词(word)或短语,例如颜色和尺寸。因此,如本文所使用的“命名实体”可以包括机器学习模型已经经过训练以识别的包括事物的词或短语,以及与这些事物相关联的词或短语。在识别命名实体后,NER可以使用命名实体类型标记相应的词或短语。命名实体类型是命名实体的类别。例如,短语“纽约”(New York)被标记为命名实体类型城市,而词“七十”(seventy)被标记为命名实体类型温度。
在一些实施例中,在运行时使用与用于训练机器学习模型相同的数据库来回答经由用户输入接收的查询。数据库中每个表格中的列被指定为可通知列和/或可请求列。可通知列是包含用户可以提供来指定请求的词或短语(“可通知值”)的列。可通知值的一个示例是用户查询“地球几岁了?”中的地球。可请求列是包含用户可以请求并可能被包含在系统准备的响应中的词或短语(“可请求值”)的列。可请求值的示例包括5,000(例如,请求的距离)和有存货(例如,请求的可用性状态)。对话系统可以在接收到的声音输入中识别出这种可通知值和/或可请求值。对话系统可以使用所识别的值来对数据库中的表格执行查询,以检索并提供用户请求的信息。
作为说明的非限制性示例,零售商店伙伴为对话系统提供了数据库,该数据库包含带有产品描述的表格。一个表格可以包含男鞋的描述,尺寸、颜色、样式、材料、制造商、价格等作为“可通知”列,而库存情况、价格等作为“可请求”列。“可通知”列是可以作为用户输入(例如,作为查询的一部分)接收的列。“可请求”列是可以被识别为用于用户输出和/或响应于用户查询来执行任务的列。对话系统训练一组机器学习模型,以识别可能的尺寸、可能的颜色、制造商的名称等每一种情况。
对话系统从每个可通知的数据库表格列中提取该列中所有不同名称的列表。对话系统用该不同名称的列表作为种子数据来训练命名实体识别器(NER),该命名实体识别器可以识别与该数据库列相关的实体。对每个数据库列重复此操作,从而产生一组NER。
对话系统收到用户查询“您有12号跑鞋吗?”。当接收到用户查询时,对话系统对用户查询执行该组NER。“制造商”NER识别为“鞋型”NER识别为“跑鞋”,而“尺寸”NER将“12”识别为可能的鞋子尺寸。对话系统使用这些NER进行的匹配来识别用户可能询问有关哪个数据库表格的信息。因为制造商,鞋子的样式和尺寸NER与用户查询匹配,所以对话系统确定此查询可能与关于鞋子的数据库表格有关。
如果用户提供了足够数量的可通知值来执行查询以检索所请求的信息,则对话系统将执行查询。否则,对话系统会提示用户提供其他信息。例如,在查阅表格之后,对话系统通过请求用户提供用户想要的信息的商店的位置来询问用户可通知列信息。
一旦对话系统具有足够的信息来执行查询,对话系统就在存储有关鞋子的信息的数据库表格上执行查询。查询的结果是一组匹配的数据库表格条目。与这些数据库条目关联的可请求信息作为输出传递给用户。例如,识别出鞋子的价格和库存情况并将其提供给用户。
根据一些实施例,图1A和1B示出了对话系统100的示例。对话系统100是专用计算系统,其可以用于使用大量计算机处理周期来处理大量数据。图1A和1B中描绘的设备的数量是用于说明性目的而设置的。可以使用不同数量的设备。例如,虽然图1A中描绘的每个子系统被示出为单个设备,但是多个设备可以被替代地使用。
参考图1A,对话系统100被配置为从用户102接收声音或语音输入104(也称为口头话语或语音话语)。然后,对话系统100可以解释声音输入。对话系统100可以维持与用户102的对话,并且可能基于声音输入的解释来执行或促使一个或多个动作被执行。对话系统100可以准备适当的响应,并使用声音或语音输出将响应输出给用户。
在某些实施例中,由对话系统执行的处理由一系列组件或子系统来实现,其包括语音输入组件105,唤醒词检测(WD)子系统106,自动语音识别(ASR)子系统108,包括命名实体识别器(NER)子系统112和语义解析器子系统114的自然语言理解(NLU)子系统110,对话系统数据库180,伙伴数据库175,对话管理器(DM)子系统116,自然语言生成器(NLG)子系统118,文本到语音(TTS)子系统120和语音输出组件124。上面列出的子系统可以仅以软件(例如,使用代码,程序或可由一个或多个处理器或核执行的指令)、硬件、或硬件和软件的组合来实现。在某些实施方式中,一个或多个子系统可以被组合成单个子系统。附加地或替代地,在一些实施方式中,本文所描述的由特定子系统执行的功能可以由多个子系统来实现。
语音输入组件105包括被配置为接收语音输入104的硬件和软件。在某些情况下,语音输入组件105可以是对话系统100的一部分。在某些其他情况下,语音输入组件105可以与对话系统100分离并且通信地耦合到对话系统100。例如,语音输入组件105可以包括麦克风,该麦克风耦合到被配置为将语音输入数字化并将语音输入发送到唤醒词检测子系统106的软件。
唤醒词检测(WD)子系统106被配置为针对与特殊声音或词或词集合(称为唤醒词)相对应的输入进行侦听和监视音频输入流。在检测到为对话系统100配置的唤醒词之后,WD子系统106被配置为激活ASR子系统108。在某些实施方式中,可以向用户提供激活或去激活WD子系统106的能力(例如,说出唤醒词按下按钮)。当被激活时(或以激活模式操作),WD子系统106被配置为连续地接收音频输入流,并且处理音频输入流以识别与唤醒词相对应的音频或声音输入。当检测到与唤醒词相对应的音频输入时,WD子系统106激活ASR子系统108。
如上所述,WD子系统106激活ASR子系统108。在支持声音的系统的一些实施方式中,可以使用除唤醒词以外的机制来触发或激活ASR子系统108。例如,在一些实施方式中,设备上的按钮可以用于触发ASR子系统108的处理而无需唤醒词。在这样的实施方式中,可以不设置有WD子系统106。当按下或激活按钮时,在按钮激活之后接收的声音输入被提供给ASR子系统108以进行处理。在一些实施方式中,可以在接收到要处理的输入时激活ASR子系统108。
ASR子系统108被配置为在触发或唤醒信号(例如,唤醒信号可以由WD子系统106在检测到语音输入中的唤醒词时发送,唤醒信号可以在按钮激活时接收,等等)之后接收和监视口头声音输入,并将声音输入转换为文本。作为其处理的一部分,ASR子系统108执行语音到文本的转换。口头语音或声音输入可以是自然语言形式,并且ASR子系统108被配置为以语音输入的语言生成对应的自然语言文本。然后,由ASR子系统产生的文本被馈送到NLU子系统110以进行进一步处理。由ASR子系统108接收的声音输入可以包括一个或多个词、短语、从句、句子、问题等。ASR子系统108被配置为为每个口头从句生成文本话语并将文本话语馈送到NLU子系统110进行进一步处理。
NLU子系统110接收由ASR子系统108生成的文本。由NLU子系统110从ASR子系统108接收的文本可以包括与口头词、短语、从句等相对应的文本话语。NLU子系统110将每个文本话语(或一系列文本话语)转换为相应的逻辑形式。
在某些实施方式中,NLU子系统110包括命名实体识别器(NER)子系统112和语义解析器(SP)子系统114。NER子系统112接收文本话语作为输入,识别文本话语中的命名实体,并使用与所识别的命名实体相关的信息来给文本话语加标签。
如下面关于图1B进一步描述的,NER子系统112通信地耦合到对话系统数据库180,对话系统数据库180存储训练数据182。NER子系统112包括一个或多个在训练数据182上训练的NER。如本文所述,训练数据182从伙伴数据库175中的表格导出。在一些实施例中,NER子系统112在运行时使用伙伴数据库175来选择伙伴数据库175中与所识别的命名实体相对应的表格。
由NER子系统112生成的加过标签的文本话语被馈送到SP子系统114,SP子系统114被配置成为每个加过标签的文本话语(或为一系列加过标签的文本话语)生成逻辑形式。为话语生成的逻辑形式可以识别与文本话语相对应的一个或多个意图。话语的意图识别话语的目的。意图的示例包括“订购比萨饼”和“查找方向”。例如,意图可以识别被请求执行的动作。除了意图之外,为文本话语所生成的逻辑形式还可以识别所识别的意图的间隙(slot)(也称为参数或自变量)。例如,对于语音输入“我想订购一份大的带有蘑菇和橄榄的意大利辣香肠比萨饼”,NLU子系统110可以识别订购比萨饼的意图。NLU子系统还可以识别并填充间隙,例如,披萨_尺寸(用大填充)和披萨_顶部(用蘑菇和橄榄填充)。NLU子系统可以使用基于机器学习的技术,规则(可能是特定领域的)或两者的组合来生成逻辑形式。然后,由NLU子系统110产生的逻辑形式被馈送到DM子系统116以进行进一步处理。
DM子系统116被配置为基于从NLU子系统110接收的逻辑形式来管理与用户的对话。作为对话管理的一部分,DM子系统116被配置为跟踪对话状态,发起执行或自身执行一个或更多动作或任务,并确定如何与用户互动。例如,这些动作可以包括查询一个或多个数据库,产生执行结果以及其他动作。例如,DM子系统116被配置为解释以从NLU子系统110接收的逻辑形式识别的意图。基于该解释,DM子系统116可以发起其解释为由用户提供的声音输入所请求的一个或多个动作。在一些实施例中,如关于图4进一步的描述,DM子系统116使用伙伴数据库175来识别所请求的信息。
在某些实施例中,DM子系统116基于当前和过去的声音输入并基于为DM子系统116配置的一系列规则(例如,对话策略)来执行对话状态跟踪。这些规则可以指定不同的对话状态,状态之间的转换条件,处于特定状态时要执行的动作等。这些规则可能是特定领域的。DM子系统116还生成响应,以将其传达回对话中涉及的用户。这些响应可以是基于由DM子系统116发起的动作及其结果。DM子系统116生成的响应被馈送到NLG子系统118进行进一步处理。
NLG子系统118被配置为生成与由DM子系统116生成的响应相对应的自然语言文本。文本可以以能够被TTS子系统120转换为语音的形式来生成。TTS子系统120从NLG子系统118接收文本,并将每个文本转换为语音或声音音频,然后可以通过对话系统的音频或语音输出组件124(例如,扬声器或耦合到外部扬声器的通信通道)将其输出给用户。在一些情况下,语音输出组件124可以是对话系统100的一部分。在一些其他情况下,语音输出组件124可以与对话系统100分离并且通信地耦合到对话系统100。
如上所述,协作的对话系统100的各个子系统为对话系统100提供了功能,使其能够接收语音输入104,以及使用语音输出122做出响应,以及使用自然语言语音与用户保持对话。上述各种子系统可以使用单个计算机系统或使用协同工作的多个计算机系统来实现。例如,对于实现支持声音的系统的设备,上述对话系统100的子系统可以完全在与用户交互的设备上实现。在一些其他实施方式中,对话系统100的一些组件或子系统可以在与用户交互的设备上实现,而其他组件可以相对设备远程实现,可能在某些其他计算设备,平台或服务器上实现。
如上所述,在某些实施例中,可以使用一系列子系统来实现对话系统100。在一些实施例中,一个或多个子系统可以被组合成单个子系统。在某些实施例中,由特定子系统提供的功能可以由多个子系统提供。特定子系统也可以使用多个子系统来实现。
在某些实施例中,机器学习技术可以用于实现对话系统100的一个或多个功能。例如,如使用神经网络(例如,深度神经网络)实现的监督机器学习技术,可以用于实现对话系统100的一个或多个功能。作为示例,可以提供经过训练以执行所执行的ASR功能的神经网络,并且该训练模型可以由ASR子系统108用于其处理。这样的神经网络实施方式可以将语音输入作为输入,并将文本话语输出到NLU子系统。对话系统100的其他子系统也可以使用基于机器学习的模型。
现在参考图1B,对话系统100的NER子系统112还可以包括多个NER(NER A112A,NER B112B,...NER N 112N)。NER是经过训练以识别特定类别的命名实体的机器学习模型。例如,对话系统可以维持用于识别价格的NER,用于识别品牌名称的NER和用于识别颜色的NER。
每个NER在训练数据182上训练,训练数据182可以存储在对话系统数据库180中。对话系统数据库180可以是用于存储数据的存储单元和/或设备(例如,文件系统,数据库,表格集合或其他存储机制)。对话系统数据库180可以包括多个不同的存储单元和/或设备。对话系统数据库180可以是对话系统本地的(例如本地存储装置)和/或通过网络连接到对话系统(例如云存储装置)。训练数据182从伙伴数据库175提取的数据中导出。
在一些实施例中,伙伴数据库175是伙伴系统170的一部分。例如,伙伴数据库175可以是存储信息的知识库或公司本体,伙伴系统170用该信息来执行各种任务(例如,订单履行,库存管理等)。伙伴数据库175可以是用于存储数据的存储单元和/或设备(例如,文件系统,数据库,表格的集合或其他存储机制)。伙伴数据库175可以包括多个不同的存储单元和/或设备。
伙伴系统170可以与和对话系统100合作工作的实体相关联。在一些实施例中,伙伴系统170将来自伙伴数据库175的原始数据提供给对话系统100,对话系统100将处理该原始数据以为伙伴系统170执行对话相关任务。例如,可以由商店管理伙伴系统170,该商店将与库存有关的数据存储在伙伴数据库175中,并使用存储在伙伴数据库175中的数据来完成并保留与库存相关的交易的记录。伙伴系统的其他示例包括存储科学数据的系统(例如,存储地质和生物数据的大学)和存储有关不同餐厅的信息的系统(例如,存储诸如位置,菜单和不同的餐厅位置的营业时间之类的信息的餐厅计算系统)。
在一些实施例中,伙伴数据库175包括多个表格(表格A 175A,表格B 175B,...表格N175N)。每个表格都存储特定类别的数据。例如,伙伴系统170由销售服装的实体管理,并且各个表格对应于该实体销售的服装的类别,例如衬衫,裤子等。作为特定示例,伙伴数据库175存储如图5A和图5B所示的表格。如图5A所示,第一表格存储与女鞋有关的信息。如图5B所示,第二表格存储与男裤有关的信息。作为另一示例,数据库可以存储表格,该表格包括存储与修指甲类型有关的信息的表格,存储与修脚类型有关的信息的表格以及存储与按摩类型有关的信息的表格。作为另一示例,数据库可以存储表格,该表格包括存储与恒星有关的信息(例如,名称,重量,光度)的表格,存储与行星有关的信息的表格以及存储与彗星有关的信息的表格。
在一些实施例中,对话系统100从伙伴系统175的表格175A,175B,...175N获得数据。对话系统100可以在初始时间或周期性地从伙伴数据库175下载数据。该数据可以用于生成训练数据182,如下面关于图3所述。
图2描述了根据一些实施例示出了使用机器学习模型来处理语音输入的方法200的简化的流程图,该机器学习模型已经在从数据库导出的数据上进行了训练。图2所描述的处理可以由相应系统的一个或多个处理单元(例如,处理器、核等)执行的软件(例如,代码、指令、程序)、硬件或其组合实现。该软件可以存储在非暂态存储介质上(例如,在存储设备上)。图2所示的方法和以下描述旨在是说明性和非限制性的。虽然图2描述了以特定顺序或次序发生的各种处理步骤,这并不旨在是限制性的。在某些替代实施例中,可以以一些不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图2中所描述的处理可以由图1A和1B的NLU子系统110与上述对话系统100的其他组件协作执行。
在202,对话系统接收口头话语。例如,对话系统可以经由语音输入组件105从用户接收口头话语。口头话语可以作为波形被接收。口头话语可以是特定语言和自然语言查询形式。口头话语可以指定用户希望对话系统回答的问题,指定用户希望对话系统发起的一个或多个动作(例如,“我想要一个中号意大利辣香肠比萨饼”)等。ASR子系统108可以处理口头话语以生成文本话语,ASR子系统108将文本话语传递给NLU子系统110以进行进一步处理。
在某些实施例中,例如当用户在与对话系统聊天期间输入文本时,可以以文本形式接收输入,而不是接收口头话语(如202)。本公开中描述的技术可以与接收输入的系统一起使用,该输入可以是口头语音,文本输入或其组合的形式。
在204,对话系统使用机器学习模型从在202接收到的口头话语中识别命名实体。机器学习模型已在从数据库中提取的数据上进行了训练。该数据库基于数据库中的列将多个命名实体映射到相应的命名实体类型,如下面关于图3所描述的。该模型已经经过训练,可以从语音输入中识别命名实体。经过训练以识别命名实体的这种模型称为命名实体识别器(NER)。
在一些实施例中,对话系统将机器学习模型应用于与语音输入相对应的话语以识别命名实体。例如,基于语音输入“我想预订飞往博拉博拉岛的航班”,命名实体识别器分析每个词并识别命名实体“博拉博拉岛”。识别命名实体可以包括用命名实体类型标记话语中的一个或多个词或以其他方式将话语中的一个或多个词与命名实体类型相关联(例如,用命名实体类型“位置”标记博拉博拉岛)。
在一些实施例中,对话系统使用相应的多个机器学习模型从语音输入中识别多个命名实体。多个命名实体可以使用多个专门的NER来识别。例如,对话系统执行尺寸的NER和样式的NER,以将“7”识别为尺寸,将“乐福鞋”识别为样式。因此,在一些实施例中,对话系统包括第一机器学习模型和第二机器学习模型。对话系统使用第一机器学习模型来识别第一命名实体(例如,通过对从语音输入导出的话语执行鞋子样式的NER来识别命名实体“高跟鞋”)。对话系统使用第二机器学习模型来识别第二命名实体(例如,通过对从语音输入导出的话语执行鞋子尺寸的NER来识别命名实体“10”)。替代地或附加地,对话系统可以执行已经被训练以识别多个命名实体类型的NER(例如,识别尺寸和样式两者的NER)。
对话系统可以基于所识别的命名实体来确定逻辑形式。对话系统可以进一步使用从语音输入中辨别出的附加词来确定逻辑形式(例如,诸如消除歧义和间隙填充的任务)。对话系统可以确定口头话语的意图。例如,如果话语包括词“预定”或“购买”以及“航班”或“汽车”或“火车”,则一组规则可以分配预定行程意图。对话系统可以基于话语中识别的词来填充间隙(例如,对话系统可以将意大利辣香肠分配给顶部间隙)。
在206,对话系统基于在204识别的命名实体和逻辑形式来生成语音响应。在一些实施例中,生成响应可以包括使用伙伴数据库来识别值(“可请求值”),如下面关于图4的进一步描述。对话系统可以通过打包(一个或多个)所识别的可请求值(可能带有附加词或短语)来生成响应。在一些实施例中,对话系统准备的响应近似于与人的自然对话。为此,对话系统可以向这些值添加解释性短语。响应可以包括值(例如,“鞋子的价格为50美元”,其中50美元是所识别的值)。替代地或附加地,响应可以包括基于所识别的值准备的信息(例如,对话系统检索值有_存货(IN_STOCK),并返回输出“是,我们有红色的法拉利存货。”)。
在一些实施例中,对话系统生成语音输出。对话系统通过对话管理器子系统116和NLG子系统118生成文本响应。对话系统可以将文本响应输出到文本到语音子系统120,后者将文本响应转换为语音响应。
在208,对话系统提供语音响应作为输出。对话系统可以经由语音输出组件124输出口头响应作为语音输出122(例如,向用户)。替代地或附加地,输出响应可以被呈现为文本(例如,可以经由诸如屏幕的视觉输出设备来输出由NLG子系统228生成的文本响应)。
在一些实施例中,对话系统可以进一步执行与所识别的可请求值相对应的任务。例如,系统可以下达食品订单,预定航班等等。
图3描述根据一些实施例示出了用于训练机器学习模型的方法300的简化流程图,该机器学习模型在图2的框204使用。图3所描述的处理可以由相应系统的一个或多个处理单元(例如,处理器,核等)执行的软件(例如,代码、指令、程序),硬件或其组合实现。该软件可以存储在非暂态存储介质上(例如,在存储设备上)。图3所示的方法和以下描述旨在是说明性和非限制性的。虽然图3描述了以特定顺序或次序发生的各种处理步骤,这并不旨在是限制性的。在某些替代实施例中,可以以一些不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图3中所描述的处理可以由图1A和1B的NLU子系统110与上述对话系统100的其他组件协作执行。
在302,对话系统从数据库(例如,伙伴数据库175)提取原始数据。对话系统可以从由伙伴系统170管理的数据库中上传大量数据。在一些实施例中,伙伴系统170(例如,与寻求对话系统支持以执行对话处理服务的公司相关的计算系统)向对话系统提供包含多个表格的伙伴数据库175。从伙伴数据库175提取的数据是“原始的”,因为它还没有被标记或以其他方式被处理以进行训练。对话系统可以从数据库中提取一些或全部原始数据。提取原始数据可以包括将数据从伙伴系统通过网络传输到对话系统。数据可以通过适当的手段被传输,如API拉取(pull),数据摄取管道,和/或通过网络传输消息。所提取的数据可以被存储到对话系统以进行进一步处理。
在304,对话系统识别数据库中的表格中与命名实体相对应的列。数据库基于数据库中的列将多个命名实体映射到相应的命名实体类型。例如,如图5A和5B所示,数据库可以包括多个列。每列包括标题,该标题指定存储在该列中的数据的类型(并在图5A和5B所示的示例中列出)。数据库中的信息和/或与数据库关联的补充数据可用于辨别对应列中条目(命名实体)的命名实体类型。在某些情况下,列的子集可能对应于命名实体。在这种情况下,提供数据库的伙伴系统可以指定某些列对应于命名实体。通常列的命名实体状态可以被指定(例如,命名实体列用1加标签,其他列用0加标签)。替代地或附加地,列的命名实体状态可以被指定为特定的命名实体类型(例如,鞋子的尺寸)。在某些情况下,对话系统可以基于列元数据确定命名实体类型。例如,列元数据指定特定列中的条目是绘画的名称。根据此列元数据,对话系统确定该列用于命名实体类型“画”。
在一些实施例中,对话系统识别数据库中与可通知值和可请求值相对应的列。数据库中每个表格中的每一列都可以被分类为“可通知”或“可请求”。可通知意味着用户可以提供此信息。可请求意味着用户可以要求此信息。在一些实施例中,对话系统基于伙伴系统提供的信息将表格中的列识别为可通知的或可请求的。例如,伙伴系统可以提供文件以及对数据库的访问,该文件指定某些列是可通知的而某些列是可请求的。作为另一个示例,伙伴系统可以将元数据添加到列标题,以指示每个列是可通知的和/或可请求的。在某些情况下,对话系统可以确立可通知列为命名实体列。
在306,对话系统从提取的原始数据生成训练数据。在一些实施例中,对话系统从在304识别的指定每个命名实体的数据库表格列中,提取该列中每个不同名称的列表。对话系统可以使用提取的信息随机地生成训练数据。在一些实施例中,对话系统用命名实体类型标记每个不同的名称。命名实体类型可以由对话系统使用表格元数据和/或在304获得的其他信息自动确定。生成训练数据可以包括识别与数据库的列关联的元数据,以及使用元数据和相对应的列的条目作为种子数据以生成训练数据。例如,与特定列相关联的元数据可用来使用命名实体类型“鞋子尺寸”标记列中的每个条目。对话系统识别列标记,并在标记该列中的每个不同名称时应用该列标记或其派生物。
在一些实施例中,对话系统使用自举算法来产生训练数据。自举算法涉及从未标记的数据中学习。一种方法是估计未经标记的数据的标记,将标记合并为自举算法的训练数据,然后迭代该过程。该自举过程通常从少量种子数据(例如,人工标记的数据)开始。(参见,例如,R.Jones,A.McCallum,K.Nigam,以及E.Riloff的“用于文本学习任务的自举”(Bootstrapping for text learning tasks),来源于IJCAI-99文本挖掘研讨会:基础,技术和应用1999(in IJCAI-99Workshop on Text Mining:Foundations,Techniques andApplications 1999))。替代地或附加地,对话系统使用零样本学习(zero-shot learning)技术来训练(一个或多个)机器学习模型。在零样本学习中,系统会在标记和未标记的数据两者上进行训练。训练数据中的知识将被传输,以便系统也可以标记未标记的数据。这可以通过使用与“已看到的类”(seen class)相对应的标记训练数据以及有关“未看到的类”(unseen class)如何与已看到的类相关联的信息来完成。(参见,例如,Wang,W,Zheng,V.,Yu,H,Miao,C,的“零样本学习概览:设置、方法和应用”,《关于智能系统和技术的ACM交易》,第13号(A Survey of Zero-Shot Learning:Settings,Methods,and Applications,InACM Transactions on Intelligent Systems and Technology,Article No.13),网址为https://doi.org/10.1145/3293318(2019年1月))。
在一些实施例中,数据库的元数据可以用作种子数据而无需人工标记。例如,对话系统可以自动从列标题中提取标记,并将其应用于该列中的条目。作为一个具体示例,数据库包括一组表格,每个表格都包括指定为“尺寸”的列。对话系统会自动用命名实体类型“尺寸”标记这些列中的条目。然后,对话系统启动自举过程,以生成数据库中附加条目的标记和/或微调标记过程。基于将数据库中对应列指定为“尺寸”列的数据库元数据,以及每个表格中的上下文信息,对话系统可以迭代自举以微调标签,为表格中的一组值指定“鞋号”,“男式长裤号”和“女式长裤号”。作为一个具体示例,考虑到其中存储的品牌名称,尺寸和价格,自举算法预测男士裤子可能有特定的表格。因此,对话系统会确定该表格中的“尺寸”列是针对男士的裤子尺寸。
在308,对话系统使用生成的训练数据训练机器学习模型以识别与所识别的列相对应的命名实体。对话系统训练机器学习模型以识别与在304所识别的列相对应的命名实体。对话系统使用在306生成的训练数据训练机器学习模型(例如,NER)。
如上文关于306所描述的,在一些实施例中,通过使用具有已知类型(例如,“男鞋尺寸”=命名实体类型)的数据库列,应用零样本学习技术以基于补充信息(例如,女鞋尺寸包括与男鞋尺寸相似的数字条目)扩展到指定类。因此,在处理了初始训练数据之后,伙伴数据库175可以添加对话系统看不到的附加表格。对话系统仍将能够使用新表格回答问题。
在一些实施例中,对话系统训练多个机器学习模型,每个机器学习模型被训练以识别特定类型的命名实体。例如,对话系统可以训练一组专门的NER来识别特定类型的命名实体:训练“鞋子尺寸”NER来识别鞋子尺寸,并且训练“颜色”NER来识别颜色。对话系统可以训练一组NER模型,以识别每个可能的表格条目或表格条目的子集(例如,尺寸,可能的颜色,制造商的名称等)。
在一些实施例中,对话系统使用图3的技术以训练其他类型的对话处理模型。例如,对话系统可以将这些技术应用于机器学习模型(例如语义解析器),而不是一个或多个NER。以与上文关于图3所描述的类似的方式,语义解析器可以在从数据库导出的数据上训练。例如,通过在训练阶段识别列元数据指定的数据类型来训练语义解析器以填充间隙。然后,以与上文关于图2所描述的类似的方式,使用经过训练的语义解析器以基于用户输入填充间隙,其中间隙填充可以最终用于向用户提供响应。
图4描述根据一些实施例示出了在回答用户查询中使用伙伴数据库的方法400的简化流程图。方法400可以用于在图2的框206生成响应。图4所描述的处理可以由相应系统的一个或多个处理单元(例如,处理器,核等)执行的软件(例如,代码、指令、程序)、硬件或其组合实现。该软件可以存储在非暂态存储介质上(例如,在存储设备上)。图4所示的方法和以下描述旨在是说明性和非限制性的。虽然图4描述了以特定顺序或次序发生的各种处理步骤,这并不旨在是限制性的。在某些替代实施例中,可以以一些不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图4中所描述的处理可以由图1A的DM子系统116与上述对话系统100的其他组件协作执行。
在402,对话系统基于在204识别的命名实体,从数据库(例如,伙伴数据库175)的多个表格中选择表格。如以上有关图1A和1B所描述的,对话系统存储或通信地耦合到伙伴数据库175,该伙伴数据库175存储多个表格(例如,表格175A,175B,...,175N)。不同的表格可以对应于不同的商品类型,服务或信息类型。对话系统基于在204所识别的一个或多个命名实体来选择伙伴数据库175中的特定表格。对话系统可以选择包含了在204所识别的命名实体的表格。
例如,对话系统识别多个命名实体,并选择包括了在204所识别的所有命名实体或最多所识别的命名实体的表格。替代地或附加地,可以使用生成匹配的NER来识别表格。作为一个具体示例,在用户请求“吉米的一箱苏打水多少钱?”中,“品牌”NER识别为“吉米”,“饮料类型”NER识别为“苏打水”,而“数量”NER识别为“箱”。因为这3个NER模型与用户查询匹配,所以系统确定此查询可能与有关饮料的数据库表格有关。替代地或附加地,表格的选择可以基于从话语导出的上下文信息。例如,如果用户要询问价格,则可以将选择范围缩小到包含价格的表格和不包含价格的表格之间。
在404,对话系统(例如,DM子系统116)使用所识别的命名实体对所选表格执行查询。对话系统可以使用在204所识别的一个或多个命名实体来执行查询,该命名实体可以对应于表格中的可通知值。例如,对话系统使用包含可通知值的参数执行结构化查询语言(SQL)查询。该查询可以进一步包括表征所请求的可请求值的类型的信息。作为一个具体示例,对话系统可以在识别出的表格上生成并执行以下查询:
SELECT stock_status,price FROM shoe_tbl WHERE style=tennis AND color=black
以在表格shoe_tbl中检索与所有黑色网球鞋的库存状态和价格相对应的一组值。
在一些实施例中,NLU子系统包括多个NER模型,这些NER模型已经在包括了可通知值和可请求值的一组表格中的数据上进行了训练。NLU子系统可以使用一个或多个经过训练的NER模型以识别表格中的可通知值,并使用此信息来检索可请求值。例如,参考图图5A和5B中的示例表格500和550,颜色和品牌名称可以被识别为可通知值,而术语价格和库存可以被识别为与可请求值相对应。
在一些实施例中,对话系统提示用户提供附加信息以准备执行查询。在查阅表格之后,对话系统可以确定向用户询问任何所需的可通知列信息。作为示例,对话系统可以确定需要用户想要关于其信息的商店的位置,以便确定具体商品是否有库存。作为另一个例子,对话系统已经识别出所接收的用户输入与鞋子有关,但是不能确定用户是否对男鞋,女鞋或童鞋感兴趣。在这种情况下,对话系统可以输出(例如,通过语音输出)澄清请求。例如,对话系统准备短语“您要女鞋,男鞋还是童鞋?”并发送给用户。然后,对话系统可以接收第二澄清语音输入(例如,“女士的”),并使用第二语音输入来选择适当的表格。
在406,对话系统通过查询从数据库识别可请求的值。在404执行的查询结果包括表格中的多个可请求值中的一个或多个可请求值,其映射到所识别的命名实体。查询的输出是表格中与可请求值相对应的一个或多个值。这可以对应于在202接收的语音输入(例如,用户请求的特定信息)。因此,对话系统使用一个或多个命名实体,通过查询数据库中的表格来识别一个或多个可请求值。例如,基于输入的命名实体“网球”和“黑色”,对话系统识别出可请求值$49.99对应于黑色网球鞋的价格。
在408,对话系统输出所识别的可请求值。如以上关于图2的206和208所描述的,对话系统可以生成并提供响应(例如,给用户)该响应可以包括(如在406所识别的)一个或多个可请求值或其派生物。可请求值的派生物是已从可请求值中导出的词、短语、图像等。例如,可请求值“有存货”的派生物可以是表示某商品有库存的短语或图像(例如,“可获得”,“我们还剩下5个”,依此类推)。
图5A和5B描述了根据一些实施例的数据库表格的简化示例。这些表格可用于训练NER和/或基于接收到的语音输入执行查找(lookup)功能。下文描述的图5A和5B中所示的表格旨在是说明性和非限制性的。如上所述,伙伴系统170可以维护包含表格175A,175B......175N的伙伴数据库175。这些表格可以存储信息,例如与产品、服务、位置、统计信息等相对应的值。图5A和5B示出了这种表格的两个示例。
在图5A中,示出了表格500,其包含与女鞋有关的条目。表格500包括用于命名实体类型品牌502、尺寸504、颜色506、样式508、库存状态510和价格512的列。每个列标题下方的行列出了数据库中维护的各种不同的鞋子类型。这些列分为两类——可通知列514和可请求列516。
可通知列514是用于存储与系统可以接收的输入相关联的数据元素的列。例如,用户可以搜索鞋子的特定品牌、尺寸或样式。对话系统可以接收包括一个或多个此类可通知值的用户查询(例如,“您有4码的黑色凉鞋吗?”)。
可请求列516是用于存储与可向对话系统请求的信息相关联的数据元素的列。例如,用户可以询问特定鞋子的价格。因此,价格列512已被指定为可请求列。
表格500可用于处理与女鞋有关的请求。可通知列514包括品牌502、尺寸504、颜色506和样式508。表格500中列出的品牌502的示例是Allen's,Runner's等。表格500中列出的尺寸504的示例是4、12等。表格500中列出的颜色506的示例是黑色,白色等。表格500中列出的样式508的示例是乐福鞋,凉鞋等。可以查询该表格以识别与接收到的语音输入(例如“5号黑色凉鞋”)相对应的条目。
可请求列516包括库存状态510和价格512。库存状态510可以指定特定的鞋子类型是否可获得(例如,无库存或有库存)。表格500中列出的价格512的示例为$59.99,$34.99等。可以查询表格500以识别与接收到的语音输入(例如“您是否有5号黑色凉鞋?……他们要花多少钱?”)相对应的条目。
在图5B中,示出了表格550,其包含与男裤有关的条目。表格550包括用于品牌552、尺寸554、颜色556、样式558、库存状态560和价格562的列。下面的行列出了数据库中维护的各种不同的男裤类型。这些列分为两类——可通知列564和可请求列566,如以上关于图5A所描述的那样。
表格550可用于处理与男裤有关的请求。可通知列564包括品牌552、尺寸554、颜色556和样式558。表格550中列出的品牌552的示例是Maxy,Zeus等。表格550中列出的尺寸554的示例是32R,33L等。表格550中列出的颜色556的示例是黑色,米色等。表格550中列出的样式558的示例是休闲,正装等。可以查询该表格以识别与接收到的语音输入(例如“Maxy黑色裤”)相对应的条目。
可通知列564包括库存状态560和价格562。库存状态560可以指定特定的裤子类型是否可获得(例如,无库存或有库存)。表格550中列出的价格562的示例是$64.99,$199.99等。可以查询表格550以识别与接收到的语音输入(例如“板球牛仔裤多少钱?”)相对应的条目。
本文描述的技术具有多个优点。使用从数据库或知识库中导出的数据来训练NER可以扩大NER可获得的信息量,从而提高整个对话系统的准确性。
此外,使用本文公开的技术可以显著减少花费在训练上的资源量。如上所述,一般必须使用标记数据来训练机器学习模型。该数据通常是手工标记的,这是一个耗时的过程。如本文所公开的,使用数据库来导出训练数据可以极大地减少或消除对标记的训练数据的需求。通过消除或减少产生训练数据所需的资源量,本文公开的技术可用于减少生成用于执行与对话有关的任务的模型所需的时间和计算量。
可以在包括云环境(可以是包括私有云,公共云和混合云环境的各种类型的云),本地部署环境,混合环境等在内的各种不同环境中实现上述基础结构。
图6描述了用于实现实施例的分布式系统600的简化图。在所示的实施例中,分布式系统600包括经由一个或多个通信网络610耦合到服务器612的一个或多个客户端计算设备602、604、606和608。客户端计算设备602、604、606和608可以被配置为执行一个或多个应用。
在各种实施例中,服务器612可以适于运行一个或多个服务或软件应用,该一个或多个服务或软件应用使得能够使用数据库表格执行对话任务。
在某些实施例中,服务器612还可以提供可以包括非虚拟和虚拟环境的其他服务或软件应用。在一些实施例中,这些服务可以作为基于网络的服务或云服务提供,例如在软件即服务(SaaS)模型下提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户可以依次利用一个或多个客户端应用与服务器612进行交互,以利用这些组件提供的服务。
在图6所描述的配置中,服务器612可包括实现由服务器612执行的功能的一个或多个组件618、620和622。这些组件可包括可由一个或多个处理器执行的软件组件,硬件组件或其组合。应当理解,各种不同的系统配置是可能的,其可以与分布式系统600不同。因此,图6所示的实施例是用于实现实施例系统的分布式系统的一个示例,并且不旨在是限制性的。
用户可以使用客户端计算设备602、604、606和/或608来提供用户输入,根据本公开的教导,系统可以使用该用户输入来执行对话任务。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图6仅描述了四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,例如便携式手持设备,通用计算机(例如个人计算机和膝上型计算机),工作站计算机,可穿戴设备,游戏系统,瘦客户端,各种消息传递设备,传感器或其他感测设备,等等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,MicrosoftApple或类UNIX操作系统,Linux或类Linux操作系统(例如Google ChromeTMOS)),操作系统包括各种移动操作系统(例如Microsoft WindowsWindowsAndroidTM,Palm)。便携式手持设备可以包括蜂窝电话,智能电话(例如,),平板电脑(例如,),个人数字助理(PDAs)等。可穿戴设备可能包括Google头戴式显示器和其他设备。游戏系统可以包括各种手持式游戏设备,具有互联网功能的游戏设备(例如,具有或不具有手势输入设备的Microsoft游戏机,Sony系统,提供的各种游戏系统,以及其他),等等。客户端设备能够执行各种不同的应用,例如各种与互联网相关的app,通信应用(例如,电子邮件应用,短消息服务(SMS)应用),并且可以使用各种通信协议。
网络610可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,所述协议包括但不限于TCP/IP(传输控制协议/互联网协议),SNA(系统网络架构),IPX(因特网分组交换协议),等。仅作为示例,(一个或多个)网络610可以是局域网(LAN),基于以太网的网络,令牌环,广域网络(WAN),因特网络,虚拟网络,虚拟专用网络(VPN),内部网络,外部网络,公共交换电话网络(PSTN),红外网络,无线网络(例如,在电气电子学会(IEEE)1002.11协议组中的任何一种下运行的网络),和/或任何其他无线协议)和/或这些的任意组合和/或其他网络。
服务器612可以由一台或多台通用计算机,专用服务器计算机(例如,包括PC(个人计算机)服务器,服务器,中端服务器,大型计算机,机架式服务器等)服务器群组,服务器群集或任何其他适当的安排和/或组合组成。服务器612可以包括运行虚拟操作系统的一个或多个虚拟机,或者包括虚拟化的其他计算架构,例如可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活逻辑存储设备池。在各种实施例中,服务器612可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
服务器612中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统,以及任何商用的服务器操作系统。服务器612还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器,FTP(文件传输协议)服务器,CGI(通用网关接口)服务器,服务器,数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器)等获得的商用的数据库服务器。
在一些实施方式中,服务器612可以包括一个或多个应用以分析和合并从客户端计算设备602、604、606和608的用户接收的数据馈源(feed)和/或事件更新。作为示例,数据馈源和/或事件更新可能包括但不限于从一个或多个第三方信息源和连续数据流(其可包括与传感器数据应用相关的实时事件,财务行情,网络性能评估工具(例如,网络监控和流量管理应用),点击流分析工具,汽车交通监控等)接收到的馈源,更新或实时更新。服务器612还可包括一个或多个应用,以经由客户端计算设备602、604、606和608的一个或多个显示设备来显示数据馈源和/或实时事件。
分布式系统600还可包括一个或多个数据存储库614、616。在某些实施例中,这些数据存储库可用于存储数据和其他信息。例如,数据存储库614、616中的一个或多个可用于存储诸如对话历史的信息。数据存储库614、616可以驻留在各种位置。例如,服务器612使用的数据存储库可以在服务器612本地,或者可以远离服务器612并且可以经由基于网络的连接或专用的连接与服务器612通信。数据存储库614、616可以是不同的类型。在某些实施例中,服务器612使用的数据存储库可以是数据库,例如关系数据库,诸如由和其他供应商提供的数据库。这些数据库中的一个或多个可以适于响应于SQL格式的命令而实现数据库中数据的存储,更新和检索。
在某些实施例中,应用还可以使用数据存储库614、616中的一个或多个来存储应用数据。应用使用的数据存储库可以具有不同的类型,例如关键值存储库,对象存储库或文件系统支持的常规存储库。
在某些实施例中,可以经由云环境将本公开所描述的与NLU相关的功能作为服务来提供。根据某些实施例,图7是基于云的系统环境的简化框图,其中各种NLU相关服务可以作为云服务被提供。在图7所描述的实施例中,云基础设施系统702可以提供用户使用一个或多个客户端计算设备704、706和708请求的一种或多种云服务。云基础设施系统702可以包括一个或多个计算机和/或服务器,该计算机和/或服务器可以包括上文针对服务器612所描述的那些计算机和/或服务器。云基础设施系统702中的计算机可以被组织为通用计算机,专用服务器计算机,服务器群组,服务器群集或任何其他适当的布置和/或组合。
(一个或多个)网络710可以促进客户端704、706和708与云基础设施系统702之间的通信和数据交换。(一个或多个)网络710可以包括一个或多个网络。网络可以是相同或不同的类型。(一个或多个)网络710可以支持包括有线和/或无线协议的一种或多种通信协议,以促进通信。
在图7中描述的实施例仅是云基础设施系统的一个示例,并不旨在是限制性的。应当理解,在一些其他实施例中,云基础设施系统702可以比图7中所描述的具有更多或更少的组件,可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。例如,尽管图7描述了三个客户端计算设备,但是在替代实施例中可以支持任何数量的客户端计算设备。
术语云服务通常用于指代由服务提供商的系统(例如,云基础设施系统702)通过通信网络(例如因特网)按需提供给用户的服务。通常,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的本地部署服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以自己利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以通过互联网按需订购和使用该应用,而用户不必购买用于执行该应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。一些提供商提供云服务。例如,加利福尼亚州红木海岸的提供了几种云服务,例如中间件服务,数据库服务,Java云服务等。
在某些实施例中,云基础设施系统702可以使用不同的模型,例如在软件即服务(SaaS)模型,平台即服务(PaaS)模型,基础设施即服务(IaaS)模型以及其他(包括混合服务模型)下,提供一个或多个云服务。云基础设施系统702可以包括一套应用,中间件,数据库和其他能够提供各种云服务的资源。
SaaS模型使应用或软件作为服务通过通信网络(如因特网)交付给客户,而客户不必为底层应用购买硬件或软件。例如,可以使用SaaS模型向客户提供被由云基础架构系统702托管的按需应用的访问。由提供的SaaS服务的示例包括但不限于人力资源/资本管理、客户关系管理(CRM)、企业资源计划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用以及其他各种服务。
PaaS模型通常用于提供作为服务的平台和环境资源,使客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务以及其他。
云服务通常以基于按需自助服务,基于订阅的,弹性可扩展的,可靠的,高度可用的和安全的方式提供。例如,客户可以通过订阅订单订购由云基础架构系统702提供的一个或多个服务。然后,云基础架构系统702执行处理,以提供客户的订阅订单中请求的服务。例如,云基础设施系统702使用历史上下文来影响对话任务。云基础设施系统702可以被配置为提供一个或甚至多个云服务。
云基础设施系统702可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有,并且将云服务提供给任何普通公众客户,其中客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统702可以在组织内(例如,在企业组织内)操作,并且向组织内的客户提供服务。例如,客户可以是企业的各个部门,例如人力资源部、工资部门等,甚至可以是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统702和所提供的服务可以由有关联的社区中的几个组织共享。各种其他模型也可以使用,例如上述模型中的混合模型。
客户端计算设备704、706和708可以是不同类型的(诸如图7中描述的设备702、704、706和708),并且能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统702交互,诸如请求由云基础设施系统702提供的服务。例如,用户可以使用客户端设备来请求本公开中描述的与NLU相关的服务。
在一些实施例中,由云基础设施系统702执行的用于提供NLU相关服务的处理可以涉及大数据分析。这种分析可能涉及使用、分析和处理大型数据集,以检测和可视化数据中的各种趋势、行为、关系等。该分析可以由一个或多个处理器执行,可能并行处理数据,使用数据执行模拟等。例如,云基础设施系统702可以执行大数据分析,以基于接收到的语音输入来识别命名实体。用于该分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型进行结构化的数据)和/或非结构化数据(例如,数据块(blob)(二进制大对象))。
如图7的实施例中所示,云基础设施系统702可以包括基础设施资源730,其被用于促进由云基础设施系统702提供的各种云服务的供应。例如,基础设施资源730可以包括处理资源、存储装置或存储器资源、网络资源等。
在某些实施例中,为了促进这些资源的有效提供以支持由云基础设施系统702为不同客户提供的各种云服务,可以将资源捆绑成资源或资源模块的集合(也称为“pod”)。每个资源模块或pod可以包括一种或多种类型的资源的预先集成和优化的组合。在某些实施例中,可以为不同类型的云服务预先提供不同的pod。例如,可以为数据库服务提供第一组pod,可以为Java服务提供第二组pod,其中第二组pod可能包括与第一组pod中的pod不同的资源组合,等等。对于某些服务,可以在服务之间共享为提供服务而分配的资源。
云基础架构系统702本身可以内部使用由云基础架构系统702的不同组件共享的服务732,这些服务732有助于云基础架构系统702提供服务。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业存储库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、启用云支持的服务、电子邮件服务、通知服务、文件传输服务,等等。
云基础设施系统702可以包括多个子系统。这些子系统可以用软件、硬件或它们的组合来实现。如图7所示,子系统可以包括用户界面子系统712,该用户界面子系统712使云基础设施系统702的用户或客户能够与云基础设施系统702进行交互。用户界面子系统712可以包括各种不同的界面,例如网络界面714、在线商店界面716(其中由云基础设施系统702提供的云服务被广告宣传并可由消费者购买)、以及其他界面718。例如,客户可以使用客户端设备请求(服务请求734)由云基础设施系统702用界面714、716和718中的一个或多个提供的一项或多项服务。例如,客户可以访问在线商店、浏览由云基础设施系统702提供的云服务、并为客户希望订阅的由云基础设施系统702提供的一项或多项服务下订单。服务请求可以包括识别顾客的信息以及顾客期望订阅的一项或多项服务。例如,客户可以为云基础设施系统702提供的NLU相关服务下订单。作为订单的一部分,客户可以提供识别请求的语音输入。
在某些实施例中,例如在图7中所描述的实施例中,云基础设施系统702可以包括被配置为处理新订单的订单管理子系统(OMS)720。作为该处理的一部分,OMS 720可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或账户信息,该账单和/或账户信息将用于向客户计费以向客户提供所请求的服务;验证客户信息;验证后,为客户预订订单;并安排各种工作流程以准备订单来进行供应。
一旦验证正确,随后OMS 720可以调用订单供应子系统(OPS)724,该订单供应子系统724被配置为为订单供应资源,包括处理、存储器和联网资源。供应可以包括为订单分配资源,以及配置资源以促进客户订单所请求的服务。为订单供应资源的方式和供应资源的类型可能取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 724可以被配置为确定所请求的特定云服务,并识别可能已经为该特定云服务预先配置的多个pod。为订单分配的pod数量可能取决于所请求服务的尺寸/数量/级别/范围。例如,可以基于服务支持的用户数量、请求服务的持续时间等来确定要分配的pod的数量。然后可以为特定的请求客户定制分配的pod,以提供所请求的服务。
云基础设施系统702可以向请求客户发送响应或通知744,以指示何时已准备好使用所请求的服务。在某些情况下,可以将信息(例如,链接)发送给客户,使客户能够开始使用和利用所请求的服务的利益。在某些实施例中,对于请求与NLU相关的服务的客户,响应可以包括基于识别出的意图生成的响应。
云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础架构系统702负责管理与从客户那里收到的一个或多个订阅订单有关的信息、维护与订单有关的客户数据、并向客户提供所请求的服务。云基础设施系统702还可以收集关于客户对所订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、所传输的数据量、用户数量以及系统运行时间和系统停机时间等收集统计信息。该使用信息可以用于向顾客计费。例如,计费可以按月周期进行。
云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息,包括可能的专有信息。在某些实施例中,云基础设施系统702包括身份管理子系统(IMS)728,其被配置为管理客户信息并提供所管理信息的分离,使得与一个客户有关的信息不能被另一客户访问。IMS 728可以被配置为提供各种与安全相关的服务,例如身份服务(例如信息访问管理)、认证和授权服务、用于管理客户身份和角色的服务以及相关功能等。
图8示出了可用于实现某些实施例的示例性计算机系统800。例如,在一些实施例中,计算机系统800可以用于实现上述的ASR子系统、NLU子系统以及各种服务器和计算机系统中的任何一个。如图8所示,计算机系统800包括各种子系统,该各种子系统包括通过总线子系统802与许多其他子系统通信的处理子系统804。这些其他子系统可以包括处理加速单元806、I/O子系统808、存储子系统818以及通信子系统824。存储子系统818可以包括非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括存储介质822和系统存储器810。
总线子系统802提供了一种用于使计算机系统800的各个组件和子系统按预期彼此通信的机制。尽管总线子系统802被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。总线子系统802可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的本地总线等。例如,此类架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线(它可以作为按照IEEEP1486.1标准制造的夹层总线实现),等等。
处理子系统804控制计算机系统800的操作,并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以是单核或多核处理器。可以将计算机系统800的处理资源组织成一个或多个处理单元842、844等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合、或核和处理器的其他组合。在一些实施例中,处理子系统804可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些实施例中,可以使用诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的定制电路来实现处理子系统804的一些或全部处理单元。
在一些实施例中,处理子系统804中的处理单元可以执行存储在系统存储器810中或计算机可读存储介质822上的指令。在各个实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个同时执行的程序或处理。在任何给定时间,一些或所有要执行的程序代码可以驻留在系统存储器810中和/或计算机可读存储介质822上,包括可能驻留在一个或多个存储设备上。通过合适的编程,处理子系统804可以提供上述各种功能。在计算机系统800正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在某些实施例中,可以可选地提供处理加速单元806,以用于执行定制的处理或用于卸载由处理子系统804执行的一些处理,从而加速由计算机系统800执行的整体处理。
I/O子系统808可以包括用于将信息输入到计算机系统800和/或用于从计算机系统800或经由计算机系统800输出信息的设备和机制。通常,术语“输入设备”的使用旨在包括用于向计算机系统800输入信息的所有可能类型的设备和机制。例如,用户接口输入设备可以包括键盘、诸如鼠标或轨迹球之类的指示设备、结合在显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风和其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或手势识别设备,例如使用户能够控制输入设备并与之交互的Microsoft运动传感器、Microsoft游戏控制器,提供接收使用手势和语音命令的输入的接口的设备。用户接口输入设备还可以包括眼动识别设备,例如Google眨眼探测器,该设备探测用户的眼睛活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼动作为输入转换到输入设备(例如Google)。另外,用户接口输入设备可以包括声音识别感测设备,其使用户能够通过声音命令与声音识别系统进行交互。
用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指示杆、游戏手柄和图形输入板、以及音频/视频设备,例如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪和视线追踪设备。另外,例如,用户接口输入设备可以包括医学成像输入设备,诸如计算机断层扫描、磁共振成像、位置放射断层扫描和医学超声扫描设备。例如,用户接口输入设备还可以包括音频输入设备,诸如MIDI键盘、数字乐器等。
通常,术语“输出设备”的使用旨在包括用于从计算机系统800向用户或其他计算机输出信息的所有可能类型的设备和机制。用户界面输出设备可以包括显示器子系统、指示灯或诸如音频输出设备的非可视显示器等。显示器子系统可以是阴极射线管(CRT)、平板设备(例如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于可视化地传达文本、图形和音频/视频信息的各种显示设备,例如监视器、打印机、扬声器、耳机,汽车导航系统,绘图仪,声音输出设备,以及调制解调器。
存储子系统818提供用于存储由计算机系统800使用的信息和数据的存储库或数据存储。存储子系统818提供有形的非暂态计算机可读存储介质,以用于存储提供某些实施例的功能的基本程序和数据架构。存储子系统818可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统804执行时提供上述功能。该软件可以由处理子系统804的一个或多个处理单元执行。根据本公开的教导,存储子系统818还可以提供存储库,以用于存储使用的数据。
存储子系统818可以包括一个或多个非暂态存储设备,包括易失性和非易失性存储设备。如图8所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM),以及非易失性只读存储器(ROM)或用于存储固定指令的闪存。在一些实施方式中,基本输入/输出系统(BIOS)可以典型地存储在ROM中,该基本输入/输出系统(BIOS)包含(诸如在启动期间)帮助在计算机系统800内的元件之间传输信息的基本例程。RAM代表性地包含当前由处理子系统804操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器810可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM),动态随机存取存储器(DRAM)等。
作为示例而非限制性的,如图8所示,系统存储器810可以加载正在执行的应用812,程序数据814和操作系统816。应用812可以包括诸如Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的各种应用。作为示例,操作系统816可以包括各种版本的MicrosoftApple和/或Linux操作系统,各种商用的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或移动操作系统,例如iOS、Phone、OS、OS、OS操作系统等。
计算机可读存储介质822可以存储提供一些实施例的功能的程序和数据架构。计算机可读存储介质822可以为计算机系统800提供计算机可读指令、数据结构、程序模块和其他数据的存储。提供上述功能的软件(程序,代码模块,指令)在被处理子系统804执行时,可以存储在存储子系统818中。作为示例,计算机可读存储介质822可以包括非易失性存储器,例如硬盘驱动器,磁盘驱动器,诸如CD ROM、DVD、盘或其他光学媒介的光盘驱动器。计算机可读存储介质822可以包括但不限于驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质822还可包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存的SSDs、企业级闪存驱动器、固态ROM等)、基于易失性存储器的SSDs(诸如固态RAM,动态RAM,静态RAM,基于DRAM的SSDs,磁阻RAM(MRAM)SSDs和混合使用DRAM和基于闪存的SSDs的混合SSDs)。
在某些实施例中,存储子系统818还可以包括计算机可读存储介质读取器820,其可以进一步连接到计算机可读存储介质822。读取器820可以接收并且被配置为从诸如磁盘、闪存驱动器等存储设备读取数据。
在某些实施例中,计算机系统800可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统800可以提供用于执行一个或多个虚拟机的支持。在某些实施例中,计算机系统800可以执行诸如管理程序之类的程序,该管理程序有助于虚拟机的配置和管理。可以为每个虚拟机分配存储器、计算(例如,处理器、核)、I/O和网络资源。每个虚拟机通常独立于其他虚拟机运行。代表性地,虚拟机运行其自己的操作系统,该操作系统可以与计算机系统800执行的其他虚拟机所执行的操作系统相同或不同。因此,多个操作系统可能由计算机系统800并发运行。
通信子系统824提供到其他计算机系统和网络的接口。通信子系统824用作接口,该接口用于从其他系统接收数据并向其它系统传输计算机系统800的数据。例如,通信子系统824可以使计算机系统800能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收数据和向客户端设备发送数据。例如,通信子系统可以用于与数据库通信以执行查询来识别可请求值。
通信子系统824可以支持有线和/或无线通信协议。例如,在某些实施例中,通信子系统824可以包括用于访问无线声音和/或数据网络的射频(RF)收发器组件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(全球发展的增强数据速率)、WiFi(IEEE 802.XX家庭标准)的高级数据网络技术,或其他移动通信技术,或其任意组合),全球定位系统(GPS)接收器组件和/或其他组件。在一些实施例中,除了或代替无线接口,通信子系统824可以提供有线网络连接(例如,以太网)。
通信子系统824可以接收和发送各种形式的数据。例如,在一些实施例中,除了其他形式之外,通信子系统824可以接收结构化和/或非结构化数据馈源826、事件流828、事件更新830等形式的输入通信。例如,通信子系统824可以被配置为从社交媒体网络和/或其他通信服务的用户实时接收(或发送)数据馈源826,诸如馈源、更新、Web馈源(如网站内容摘要(RSS)馈源)和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统824可以被配置为接收连续数据流形式的数据,其可以包括实时事件的事件流828和/或事件更新830,其本质上可以是连续的或无界的,没有明确的结束。产生连续数据的应用的示例可以包括,例如,传感器数据应用,金融自动收报机,网络性能测量工具(例如网络监视和交通管理应用),点击流分析工具,汽车交通监视等。
通信子系统824也可以被配置为将数据从计算机系统800通信到其他计算机系统或网络。数据可以以各种不同的形式(例如结构化和/或非结构化的数据馈源826,事件流828,事件更新830等)通信到一个或多个数据库,该一个或多个数据库可以与耦合到计算机系统800的一个或多个流数据源计算机通信。
计算机系统800可以是各种类型之一,包括手持式便携式设备(例如,蜂窝电话,计算平板电脑,PDA)、可穿戴设备(例如Google头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架或任何其他数据处理系统。由于计算机和网络的不断变化的性质,因此对图8中所述计算机系统800的描述仅旨在作为具体示例。与图8中描述的系统相比,具有更多或更少组件的许多其他配置也是可能的。基于本文提供的公开和教导,本领域普通技术人员将理解实现各种实施例的其他方式和/或方法。
尽管已经描述了特定的实施例,但是各种修改,变更,替代构造和等同方案都是可能的。实施例不限于在某些特定数据处理环境内的操作,而是可以在多种数据处理环境内自由地操作。另外,尽管已经使用特定系列的处理和步骤描述了某些实施例,但是对于本领域技术人员来说,这显然不是限制性的。尽管一些流程图将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,操作的顺序可以重新排列。一个过程可能具有图中未包括的其他步骤。上述实施例的各种特征和方面可以单独或共同使用。
此外,尽管已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅以硬件或仅以软件或其组合来实现。本文描述的各种过程可以以任何组合在相同处理器或不同处理器上实现。
在将设备、系统、组件或模块描述为被配置为执行某些操作或功能的情况下,该配置可以通过下述完成,例如通过设计电子电路以用于执行该操作,通过对可编程电子电路(例如微处理器)进行编程以用于执行该操作,诸如通过执行计算机指令或代码、或被编程为执行代码或指令的处理器或核,该代码或指令存储在非暂态存储介质上,或其任何组合。处理可以使用多种技术进行通信,这些技术包括但不限于用于内部处理通信的常规技术,并且不同对的处理可以使用不同的技术,或者同一对处理可以在不同的时间使用不同的技术。
在本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,没有示出众所周知的电路、处理、算法、结构和技术的不必要的细节,以避免使实施例不清楚。该描述仅提供示例实施例,而不是旨在限制其他实施例的范围、适用性或配置。相反,实施例的先前描述将为本领域技术人员提供用于实现各种实施例的使能描述。可以对元件的功能和布置进行各种改变。
因此,说明书和附图应被认为是说明性的而不是限制性的。然而,将显而易见的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行增加、减少、删除以及其他修改和改变。因此,尽管已经描述了特定的实施例,但是这些并不旨在是限制性的。各种修改和等同都在所附权利要求的范围之内。
Claims (21)
1.一种通过对话系统执行的方法,包括:
通过所述对话系统接收口头话语;
通过所述对话系统使用机器学习模型从所述口头话语识别命名实体,其中所述机器学习模型已经在从数据库提取的数据上进行了训练,所述数据库基于所述数据库中的列将多个命名实体映射到相应的命名实体类型;
通过所述对话系统基于所识别的命名实体生成语音响应;以及
通过所述对话系统提供所述语音响应作为输出。
2.根据权利要求1所述的方法,还包括:
从所述数据库提取原始数据;
从所提取的原始数据生成训练数据;以及
在所生成的训练数据上训练所述机器学习模型。
3.根据权利要求2所述的方法,其中,生成所述训练数据包括:
识别与所述数据库的所述列相关联的元数据;以及
使用所述元数据和所述列的相应条目作为种子数据来生成所述训练数据。
4.根据权利要求1所述的方法,其中:
所述机器学习模型为第一机器学习模型,且所述命名实体为第一命名实体;以及
所述方法还包括使用第二机器学习模型识别第二命名实体。
5.根据权利要求1所述的方法,其中:
所述数据库还包括多个可请求值;以及
所述方法还包括:
通过所述对话系统使用所述数据库,识别所述多个可请求值中映射到所识别的命名实体的可请求值,
其中,所述语音响应包括所述可请求值或所述可请求值的派生物。
6.根据权利要求5所述的方法,其中:
所述数据库包括多个表格;以及
所述方法还包括基于所识别的命名实体从所述多个表格中选择特定表格,
其中所选择的表格用于识别所述可请求值。
7.如权利要求6所述的方法,其中,识别所述可请求值包括对所选择的表格执行查询以检索映射到所识别的命名实体的所述可请求值。
8.一种非暂态计算机可读存储器,所述非暂态计算机可读存储器存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
接收口头话语;
使用机器学习模型从所述口头话语识别命名实体,其中,所述机器学习模型已经在从数据库提取的数据上进行了训练,所述数据库基于所述数据库中的列将多个命名实体映射到相应的命名实体类型;
基于所识别的命名实体生成语音响应;以及
提供所述语音响应作为输出。
9.根据权利要求8所述的非暂态计算机可读存储器,所述处理还包括:
从所述数据库提取原始数据;
从所提取的原始数据生成训练数据;以及
在所生成的训练数据上训练所述机器学习模型。
10.根据权利要求9所述的非暂态计算机可读存储器,其中,生成所述训练数据包括:
识别与所述数据库的所述列相关联的元数据;以及
使用所述元数据和所述列的相应条目作为种子数据来生成所述训练数据。
11.根据权利要求8所述的非暂态计算机可读存储器,其中:
所述机器学习模型为第一机器学习模型,且所述命名实体为第一命名实体;以及
所述处理还包括使用第二机器学习模型识别第二命名实体。
12.根据权利要求8所述的非暂态计算机可读存储器,其中:
所述数据库还包括多个可请求值;以及
所述处理还包括:
使用所述数据库,识别所述多个可请求值中映射到所识别的命名实体的可请求值,
其中,所述语音响应包括所述可请求值或所述可请求值的派生物。
13.根据权利要求12所述的非暂态计算机可读存储器,其中:
所述数据库包括多个表格;以及
所述处理还包括基于所识别的命名实体从所述多个表格中选择特定表格,
其中所选择的表格用于识别所述可请求值。
14.如权利要求13所述的非暂态计算机可读存储器,其中,识别所述可请求值包括对所选择的表格执行查询以检索映射到所识别的命名实体的所述可请求值。
15.一种对话系统,包括:
一个或多个处理器;
耦合到所述一个或多个处理器的存储器,所述存储器存储能够由所述一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
接收口头话语;
使用机器学习模型从所述口头话语识别命名实体,其中,所述机器学习模型已经在从数据库提取的数据上进行了训练,所述数据库基于所述数据库中的列将多个命名实体映射到相应的命名实体类型;
基于所识别的命名实体生成语音响应;以及
提供所述语音响应作为输出。
16.根据权利要求15所述的对话系统,所述处理还包括:
从所述数据库提取原始数据;
从所提取的原始数据生成训练数据;以及
在所生成的训练数据上训练所述机器学习模型。
17.根据权利要求16所述的对话系统,其中,生成所述训练数据包括:
识别与所述数据库的所述列相关联的元数据;以及
使用所述元数据和所述列的相应条目作为种子数据来生成所述训练数据。
18.根据权利要求15所述的对话系统,其中:
所述机器学习模型为第一机器学习模型,且所述命名实体为第一命名实体;以及
所述处理还包括使用第二机器学习模型识别第二命名实体。
19.根据权利要求15所述的对话系统,其中:
所述数据库还包括多个可请求值;以及
所述处理还包括:
使用所述数据库,识别所述多个可请求值中映射到所识别的命名实体的可请求值,
其中,所述语音响应包括所述可请求值或所述可请求值的派生物。
20.根据权利要求19所述的对话系统,其中:
所述数据库包括多个表格;以及
所述处理还包括基于所识别的命名实体从所述多个表格中选择特定表格,
其中所选择的表格用于识别所述可请求值。
21.一种对话系统,包括用于执行根据权利要求1-7中任一方法的步骤的装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962899647P | 2019-09-12 | 2019-09-12 | |
US62/899,647 | 2019-09-12 | ||
US16/983,950 | 2020-08-03 | ||
US16/983,950 US11514911B2 (en) | 2019-09-12 | 2020-08-03 | Reduced training for dialog systems using a database |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112487156A true CN112487156A (zh) | 2021-03-12 |
Family
ID=74868143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010942350.5A Pending CN112487156A (zh) | 2019-09-12 | 2020-09-09 | 减少使用数据库的对话系统的训练 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11514911B2 (zh) |
CN (1) | CN112487156A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11587557B2 (en) * | 2020-09-28 | 2023-02-21 | International Business Machines Corporation | Ontology-based organization of conversational agent |
US11880659B2 (en) * | 2021-01-29 | 2024-01-23 | Salesforce, Inc. | Hierarchical natural language understanding systems |
US20220309107A1 (en) * | 2021-03-29 | 2022-09-29 | International Business Machines Corporation | Self-supervision in table question answering |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10970768B2 (en) * | 2016-11-11 | 2021-04-06 | Ebay Inc. | Method, medium, and system for image text localization and comparison |
US10467509B2 (en) * | 2017-02-14 | 2019-11-05 | Microsoft Technology Licensing, Llc | Computationally-efficient human-identifying smart assistant computer |
US10978059B2 (en) * | 2018-09-25 | 2021-04-13 | Google Llc | Speaker diarization using speaker embedding(s) and trained generative model |
-
2020
- 2020-08-03 US US16/983,950 patent/US11514911B2/en active Active
- 2020-09-09 CN CN202010942350.5A patent/CN112487156A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210082425A1 (en) | 2021-03-18 |
US11514911B2 (en) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11914962B2 (en) | Reduced training intent recognition techniques | |
CN114365215B (zh) | 动态上下文对话会话扩展 | |
US11514911B2 (en) | Reduced training for dialog systems using a database | |
CN112489641A (zh) | 用于高效对话处理的实时反馈 | |
US11551676B2 (en) | Techniques for dialog processing using contextual data | |
CN112487790B (zh) | 包括粗略语义解析器和精细语义解析器的改进语义解析器 | |
JP2022547596A (ja) | チャットボットシステムにおける無関係な発話の検出 | |
US11810553B2 (en) | Using backpropagation to train a dialog system | |
CN112487137B (zh) | 使用集成共享资源来流线化对话处理 | |
JP2023551325A (ja) | ニューラルネットワークにおける過剰予測のための方法およびシステム | |
US11462208B2 (en) | Implementing a correction model to reduce propagation of automatic speech recognition errors | |
CN114365141A (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 |