用于虚拟个人助理的可扩展上下文感知的自然语言交互的制作方法_2

文档序号:9693244阅读:来源:国知局
06配置成管理一个或多个上下文源模块208的安装和枚举。每个上下文源模块208是配置成捕获和存储由计算装置102接收的上下文源数据并支持与捕获的上下文数据相关的自然语言请求的自含式模块。上下文源数据可实施为与计算装置102的具体情境上下文有关的任何数据。如上所述,计算装置102的情境上下文例如可包含位置、环境条件、一天中的时间、用户身份、用户的当前活动或者计算装置102的任何其它使用条件。例如,上下文源模块208可存在用于具体地理位置,包含专用位置(诸如工作室或家),或用于具体用户活动(诸如工作、通勤或消费媒体)。每个上下文源模块208可实施为单独存储器装置、数据文件或文件集合,并且可在已经向最终用户部署了计算装置102之后,由上下文源管理器206安装或加载。例如,每个上下文源模块208可实现为插件、外挂、包装、档案、盘镜像、JAR文件或用于扩展计算装置102能力的任何其它组件。如下所述,每个上下文源模块208可将捕获的上下文数据存储在上下文数据库228中,或者提供存储服务以允许上下文数据被存储在上下文数据库228中。每个上下文源模块208可由不同实体(诸如装置制造商、第三方开发商或最终用户)开发。应该认识到,开发上下文源模块208的上下文捕获能力的各方被良好定位成提供在那个上下文中进行自然语言交互所需的元数据。
[0023]如早先所描述的,每个上下文源模块208还包含解释与捕获的上下文数据相关的自然语言请求所必需的元数据。元数据包含可适用于上下文源的自然语言词汇和/或语法的模型,包含与那个上下文关联的公共字和短语的列表。附加地或备选地,在一些实施例中,元数据可包含几种自然语言(例如英语、法语、西班牙语等)的语言模型,并且上下文源模块208可基于在计算装置102上主要使用的自然语言来选择最适当的语言模型。元数据还可包含自然语言元素与上下文数据库228的具体数据库查询之间的映射,以及自然语言元素与用户接口模块202可使用的用户接口元素之间的映射。在一些实施例中,每个上下文源模块208可包含一个或多个上下文状态,上下文状态各可与不同自然语言元素、数据库查询映射和/或用户接口元素映射关联。在一些实施例中,那些功能可由子模块执行,例如由上下文捕获模块210、语言模型212、一个或多个数据库查询映射216、一个或多个用户接口元素映射218,在一些实施例中还有一个或多个上下文状态214执行。
[0024]虚拟个人助理220配置成解释并响应于从用户接口模块202接收的自然语言用户请求。虚拟个人助理220对表示用户请求的音频输入数据执行语音识别。虚拟个人助理220还解释与一个或多个上下文源模块208关联的元数据,以便执行用户请求的上下文解释。例如,虚拟个人助理220可索引语言模型212,并从几个上下文源模块208中的每个模块搜索语言模型212,以解释其适当上下文中的用户请求。在一些实施例中,元数据可被存储在上下文数据库228,其可允许多个计算装置执行用户请求的上下文解释。在解释用户请求的语言之后,虚拟个人助理220执行请求的动作,并且可将结果提供给用户接口模块202。在一些实施例中,那些功能可由子模块例如由语音识别引擎222、元数据解释模块224或请求解释模块226执行。
[0025]上下文数据库228配置成存储已经由计算装置102捕获的上下文数据。当响应于用户请求时,虚拟个人助理220可访问并操纵存储在上下文数据库228中的上下文数据。如上所述,上下文数据可包含位置、环境条件、一天中的时间、用户身份、用户的当前活动或可由上下文源模块208捕获或格式化以便存储的任何其它数据。尽管如驻留在计算装置102中的所图示的,在一些实施例中,部分或所有上下文数据库228可被存储在外部数据库服务器或云服务中。在此类实施例中,上下文数据库228可在几个计算装置之间共享。
[0026]现在参考图3,在系统100包含VPA服务器104的实施例中,计算装置102建立环境300,并且VPA服务器104在操作期间建立环境302。在那个实施例中,环境300在计算装置102上包含用户接口模块202、传感器输入模块204和上下文源模块208。环境302在VPA服务器104上包含虚拟个人助理220。如上所述,上下文数据库228可实施在一个或多个外部数据库服务器或云服务上。计算装置102和VPA服务器104的各种模块执行与上面结合图2描述的模块相同的功能,并且可实施为硬件、固件、软件或它们的组合。另外,可使用网络106在计算装置102和VPA服务器104的各种模块之间传递数据。例如,用户接口模块202可通过网络106向虚拟个人助理220传送音频输入数据,上下文源管理器206可通过网络106向上下文数据库228传送捕获的上下文数据,并且上下文源管理器206可通过网络106向虚拟个人助理220传送一个或多个上下文源模块208和/或上下文源模块208的子模块。
[0027]现在参考图4,在使用中,计算装置102可执行用于上下文感知的数据捕获的方法400。方法400开始于块402,其中计算装置102接收上下文源数据。上下文源数据可包含指示计算装置102或用户的上下文或根据其可确定此类上下文的任何数据。在一些实施例中,在块404,计算装置102可从计算装置102的各种传感器接收上下文传感器数据。例如,计算装置102可从位置电路134接收位置数据,从音频传感器132接收周围噪声数据,或者从一个或多个上下文传感器136接收其它上下文传感器数据。此外,在一些实施例中,在块406,计算装置102可接收内容数据。内容数据(诸如文档、网页、媒体文件或其它数字内容)可由计算装置102的一个或多个应用生成,或者可从一个或多个远程装置接收。内容数据可揭示计算装置102或用户的上下文。例如,内容可指示用户当前正在查看网页或对文档工作。另外,在一些实施例中,在块408,计算装置102可从上下文源模块208接收上下文状态数据。换言之,计算装置102的当前上下文可通过组合或级联上下文源模块208来确定。例如,一个上下文源模块208可确定计算装置102的地理位置,并且另一上下文源模块208可确定计算装置102位于逻辑位置,诸如“家”或“工作室”。
[0028]在块410,计算装置102激活下一上下文源模块208,其在方法400的第一迭代期间可实施为任一个上下文源模块208。激活的上下文源模块208将用于捕获上下文数据,并基于接收的上下文源数据解释上下文数据。计算装置102可使用上下文源管理器206来加载上下文源模块208。上下文源模块208可从数据存储装置126加载,从远程计算装置接收,或者另外在计算装置102已经由最终用户接收之后供应给计算装置102。在一些实施例中,上下文源模块208可提前加载和/或配置,并且在块410,计算装置102可选择上下文源模块208进行分析。
[0029]在块412,计算装置102使用上下文源模块208的上下文捕获模块210分析上下文源数据。作为分析的一部分,计算装置102确定上下文捕获模块210是否能够解释上下文源数据。例如,日历上下文可解释与用户活动相关的上下文源数据,并且位置上下文可解释与用户定位相关的上下文源数据。在一些实施例中,在块414,计算装置102可确定可适用于上下文源数据的一个或多个上下文状态214。在块416,计算装置102确定上下文源模块208是否能够解释上下文源数据。如果否,则方法400向前分支到块422,下面论述。如果上下文匹配,则方法400前进到块418。
[0030]在块418,计算装置102捕获上下文数据,并将上下文数据存储在上下文数据库228中。计算装置102使用当前上下文源模块208的上下文捕获模块210来解释、分析、格式化或以别的方式捕获上下文数据。在一些实施例中,计算装置102可直接执行由上下文捕获模块210提供的功能性,例如通过调用外部可用的功能或公用接口方法。在一些实施例中,计算装置102可解释与上下文捕获模块210关联的元数据,以控制计算装置102的上下文捕获过程。另外,在一些实施例中,在块420,计算装置102还可将与上下文数据关联的上下文状态214存储在上下文数据库228中。
[0031]在块422,计算装置102确定附加上下文源模块208是否可用。计算装置102可查询上下文源管理器206以进行那个确定。如果附加上下文源可用,则方法400循环回到块410以激活下一上下文源模块208,并尝试解释上下文源数据。如果没有附加上下文源可用,则方法400循环回到块402以监视附加上下文源数据。尽管说明性方法400通过上下文源模块208顺序迭代,但在其它实施例中,上下文源模块208可并行或按任何其它排序解释上下文源数据。
[0032]现在参考图5,在使用中,计算装置102可执行用于上下文感知的自然语言交互的方法500。方法500开始于块502,在此计算装置102激活下一上下文源模块208,其在方法500的第一迭代期间可再次实施为任一个上下文源模块208。如上所述,激活的上下文源模块208含有可用于执行用户请求的上下文感知的解释的元数据,包含语言模型212和一个或多个数据库查询映射216。此外,在一些实施例中,元数据可包含或者不包含一个或多个用户接口元素映射218。计算装置102可使用上下文源管理器206来加载上下文源模块208。上下文源模块208可从数据存储装置126加载,从远程计算装置接收,或者另外在计算装置102已经向最终用户开发之后供应给计算装置102。在一些实施例中,上下文源模块208可提前加载和/或配置,并且在块508,计算装置102可选择上下文源模块208进行分析。在一些实施例中,在块504,计算装置102可激活匹配当前装置上下文的上下文源模块208作为下一上下文源模块208。也就是,计算装置102可以确定上下文源模块208的上下文捕获模块210是否能够捕获或解释当前装置上下文的上下文数据。在此类实施例中,处理将从而局限于和当前装置上下文有关的上下文。
[0033]在块506,计算装置102索引上下文源模块208的语言模型212。索引语言模型212允许计算装置102随后比较语言模型212与用户请求的语言。在一些实施例中,计算装置102可计算在语言模型212中出现的每个字或短语的词频-逆文档频率("TF-1DF")统计。TF-1DF是具体词包含在文档中的频率与其在所有文档上的频率相比较的测量,并且从而是具体词对文档的重要性的数字测量。包含对语言模型212重要的语言的用户请求从而可能涉及那个语言模型212的上下文。附加地或备选地,在其它实施例中,可使用对于搜索或索引文档中词有用的其它措施。
[0034]在块508,计算装置102确定附加上下文源模块208是否可用。计算装置102可查询上下文源管理器206以进行那个确定。如果附加上下文源可用,则方法500循环回到块502以激活下一上下文源模块208,并索引下一语言模型212。如果没有附加上下文源模块208可用,则方法500前进到块510。尽管图示为通过上下文源模块208顺序迭代,但在一些实施例中,计算装置102可并行或者作为单个聚合任务索引语言模型212。
[0035]在块510,计算装置102确定用户是否已经调用虚拟个人助理(VPA)命令。用户可通过按压按钮、在用户接口中选择一选项、说出命令字或人机交互的任何其它方法来调用命令。如果未调用VPA命令,则方法500循环回到块510,以继续监视VPA命令。如果已经调用了VPA命令,则方法500前进到块512。
[0036]在块512,计算装置102使用音频传感器132捕获音频输入数据。音频输入数据表示由计算装置102的用户说出的自然语言请求。音频输入数据可以可用于进一步分析和操纵的任何格式存储,包含压缩格式或未压缩格式。在块514,计算装置102基于音频输入数据产生用户请求的一个或多个文本表示。每个文本表示都包含表示用户请求的一串字。为了产生文本表示,计算装置102可使用任何适当的语音识别技术或算法来处理音频输入数据。语音识别算法可生成用户请求的一个或多个潜在文本表示,并可根据它们是正确的可能性对请求排名。在其它实施例(未图示)中,计算装置102例如可通过标准文本输入用户接口元素直接从用户接收用户请求的文本表示。
[0037]在块516,计算装置102使用索引的语言模型212生成文本表示的语义表示。在已经生成多个文本表示的情况下,语义表示表示选择作为最佳拟合的其中一个文本表示。语义表示将文本表示的每个字或上下文上一致的连续字的组与具体语言模型212关联,从而将每个字或字组放在上下文中。语义表示通过使用文本表示内的许多潜在字组并找到统计上最有可能的字组和关
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1