将语用学原理应用于与可视分析交互的系统和方法
技术领域
所公开的实施方式大体上涉及数据可视化,且更具体地涉及使用户能够使用自然语言接口与数据集交互并探索数据集的系统、方法和用户接口。
背景
数据可视化应用使用户能够可视地理解数据集,包括分布、趋势、异常值和对做出业务决策重要的其他因素。一些数据集是非常大或复杂的,且包括许多数据字段。可以使用各种工具来帮助理解和分析数据,包括具有多个数据可视化的仪表板。然而,一些功能可能难以使用或难以在复杂的用户接口中找到。大多数系统响应于查询而只返回非常基本的交互式可视化,以及其他系统需要专家建模以创建有效的查询。其他系统需要简单的封闭式问题,且于是只能够返回单个文本答案或静态可视化。
概述
因此,需要允许用户有效地利用由数据可视化应用提供的功能的工具。针对该问题的一个解决方案是为交互式查询对话提供自然语言接口作为数据可视化应用的一部分(例如,在数据可视化应用的用户接口内),该交互式查询对话提供对自然语言查询的图形答案。自然语言接口允许用户使用普通问题或命令来访问复杂的功能。问题和见识常常从一个人看到的以前的问题和数据模式显露出来。通过将交互行为建模为对话,自然语言接口可以应用语用的原理来改善与可视分析的交互。通过用于推断话语及其语境的语法和词汇结构的各种技术,自然语言接口支持自然语言与可视分析的交互的各种语用形式。这些语用形式包括理解不完整话语,参考在话语中的实体和可视化属性,支持长的复合话语,识别同义词和相关概念,以及“修复”对先前话语的响应。此外,自然语言接口在现有可视化中或者通过在必要时创建新的可视化来提供适当的可视化响应,并且通过目标文本反馈和歧义小部件(ambiguity widgets)来解决歧义。以这种方式,自然语言接口允许用户有效地探索在数据可视化应用中显示(例如,在数据可视化中)的数据。
根据一些实施方式,一种方法在具有显示器的电子设备处执行。例如,电子设备可以是智能电话、平板计算机、笔记本计算机或台式计算机。该设备基于使用第一组一个或更多个数据库查询从数据库获取的数据集来显示数据可视化。用户指定与所显示的数据可视化相关的第一自然语言命令。基于所显示的数据可视化,设备从第一自然语言命令中提取第一组一个或更多个独立分析短语。该设备然后基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心(conversation centers)。该设备然后计算与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或多个功能短语。该设备然后基于第一组一个或更多个功能短语来更新数据可视化。
在一些实施方式中,设备接收与已更新的数据可视化相关的第二自然语言命令。根据一些实施方式,在接收到第二自然语言命令之后,设备从第二自然语言命令中提取第二组一个或更多个独立分析短语,并且基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心。该设备然后使用一个或更多个过渡规则(transitional rules)从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心。该设备计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语。该设备然后基于第二组一个或更多个功能短语来更新数据可视化。
在一些实施方式中,第一组一个或更多个对话中心、临时组的一个或更多个对话中心以及第二组一个或更多个对话中心中的每个对话中心包括变量的值(例如,数据属性或可视化属性)。在这样的实施方式中,设备通过执行一系列操作来使用过渡规则,所述操作包括:确定第一变量是否被包括在第一组一个或更多个对话中心中;确定第一变量是否被包括在临时组的一个或更多个对话中心中;基于第一变量是否被包括在第一组一个或更多个对话中心和/或临时组的一个或更多个对话中心中来确定一个或更多个过渡规则中的要应用的相应过渡规则;以及应用相应过渡规则。
在一些实施方式中,由设备使用的一个或更多个过渡规则包括继续规则(CONTINUE rule),其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并将来自临时组的一个或更多个对话中心的一个或更多个对话中心添加到第二组一个或更多个对话中心。
在一些这样的实施方式中,该设备通过执行一系列操作来应用相应过渡规则,所述操作包括:根据确定了(i)第一变量被包括在临时组的一个或更多个对话中心中以及(ii)第一变量未被包括在第一组一个或更多个对话中心中,该设备应用继续规则以将第一变量包括在第二组一个或更多个对话中心中。
在一些实施方式中,由设备使用的一个或更多个过渡规则包括保留规则(RETAINrule),其用于将第一组一个或更多个对话中心中的每个对话中心保留在第二组一个或更多个对话中心中,而没有将来自临时组的一个或更多个对话中心的任何对话中心添加到第二组一个或更多个对话中心。
在一些这样的实施方式中,设备通过执行一系列操作来应用相应过渡规则,所述操作包括:根据确定了(i)第一变量被包括在第一组一个或更多个对话中心中,以及(ii)第一变量未被包括在临时组的一个或更多个对话中心中,应用保留规则以将第一组一个或更多个对话中心中的每个对话中心包括到第二组一个或更多个对话中心。
在一些实施方式中,由设备使用的一个或更多个过渡规则包括转移规则(SHIFTrule),其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并且用在临时组的一个或更多个对话中心中的对话中心代替在第二组一个或更多个对话中心中的一个或更多个对话中心。
在一些这样的实施方式中,设备通过执行一系列操作来应用相应过渡规则,所述操作包括:根据确定了(i)第一变量被包括在第一组一个或更多个对话中心中以及(ii)第一变量被包括在临时组的一个或更多个对话中心中:确定在第一组一个或更多个对话中心中的第一变量的第一值是否不同于在临时组的一个或更多个对话中心中的第一变量的第二值;根据确定了第一值不同于第二值,应用转移规则,其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并且用第二值代替在第二组一个或更多个对话中心中的第一变量的值。
在一些这样的实施方式中,设备进一步确定对应于第一变量的小部件是否已经被用户移除;并且根据确定了小部件已经被移除,应用转移规则,其将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并且用包括第一值的新值(例如,最大值或超集值)代替在第二组一个或更多个对话中心中的第一变量的值。
在一些实施方式中,设备基于第一组一个或更多个功能短语来创建第一组一个或更多个查询,并且使用第一组一个或更多个查询来重新查询数据库,从而获取第二数据集,且然后使用第二数据集来显示已更新的数据可视化。在一些实施方式中,设备基于第二组一个或更多个功能短语来创建第二组一个或更多个查询,并且使用第二组一个或更多个查询来重新查询数据库,从而获取第三数据集,且然后使用第三数据集来显示已更新的数据可视化。在一些实例中,使用在计算设备处的所缓存或存储的数据来在计算设备处在本地执行重新查询数据库。例如,当自然语言命令指定一个或更多个过滤器时,通常在本地执行重新查询。在一些实施方式中,设备进一步使用第二数据集或第三数据集来创建并显示新的数据可视化。
在一些实施方式中,该设备进一步确定用户是否选择了不同于第一数据集的数据集,或者用户是否重置了数据可视化,并且如果是,则将第一组一个或更多个对话中心、临时组的一个或更多个对话中心和第二组一个或更多个对话中心中的每一个重置为不包括对话中心的空集。
通常,电子设备包括一个或更多个处理器、存储器、显示器以及存储在存储器中的一个或更多个程序。程序被配置为由一个或更多个处理器执行,并且被配置为执行本文描述的方法中的任一个。一个或更多个程序包括用于基于使用第一组一个或更多个查询从数据库获取的第一数据集来显示数据可视化的指令。一个或更多个程序还包括用于接收第一用户输入以指定与数据可视化相关的第一自然语言命令的指令。一个或更多个程序还包括用于从第一自然语言命令中提取第一组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语以及基于第一组一个或更多个功能短语来更新数据可视化的指令。
在一些实施方式中,一个或更多个程序包括用于接收第二用户输入以指定与已更新的数据可视化相关的第二自然语言命令的指令。一个或更多个程序还包括用于从第二自然语言命令中提取第二组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心的指令。一个或更多个程序还包括用于使用一个或更多个过渡规则从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语以及基于第二组一个或更多个功能短语来更新数据可视化的指令。
在一些实施方式中,一种非暂时性计算机可读存储介质存储一个或更多个程序,该一个或更多个程序被配置为由具有一个或更多个处理器、存储器和显示器的计算设备执行。一个或更多个程序被配置为执行本文所描述的方法中的任一个。一个或更多个程序包括用于基于使用第一组一个或更多个查询从数据库获取的第一数据集来显示数据可视化的指令。一个或更多个程序还包括用于接收第一用户输入以指定与数据可视化相关的第一自然语言命令的指令。一个或更多个程序还包括用于从第一自然语言命令中提取第一组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语以及基于第一组一个或更多个功能短语来更新数据可视化的指令。
在一些实施方式中,一个或更多个程序包括用于接收第二用户输入以指定与已更新的数据可视化相关的第二自然语言命令的指令。一个或更多个程序还包括用于从第二自然语言命令中提取第二组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心的指令。一个或更多个程序还包括用于使用一个或更多个过渡规则来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语以及基于第二组一个或更多个功能短语来更新数据可视化的指令。
在另一方面中,根据一些实施方式,该设备基于使用第一组一个或更多个数据库查询从数据库获取的数据集来显示数据可视化。用户指定与所显示的数据可视化相关的第一自然语言命令。基于所显示的数据可视化,设备从第一自然语言命令中提取第一组一个或更多个独立分析短语。该设备然后基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心。该设备然后计算与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语。该设备然后基于第一组一个或更多个功能短语来更新数据可视化。用户指定与已更新的数据可视化相关的第二自然语言命令。在接收到第二自然语言命令之后,设备从第二自然语言命令中提取第二组一个或更多个独立分析短语,并且基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心。该设备然后计算在第一组一个或更多个分析短语和第二组一个或更多个分析短语之间的衔接(cohesion)。设备然后基于衔接从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心。该设备计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语。该设备然后基于第二组一个或更多个功能短语来更新数据可视化。
在一些实施方式中,该设备通过执行一系列操作来计算衔接并导出第二组一个或更多个对话中心,所述操作包括:识别第二组一个或更多个分析短语的短语结构;基于短语结构来识别一种或多种语用形式;以及基于一种或多种语用形式来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心。
在一些这样的实施方式中,该设备通过执行一系列操作来识别短语结构,所述操作包括:应用概率语法(probabilistic grammar)来语法分析第二自然语言命令,从而获得经语法分析的输出;以及将经语法分析的输出解析为对应的分类和数据属性。在一些这样的实施方式中,语法分析第二自然语言命令还包括通过使用由自然语言工具包提供的词性API(例如词性(PS)标注器)来推断句法结构。
在一些实施方式中,该设备通过执行一系列操作来识别一种或多种语用形式,所述操作包括通过确定一个或更多个语言元素是否不存在于短语结构中来确定第二自然语言命令是否是不完整话语(有时被称为省略)。在一些这样的实施方式中,设备通过执行一系列操作来导出第二组一个或更多个对话中心,所述操作包括:根据确定了第二自然语言命令是不完整话语:确定在第一组一个或更多个对话中心中的第一子集的对话中心,第一子集的对话中心对应于不存在短语结构中的一个或更多个语言元素;以及通过将临时组的一个或更多个对话中心与第一子集的对话中心组合来计算第二组一个或更多个对话中心。
在一些实施方式中,该设备通过执行一系列操作来识别一种或多种语用形式,所述操作包括:通过确定一个或更多个回指参考(anaphoric reference)是否存在于短语结构中来确定第二自然语言命令是否是参考表达式;并且该设备通过执行另一系列操作来导出第二组一个或更多个对话中心,所述操作包括:根据确定了第二自然命令是参考表达式:搜索第一组一个或更多个对话中心以找到与第二自然语言命令中的短语块相对应的第一子集的对话中心,该短语块包含一个或更多个回指参考中的第一回指参考;以及基于临时组的一个或更多个对话中心和第一子集的对话中心来计算第二组一个或更多个对话中心。
在一些这样的实施方式中,设备进一步确定第一回指参考是否伴随有在第二自然语言命令中的动词,并且如果是这样的话,则搜索第一组一个或更多个对话中心以找到提到行动动词(例如,“过滤掉”)的第一行动对话中心;并且基于临时组的一个或更多个对话中心、第一子集的对话中心和第一行动对话中心来计算第二组一个或更多个对话中心。
在一些这样的实施方式中,该设备通常通过指点来确定第一回指参考是否是提到在环境中的某个对象的直指参考,以及如果是这样的话,则基于临时组的一个或更多个对话中心和该对象的特性来计算第二组一个或更多个对话中心。通常通过多模态交互(例如,除了语音或文本之外,还通过鼠标的使用)来启用直指参考。
在一些这样的实施方式中,设备进一步确定第一回指参考是否是对在已更新的数据可视化中的可视化属性的参考,并且如果是这样的话,则基于临时组的一个或更多个对话中心和与可视化属性相关的数据来计算第二组一个或更多个对话中心。
在一些实施方式中,该设备通过执行一系列操作来识别一种或多种语用形式,所述操作包括通过确定短语结构是否对应于一个或更多个预定义的修复话语来确定第二自然语言命令是否是修复话语(例如,修复在第一自然语言命令中的潜在歧义或者结果如何被呈现给用户)。例如,用户说出“摆脱公寓”或“从公寓改变到联排别墅”。在这样的实施方式中,如果设备确定第二自然语言命令是修复话语,则设备基于临时组的一个或更多个对话中心来计算第二组一个或更多个对话中心;并且基于一个或更多个预定义的修复话语和短语结构来更新在第二组一个或更多个对话中心中的一个或更多个数据属性。
在一些这样的实施方式中,设备确定短语结构是否对应于修复话语以改变与显示数据可视化相关的默认行为(例如,诸如响应于“替代地,没有过滤器”而加亮用于选择),并且如果是这样的话,设备改变与显示相关的默认行为。
在一些实施方式中,该设备通过执行一系列操作来识别一种或多种语用形式,所述操作包括通过(i)确定在短语结构中的连接词的显式或隐式存在;以及(ii)确定临时组的一个或更多个对话中心是否包括第一组一个或更多个对话中心中的每个对话中心来确定第二自然语言命令是否是连接表达式。在这样的实施方式中,设备通过执行另一组操作来导出第二组一个或更多个对话中心,所述操作包括:根据确定了第二自然语言命令是连接表达式,基于临时组的一个或更多个对话中心来计算第二组一个或更多个对话中心。
在一些这样的实施方式中,该设备确定第二自然语言命令是否具有多于一个合取项(conjunct);并且根据确定了第二自然语言命令具有多于一个合取项,该设备通过线性化第二自然语言命令来计算第二组一个或更多个分析函数。在一些这样的实施方式中,设备通过执行一系列操作来线性化第二自然语言命令,所述操作包括:为第二自然语言命令生成分析树;按照后序遍历分析树以提取第一分析短语和第二分析短语,其中第一分析短语和第二分析短语是分析树中的相邻的节点;计算分别对应于第一分析短语和第二分析短语的第一分析函数和第二分析函数;以及通过基于第一分析函数和第二分析函数的一个或更多个特性应用一个或更多个逻辑运算符来组合第一分析函数和第二分析函数,其中一个或更多个特性包括属性类型、运算符类型和值。
在一些这样的实施方式中,第一分析函数包括第一属性(有时在本文被称为变量,并且包括可视化属性)、第一运算符和第一值;第二分析函数包括第二属性(有时在本文被称为变量,并包括可视化属性)、第二运算符和第二值。
在一些这样的实施方式中,将第一分析函数与第二分析函数相组合包括:确定第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性;确定第一属性和第二属性是否是相同的;以及根据确定了第一属性和第二属性是相同的并且都是分类类型属性,应用并集运算符(union operator)来组合第一分析函数和第二分析函数。
在一些这样的实施方式中,将第一分析函数与第二分析函数相组合包括:确定第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性;确定第一属性和第二属性是否是相同的;以及根据确定了第一属性和第二属性是不相同的,应用交集运算符(intersection operator)来组合第一分析函数和第二分析函数。
在一些这样的实施方式中,将第一分析函数与第二分析函数相组合包括:确定第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性;确定第一属性和第二属性是否是相同的;以及根据确定了第一属性和第二属性是相同的并且都是有序类型属性:确定第一运算符和第二运算符的运算符类型;以及根据确定了第一运算符和第二运算符都是相等运算符(equality operators),应用并集运算符来组合第一分析函数和第二分析函数。
在一些这样的实施方式中,将第一分析函数与第二分析函数相组合包括:确定第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性;确定第一属性和第二属性是否是相同的;以及根据确定了第一属性和第二属性是相同的并且都是有序类型属性:确定第一运算符和第二运算符的运算符类型;并且根据确定了第一运算符是“小于”运算符和第二运算符是“大于”运算符:确定第一值是否小于第二值;并且根据确定了第一值小于第二值,应用并集运算符来组合第一分析函数和第二分析函数。
在一些这样的实施方式中,将第一分析函数与第二分析函数相组合包括:确定第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性;确定第一属性和第二属性是否是相同的;以及根据确定了第一属性和第二属性是相同的并且都是有序类型属性:确定第一运算符和第二运算符的运算符类型;并且根据确定了第一运算符是“大于”运算符和第二运算符是“小于”运算符:确定第一值是否小于第二值;并且根据确定了第一值小于第二值,应用交集运算符来组合第一分析函数和第二分析函数。
在一些实施方式中,该设备进一步计算在第二组一个或更多个所提取的分析短语和被包括在已更新的数据可视化中的数据的一个或更多个属性之间的语义相关性,并且基于数据的在语义上相关的一个或更多个属性来计算与第二组一个或更多个分析短语相关联的分析函数,从而创建第二组一个或更多个功能短语。与语法衔接或在语境之间的衔接相反,词汇衔接寻找在语境内的衔接。
在一些这样的实施方式中,该设备通过执行一系列操作来计算语义相关性,所述操作包括:在大文本语料库上训练第一神经网络模型,从而学习词嵌入(wordembeddings);使用第二神经网络模型来计算在第二组一个或更多个分析短语中的第一短语中的第一词的第一词向量,第一词向量将第一词映射到词嵌入;使用第二神经网络模型来为在一个或更多个数据属性中的第一数据属性计算第二词向量,第二词向量将第一数据属性映射到词嵌入;以及使用相似性度量来计算在第一词向量和第二词向量之间的相关性。
在一些这样的实施方式中,第一神经网络模型包括Word2vecTM模型。在一些这样的实施方式中,第二神经网络模型包括递归神经网络模型。
在一些这样的实施方式中,相似性度量至少基于(i)在与第一词向量和第二词向量相关联的词义之间的Wu-Palmer距离、(ii)加权因子以及(iii)在第一词向量和第二词向量之间的成对余弦距离(pairwise cosine distance)。
在一些这样的实施方式中,该设备通过执行一系列操作来计算分析函数,所述操作包括:从可公开得到的词典中获得第二组一个或更多个分析短语的词语定义;使用由自然语言工具包提供的词性API来确定词语定义是否包含一个或更多个预定义的形容词;并且根据确定了词语定义包含一个或更多个预定义的形容词,将一个或更多个预定义的形容词映射到一个或更多个分析函数。
一般地,电子设备包括一个或更多个处理器、存储器、显示器以及存储在存储器中的一个或更多个程序。程序被配置为由一个或更多个处理器执行,并且被配置为执行本文描述的方法中的任一个。一个或更多个程序包括用于基于使用第一组一个或更多个查询从数据库获取的第一数据集来显示数据可视化的指令。一个或更多个程序还包括用于接收第一用户输入以指定与数据可视化相关的第一自然语言命令的指令。一个或更多个程序还包括用于从第一自然语言命令中提取第一组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第一组一个或更多个对话中心相关联的第一组分析函数从而创建第一组一个或更多个功能短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个功能短语来更新数据可视化的指令。一个或更多个程序还包括用于接收第二用户输入以指定与已更新的数据可视化相关的第二自然语言命令的指令。一个或更多个程序还包括用于从第二自然语言命令中提取第二组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心的指令。一个或更多个程序还包括用于计算在第一组一个或更多个分析短语和第二组一个或更多个分析短语之间的衔接的指令。一个或更多个程序还包括用于基于衔接来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数从而创建第二组一个或更多个功能短语以及基于第二组一个或更多个功能短语来更新数据可视化的指令。
在一些实施方式中,一种非暂时性计算机可读存储介质存储一个或更多个程序,该一个或更多个程序被配置为由具有一个或更多个处理器、存储器和显示器的计算设备执行。一个或更多个程序被配置为执行本文所描述的方法中的任一个。一个或更多个程序包括用于基于使用第一组一个或更多个查询从数据库获取的第一数据集来显示数据可视化的指令。一个或更多个程序还包括用于接收第一用户输入以指定与数据可视化相关的第一自然语言命令的指令。一个或更多个程序还包括用于从第一自然语言命令中提取第一组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第一组一个或更多个对话中心相关联的第一组分析函数从而创建第一组一个或更多个功能短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个功能短语来更新数据可视化的指令。一个或更多个程序还包括用于接收第二用户输入以指定与已更新的数据可视化相关的第二自然语言命令的指令。一个或更多个程序还包括用于从第二自然语言命令中提取第二组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心的指令。一个或更多个程序还包括用于计算在第一组一个或更多个分析短语和第二组一个或更多个分析短语之间的衔接的指令。一个或更多个程序还包括用于基于衔接来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数从而创建第二组一个或更多个功能短语以及基于第二组一个或更多个功能短语来更新数据可视化的指令。
在另一方面中,根据一些实施方式,一种方法在具有显示器的电子设备处执行。例如,电子设备可以是智能电话、平板计算机、笔记本计算机或台式计算机。该设备基于使用第一组一个或更多个数据库查询从数据库获取的数据集来显示数据可视化。用户指定与所显示的数据可视化相关的第一自然语言命令。基于所显示的数据可视化,设备从第一自然语言命令中提取第一组一个或更多个独立分析短语。该设备然后基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心。该设备然后计算与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语。该设备然后基于第一组一个或更多个功能短语来更新数据可视化。用户指定与已更新的数据可视化相关的第二自然语言命令。在接收到第二自然语言命令之后,设备从第二自然语言命令中提取第二组一个或更多个独立分析短语,并且基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心。该设备然后使用一个或更多个过渡规则来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心。该设备然后基于第二组一个或更多个对话中心来更新数据可视化。
在一些实施方式中,设备进一步确定对应于第二组一个或更多个对话中心的一个或更多个数据属性;扫描所显示的数据可视化以识别包含数据标记的一个或更多个所显示的数据可视化,数据标记的特性对应于在一个或更多个数据属性中的第一数据属性;以及加亮其特性对应于第一数据属性的数据标记。在一些这样的实施方式中,设备进一步从所显示的数据可视化过滤包含其特性不对应于一个或更多个数据属性的数据标记的结果。此外,在一些这样的实施方式中,设备接收用户输入以确定是否过滤或加亮数据标记(例如,通过自然语言命令,诸如“排除”、“移除”和“仅过滤”)。
在一些实施方式中,可视化特性包括颜色、尺寸和形状中的一个或更多个。在一些实施方式中,可视化特性对应于数据标记的可视编码。在一些实施方式中,可视编码是颜色、尺寸和形状中的一个或更多个。
在一些实施方式中,设备确定是否没有一个所显示的数据可视化包含其特性对应于第一数据属性的数据标记,如果是这样的话,则生成具有第一数据属性(例如,聚集类型)的新数据可视化的规范,并显示新数据可视化。在一些这样的实施方式中,显示新数据可视化还包括基于规范来确定图表类型;以及生成和显示该图表。此外,在一些这样的实施方式中,使用与其他数据可视化(有时在本文被称为视图)自动协调的基于二维网格的布局算法来定位图表。
在一些实施方式中,该设备进一步执行一系列操作,该一系列操作包括:计算与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语;从第二组一个或更多个功能短语中选择第一功能短语,其中第一功能短语包括参数化数据选择标准;选择参数化数据选择标准的参数的值的初始范围;显示对应于参数化数据选择标准的可编辑用户接口控件(例如小部件),其中用户接口控件显示参数的当前值;以及基于在第二自然语言命令中的查询的顺序将所显示的一组一个或更多个可编辑用户接口控件排序,其中查询的顺序被推断出,同时从第二自然语言命令中提取第二组一个或更多个分析短语。在一些这样的实施方式中,用户接口控件允许对第一功能短语的调整。此外,在一些这样的实施方式中,用户接口控件显示滑块,其使用户能够调整第一功能短语。在一些这样的实施方式中,将所显示的一组一个或更多个可编辑用户接口控件排序还包括使用便于小词规模可视化在文本中紧凑放置的库。在一些这样的实施方式中,库是SparklificatorTM。
在一些实施方式中,设备执行旨在自动校正一些用户错误的一系列操作。该一系列操作包括:确定在第二自然语言命令中的与在第二组一个或更多个分析短语中的任何分析短语不对应(例如,由于语义分析失败)的第一标志(first token);通过将第一标志与第一数据集的一个或更多个特征进行比较,使用搜索库来搜索对应于第一标志的正确拼写的项;以及用正确拼写的项代替在第二自然语言命令中的第一标志以获得第三自然语言命令;以及从第三自然语言命令中提取第二组一个或更多个分析短语。在一些这样的实施方式中,一个或更多个特征包括第一数据集的数据属性、单元值(cell values)和相关关键字。在一些这样的实施方式中,搜索库是模糊字符串库,诸如Fuse.jsTM。
在一些这样的实施方式中,设备进一步执行一系列操作,该一系列操作包括:确定是否没有对应于第一标志的正确拼写的项;并且根据确定了没有对应于第一标志的正确拼写的项:语法分析第二自然语言命令以获得分析树;修剪分析树以移除树的对应于第一标志的部分;以及基于所修剪的分析树来提取第二组一个或更多个分析短语。
在一些实施方式中,该设备进一步生成文本反馈,该文本反馈指示第一标志未被识别出且因此从第二自然语言命令中被移除——一种通常在话语仅被部分地理解时出现的情况。在一些这样的实施方式中,设备显示第一标志。
在一些实施方式中,该设备进一步生成文本反馈,该文本反馈指示正确拼写的项代替在第二自然语言命令中的第一标志。这通常是在话语没有被成功地理解但设备建议可替代的查询时的情况。此外,在一些这样的实施方式中,设备显示并加亮正确拼写的项。
一般地,电子设备包括一个或更多个处理器、存储器、显示器以及存储在存储器中的一个或更多个程序。程序被配置为由一个或更多个处理器执行,并且被配置为执行本文描述的方法中的任一个。一个或更多个程序包括用于基于使用第一组一个或更多个查询从数据库获取的第一数据集来显示数据可视化的指令。一个或更多个程序还包括用于接收第一用户输入以指定与数据可视化相关的第一自然语言命令的指令。一个或更多个程序还包括用于从第一自然语言命令中提取第一组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第一组一个或更多个对话中心相关联的第一组分析函数从而创建第一组一个或更多个功能短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个功能短语来更新数据可视化的指令。一个或更多个程序还包括用于接收第二用户输入以指定与已更新的数据可视化相关的第二自然语言命令的指令。一个或更多个程序还包括用于从第二自然语言命令中提取第二组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心的指令。一个或更多个程序还包括用于使用一个或更多个过渡规则来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心的指令。一个或更多个程序还包括用于基于第二组一个或更多个对话中心来更新数据可视化的指令,其中更新包括:确定对应于第二组一个或更多个对话中心的一个或更多个数据属性;扫描所显示的数据可视化以识别包含数据标记的一个或更多个所显示的数据可视化,数据标记的特性对应于在一个或更多个数据属性中的第一数据属性;以及加亮其特性对应于第一数据属性的数据标记。
在一些实施方式中,一种非暂时性计算机可读存储介质存储一个或更多个程序,该一个或更多个程序被配置为由具有一个或更多个处理器、存储器和显示器的计算设备执行。一个或更多个程序被配置为执行本文所描述的方法中的任一个。一个或更多个程序包括用于基于使用第一组一个或更多个查询从数据库获取的第一数据集来显示数据可视化的指令。一个或更多个程序还包括用于接收第一用户输入以指定与数据可视化相关的第一自然语言命令的指令。一个或更多个程序还包括用于从第一自然语言命令中提取第一组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个分析短语来计算与第一自然语言命令相关联的第一组一个或更多个对话中心的指令。一个或更多个程序还包括用于计算与第一组一个或更多个对话中心相关联的第一组分析函数从而创建第一组一个或更多个功能短语的指令。一个或更多个程序还包括用于基于第一组一个或更多个功能短语来更新数据可视化的指令。一个或更多个程序还包括用于接收第二用户输入以指定与已更新的数据可视化相关的第二自然语言命令的指令。一个或更多个程序还包括用于从第二自然语言命令中提取第二组一个或更多个独立分析短语的指令。一个或更多个程序还包括用于基于第二组一个或更多个分析短语来计算与第二自然语言命令相关联的临时组的一个或更多个对话中心的指令。一个或更多个程序还包括用于使用一个或更多个过渡规则来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出第二组一个或更多个对话中心的指令。一个或更多个程序还包括用于基于第二组一个或更多个对话中心来更新数据可视化的指令,其中更新包括:确定对应于第二组一个或更多个对话中心的一个或更多个数据属性;扫描所显示的数据可视化以识别包含数据标记的一个或更多个所显示的数据可视化,数据标记的特性对应于在一个或更多个数据属性中的第一数据属性;以及加亮其特性对应于第一数据属性的数据标记。
因此,公开了允许用户有效地探索在数据可视化应用中显示的数据的方法、系统和图形用户接口。
前述一般描述和下面的详细描述都是示例性和说明性的,且旨在提供如所要求保护的本发明的进一步解释。
附图简述
为了更好地理解前面提到的系统、方法和图形用户接口以及提供数据可视化分析的额外的系统、方法和图形用户接口,应结合下面的附图来参考下面的实施方式的描述,其中相似的参考数字在全部附图中指相应的部件。
图1图示了在一些实施方式中使用的图形用户接口。
图2是根据一些实施方式的计算设备的框图。
图3A是图示了根据一些实施方式的用于使用自然语言应用语用学原理进行数据集的可视分析的过程的过程流程图;以及图3B是根据一些实施方式的图示了当特定过渡规则被触发时的对话中心状态和在状态之间的过渡的状态机图。
图4A至图4B是图示了根据一些实施方式的在处理分析对话时使用不同过渡规则的示图;以及图4C至图4G图示了根据一些实施方式的使用在数据可视化应用中的自然语言处理的交互式数据分析的图形用户接口(其与图4A至图4B相关)。
图5是图示了根据一些实施方式的将语用学原理应用于可视分析的总体框架的示图。
图6A是图示了根据一些实施方式的针对不完整话语(有时在本文被称为省略)应用语用学原理的示图;以及图6B至图6D图示了根据一些实施方式的在数据可视化应用中使用自然语言处理的交互式数据分析的图形用户接口(其与图6A相关)。
图7A是图示了根据一些实施方式的针对具有参考表达式(有时在本文被称为回指参考)的话语应用语用学原理的示图;以及图7B至图7D图示了根据一些实施方式的在数据可视化应用中使用自然语言处理的交互式数据分析的图形用户接口(其与图7A相关)。
图8A是图示了根据一些实施方式的针对具有连接词的话语应用语用学原理的示图;图8B图示了根据一些实施方式的在数据可视化应用中使用自然语言处理的交互式数据分析的图形用户接口(其与图8A相关);以及图8C图示了根据一些实施方式的系统如何通过线性化来迭代地连接分析树中的相邻的节点的分析函数。
图9A是图示了根据一些实施方式的针对处理词汇衔接应用语用学原理的示图;以及图9B至图9D图示了根据一些实施方式的在数据可视化应用中使用自然语言处理的交互式数据分析的图形用户接口(其与图9A相关)。
图10A是图示了根据一些实施方式的针对修复话语应用语用学原理的示图;以及图10B至图10C图示了根据一些实施方式的在数据可视化应用中使用自然语言处理的交互式数据分析的图形用户接口(其与图10A相关)。
图11A是图示了根据一些实施方式的针对处理响应和反馈应用语用学原理的示图;图11B是进一步图示了图11A中所示出的方法的数据可视化;以及图11C图示了根据一些实施方式的如何基于输入话语逐步构建仪表板。
图12A图示了根据一些实施方式的为处理用户查询中的歧义而生成的一组小部件;以及图12B图示了根据一些实施方式的针对各种状况的反馈的示例。
图13A至图13J提供了根据一些实施方式的使用自然语言用于应用语用学原理进行数据集的可视分析的过程的流程图。
图14A至图14R提供了根据一些实施方式的使用自然语言用于应用语用学原理进行数据集的可视分析(包括用于处理各种语用形式)的过程的流程图。
图15A至图15H提供了根据一些实施方式的使用自然语言用于应用语用学原理进行数据集的可视分析(包括用于处理响应和反馈以及用于处理用户查询中的歧义)的过程的流程图。
现在将参考实施方式,其示例在附图中图示。在下面的描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域中的普通技术人员来说将明显,本发明可以被实践而不需要这些具体细节。
实施方式的描述
图1图示了用于交互式数据分析的图形用户接口100。根据一些实施方式,用户接口100包括数据选项卡114和分析选项卡116。当数据选项卡114被选择时,用户接口100显示架构信息区域110,其也被称为数据窗格(data pane)。架构信息区域110提供被命名的数据元素(例如,字段名),其可以被选择并用于构建数据可视化。在一些实施方式中,字段名的列表被分成一组维度(例如分类数据)和一组度量(例如数值量)。一些实施方式还包括参数的列表。当分析选项卡116被选择时,用户接口显示分析函数的列表而不是数据元素(未示出)。
图形用户接口100还包括数据可视化区域112。数据可视化区域112包括多个架区域(shelf regions),例如列架区域120和行架区域122。这些也被称为列架120和行架122。如这里所图示的,数据可视化区域112还具有用于显示可视图形(在本文也被称为数据可视化)的大空间。由于还没有数据元素被选择,该空间最初没有可视图形。在一些实施方式中,数据可视化区域112具有被称为工作表(sheets)的多个层。
在一些实施方式中,图形用户接口100还包括自然语言处理区域124。自然语言处理区域124包括用于接收自然语言命令的输入栏(在本文也被称为命令栏)。用户可以与输入栏交互以提供命令。例如,用户可以在输入栏中键入命令以提供该命令。另外,用户可以通过对着麦克风(例如,音频输入设备220)说话来间接地与输入栏交互以提供命令。在一些实施方式中,数据元素最初与列架120和行架122相关联(例如,使用从架构信息区域110到列架120和/或行架122的拖放操作)。在初始关联之后,用户可以使用自然语言命令(例如,在自然语言处理区域124中)来进一步探索所显示的数据可视化。在一些情况下,用户使用自然语言处理区域124来创建初始关联,这导致一个或更多个数据元素被放置在列架120和行架122中。例如,用户可提供创建数据元素X和数据元素Y之间的关系的命令。响应于接收到该命令,列架120和行架122可以用数据元素填充(例如,列架120可以用数据元素X填充,以及行架122可以用数据元素Y填充,或反之亦然)。
图2是图示了根据一些实施方式的计算设备200的框图,该计算设备200可以显示图形用户接口100。计算设备200的各种示例包括台式计算机、膝上型计算机、平板计算机以及具有显示器和能够运行数据可视化应用230的处理器的其他计算设备。计算设备200通常包括一个或更多个处理单元(处理器或核心)202、一个或更多个网络或其他通信接口204、存储器206以及用于互连这些部件的一个或更多个通信总线208。通信总线208可选地包括互连和控制系统部件之间的通信的电路(有时被称为芯片组)。计算设备200包括用户接口210。用户接口210通常包括显示设备212。在一些实施方式中,计算设备200包括输入设备,诸如键盘、鼠标和/或其他输入按钮216。可替代地或者另外地,在一些实施方式中,显示设备212包括触敏表面214,在这种情况下,显示设备212是触敏显示器。在一些实施方式中,触敏表面214被配置成检测各种滑动手势(swipe gestures)(例如,在垂直和/或水平方向上的连续手势)和/或其他手势(例如,单击/双击)。在具有触敏显示器214的计算设备中,物理键盘是可选的(例如,当需要键盘输入时,可以显示软键盘)。用户接口210还包括音频输出设备218,诸如扬声器或连接到扬声器的音频输出连接件、耳机或头戴式耳机。此外,一些计算设备200使用麦克风和语音识别来补充或代替键盘。可选地,计算设备200包括音频输入设备220(例如,麦克风)以捕获音频(例如,来自用户的语音)。
存储器206包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且可以包括非易失性存储器,诸如一个或更多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。在一些实施方式中,存储器206包括从处理器202远程地定位的一个或更多个存储设备。存储器206或可替代地在存储器206内的非易失性存储器设备包括非暂时性计算机可读存储介质。在一些实施方式中,存储器206或存储器206的计算机可读存储介质储存下面的程序、模块和数据结构或其子集或超集:
·操作系统222,其包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
·通信模块224,其用于经由一个或更多个通信网络接口204(有线或无线),诸如互联网、其他广域网、局域网、城域网等,将计算设备200连接到其他计算机和设备;
·web浏览器226(或能够显示web页面的其他应用),其使用户能够通过网络与远程计算机或设备通信;
·音频输入模块228(例如麦克风模块),其用于处理由音频输入设备220捕获的音频。所捕获的音频可以被发送到远程服务器和/或由在计算设备200上执行的应用(例如,数据可视化应用230)处理;
·用于生成数据可视化和相关特征的数据可视化应用230。应用230包括为用户构建可视图形的图形用户接口232(例如,图1中所图示的图形用户接口100)。例如,用户选择一个或更多个数据源240(其可以存储在计算设备200上或远程地被存储),从数据源中选择数据字段,并使用所选择的字段来定义可视图形;以及
·由数据可视化应用230使用的零个或多个数据库或数据源240(例如,第一数据源240-1和第二数据源240-2)。在一些实施方式中,数据源被存储为电子表格文件、CSV文件、文本文件、JSON文件、XML文件或平面文件(flat files),或者被存储在关系数据库中。
在一些实施方式中,数据可视化应用230包括数据可视化生成模块234,该数据可视化生成模块234接受用户输入(例如,可视规范(visual specification)236),并生成对应的可视图形。数据可视化应用230然后在用户接口232中显示生成的可视图形。在一些实施方式中,数据可视化应用230作为独立应用(例如,桌面应用)执行。在一些实施方式中,数据可视化应用230使用由web服务器提供的web页面(例如,基于服务器的应用)来在web浏览器226或另一应用内执行。
在一些实施方式中,用户提供的信息(例如,用户输入)被存储为可视规范236。在一些实施方式中,可视规范236包括从用户接收的先前自然语言命令或由用户通过自然语言命令指定的属性。
在一些实施方式中,数据可视化应用230包括用于处理(例如,解释)由计算设备的用户提供的命令的语言处理模块238。在一些实施方式中,命令是自然语言命令(例如,由音频输入设备220捕获)。在一些实施方式中,语言处理模块238包括子模块,诸如自动完成模块、语用模块和歧义模块,下面将进一步详细地讨论每个模块。
在一些实施方式中,存储器206存储由语言处理模块238确定的度量和/或分数。另外,存储器206可以存储与由语言处理模块238确定的度量和/或分数进行比较的阈值和其他标准。例如,语言处理模块238可以确定所接收的命令的分析字/短语的相关性度量(下面详细讨论)。然后,语言处理模块238可以将相关性度量与存储在存储器206中的阈值进行比较。
上面识别的可执行模块、应用或过程集中的每一个可以存储在前面提到的存储器设备中的一个或更多个中,并且对应于用于执行上述功能的一组指令。以上所确定的模块或程序(即,指令集)不需要被实施方式为单独的软件程序、过程或模块,并且因此这些模块的各种子集可以组合或以其他方式重新布置在各种实施方式中。在一些实施方式中,存储器206存储上面识别的模块和数据结构的子集。此外,存储器206可以存储上面未描述的附加模块或数据结构。
尽管图2示出了计算设备200,但是图2更多地旨在作为可能存在的各种特征的功能描述,而不是作为本文的实施方式的结构示意图。在实践中,如本领域的普通技术人员所认识到的,单独示出的项可以组合并且一些项可以被分离。
图3A是图示了根据一些实施方式的用于使用自然语言应用语用学原理进行数据集的可视分析的过程或框架的过程流程图。基于对话交互模型(conversationalinteraction model)的框架扩展在语用学理论中所采用的向心方法(centeringapproach)以支持继续、保留和移动在游戏中的数据属性的语境的句子间过渡状态。该框架支持“可视分析的循环”——支持在可视分析中的流体迭代探索和细化的接口。当用户可聚焦于回答他们关于他们的数据的问题而不是聚焦于如何操作分析工具的接口时,与可视化分析的交互是最有效的。语用对于可视分析流程尤其重要,其中问题和见识常常从一个人看到的先前的问题和数据模式显露出来。
展示连贯性的话语的序列形成对话。基于相对于其他话语的解释的每一个单独话语的解释,连贯性是对话的语义性质。如前面所提到的,根据一些实施方式,为了正确地解释一组话语,过程框架利用并扩展通常用于被称为对话向心(conversational centering)的话语结构的模型。在这个模型中,话语被分成构成语篇片段(constituent discoursesegments),其嵌有可能在两个片段之间所保持的关系。中心指用来将那个话语链接到语篇中的其他话语的那些实体。考虑具有话语U1,…,Um的语篇片段DS。在DS中的每个话语Un(1≤n<m)被分配一组下指中心(forward-looking centers)Cf(Un,DS),其指对话的当前焦点;除了片段的初始话语之外的每个话语被分配一组上指中心(backward-looking centers)Cb(Un,DS)。新话语Un+1的该组上指中心是Cb(Un+1,DS),其等于Un的下指中心(即Cf(Un,DS))。在可视分析对话的语境中,下指中心和上指中心包括数据属性和值、可视属性和分析行动(例如过滤、加亮)。
每个语篇片段展示全局连贯性,即整个对话的全局语境,其通常指对话的话题或主题;并且展示局部连贯性,即在该对话中的话语当中的连贯性。局部连贯性指通过在Cf(Un,DS)和Cb(Un,DS)之间持续、保留和代替的过渡状态来推断在局部语境内的一系列话语。根据一些实施方式,该框架通过为这些局部连贯性构想中的每一个引入一组规则来扩展可视分析对话的这个对话向心理论。
给定话语Un,实施该框架的系统通过执行从下指中心Cf(Un,DS)导出的一系列分析函数来做出响应。根据一些实施方式,分析函数F(X,op,v)由变量X(其可以是属性或可视化属性)、运算符op和值v(通常是常数)组成。例如,当用户说“英国的麻疹”时,系统创建两个函数,即F_CAT(疾病,==,麻疹)和F_CAT(国家,==,英国)。当用户提供新的话语Un+1时,系统首先从Un+1创建一组临时中心Ctemp(Un+1,DS),而不考虑任何先前的语境。然后,系统应用一组规则以基于在Cb(Un+1,DS)和Ctemp(Un+1,DS)之间的一些集合操作来创建一组下指中心Cf(Un+1,DS)。根据一些实施方式,下指中心然后用于对用户话语做出响应。
图3A图示了根据一些实施方式的两个话语Un(302)和Un+1(312)的这个过程。系统从Un创建(304)一组临时中心Ctemp(Un)(306),而不考虑任何先前的语境。在接收到话语Un时,系统已经基于先前的话语Un-1预先计算了一组上指对话中心Cb(Un)(301),或者如果Un是第一个话语,则将Cb(Un)初始化为空集合。然后,该系统应用(308)一个或更多个过渡规则(下面参考图3B描述)以从上指中心Cb(Un)(301)和临时对话中心Ctemp(Un)(306)导出一组下指中心Cf(Un)(310)。下指对话中心Cf(Un)(310)也是下一个话语Un+1(312)的上指对话中心Cb(Un+1)。针对下一个话语Un+1(312)重复到目前为止所描述的过程。系统从Un计算(314)一组临时中心Ctemp(Un)(316),而不考虑任何先前的语境。然后,系统应用(318)一个或更多个过渡规则以从上指中心Cb(Un+1)(310)和临时对话中心Cf(Un+1)(316)导出一组下指中心Cf(Un+1)(319)。根据一些实施方式,该系统使用下指对话中心Cf(Un+1)(319)用于更新一个或更多个数据可视化。系统还使用该组下指中心Cf(Un+1)(319)作为下一个话语Un+2的上指对话中心Cb(Un+2),依此类推。根据一些实施方式,当用户移动到不同的数据集或重置可视化时,系统更新分析对话的全局连贯性,并清除所有先前的状态(包括下指对话中心、上指对话中心和临时对话中心)。
图3B是根据一些实施方式的图示了对话中心状态和在状态之间的过渡的状态机图。状态322封装上指对话中心Cb和临时对话中心Ctemp,并且状态324、326和328中的每一个代表下指对话中心Cf的不同状态。对话中心对应于话语Un+1(未示出)。下文是每个过渡规则的描述,即每个过渡何时出现以及结束状态如何被计算。
根据一些实施方式,过渡--继续323使语境从上指中心Cb继续到下指中心Cf。换句话说,在上指对话中心Cb中的每个对话中心都被包括在下指对话中心Cf(324)中。对于给定的话语Un+1,连同其他实体,在语篇片段DS中使用集合表示法(set notation)作为这个过渡的结果,
Cb(Un+1,DS)∈Cf(Un+1,DS)
根据一些实施方式,当变量X在Ctemp(Un+1)中而不是在Cb(Un+1,DS)中时,这个过渡出现。在这种情况下,系统执行下面的并集操作:
Cf(Un+1,DS)=Cb(Un+1,DS)∪Ctemp(Un+1,DS)
根据一些实施方式,过渡--保留325将来自上指中心Cb(322)的语境保留在下指中心Cf(326)中,而不向下指中心添加额外的实体;即,
Cf(Un+1,DS)=Cb(Un+1,DS)
根据一些实施方式,当变量X在Cb(Un+1,DS)中而不是在Ctemp(Un+1,DS)中时,过渡--保留325触发。
在一些实施方式中,使用转移过渡327,语境从上指对话中心322转移到下指对话中心328;即,
Cf(Un+1,DS)≠Cb(Un+1,DS)
在一些实施方式中,当变量X在Cb(Un+1,DS)和Ctemp(Un+1,DS)中时,转移过渡327出现,但是对应的值是不同的。在这种情况下,系统用Ctemp(Un+1,DS)代替包含X的所有上指中心Cb(Un+1,DS)。如图3B所图示的,这个代替可以用下面的等式表示:
Cf(Un+1,DS)=Cb(Un+1,DS)–XCb+XCtemp
在一些实施方式中,当过滤器约束被移除时,转移过渡327也出现;例如,移除麻疹的小部件将疾病变量从麻疹转移到所有疾病。
图4A是图示了根据一些实施方式的在处理分析对话时使用不同过渡规则的示图。假设系统实施了上面参考图3A和图3B所描述的框架。根据一些实施方式,当系统接收到话语400(例如,“在英国的麻疹”)时,系统计算(402)对应于该话语的下指对话中心(404),并初始化上指中心。示例话语的对话中心是“麻疹”和“英国”。基于所计算的对话中心,系统应用(406)过滤器来更新可视化,例如应用在可视化408中显示在英国的麻疹的分类和空间过滤器。图4D示出了可视化408的放大版本。如图4D中所示出的,话语“在英国的麻疹”导致系统显示“在全世界的疾病爆发”的可视化,焦点在(疾病==麻疹(442)和国家==英国(444))上。回来参考图4A,假设用户用新话语410(例如,“向我显示橙色尖峰”)来对可视化408做出响应,则系统通过应用继续规则(上面参考图3B的323描述的)来计算(412)下指对话中心。这是因为示例话语的临时对话中心(未示出)包括对应于可视化特性(一种变量)的“橙色尖峰”,即可变形状(具有值“尖峰”)和可变颜色(具有值“橙色”),并且这些变量不存在于上指对话中心(404)中。此外,因为话语410并不指在上指对话中心(404)中的其他变量(疾病或国家),故系统不应用保留规则或转移规则。话语410的下指对话中心(414)因此被计算为是{麻疹,英国,橙色尖峰}。基于这些下指中心,系统例如通过在可视化418中加亮在图表中的麻疹的线中的橙色尖峰来更新在数据可视化中的对应图表。图4E示出了可视化418的放大版本。如该示例所示出的,根据一些实施方式,系统响应于话语“向我显示橙色尖峰”而加亮尖峰并用词语“在2013年的4.4例麻疹”注释(446)尖峰。
图4B是进一步图出了将不同过渡规则应用于示例话语的另一个示图。该示例遵循用户对在图4A中的可视化438的响应。参考图4B,根据一些实施方式,当系统接收到话语420(例如,“那里的腮腺炎”)时,系统计算(422)对应于该话语的下指对话中心。上指对话中心(424)(例如,{麻疹,英国,橙色尖峰})对应于在图4A中所示出的前一步骤(响应于话语410)中计算出的下指对话中心(414)。话语420(例如,“那边的腮腺炎”)的临时对话中心(未示出)不包括为对先前话语导出的对话中心(例如,“橙色尖峰”)。这触发系统应用保留规则(上面参考图3B的325所描述的)。例如,临时对话中心包括疾病(DISEASES)变量,但该变量的值从麻疹变为腮腺炎。这使系统应用转移规则(上面参考图3B的327所描述的)。作为结果,系统计算下指对话中心(424)(针对例如{腮腺炎,英国})。基于这些下指对话中心,系统通过应用必要的过滤器(例如,对于英国保留空间过滤器,将分类过滤器更新到腮腺炎)并更新可视化(例如,移除在麻疹的线中的加亮的尖峰)来做出响应(426),如在可视化428中所示的。图4F示出了可视化428的放大版本。如图4F中所示出的,话语“那里的腮腺炎”导致系统显示“在全世界的疾病爆发”的可视化,其中焦点在(疾病==腮腺炎(448)和国家==英国(450))上。
回来参考图4B,为了继续该示例,假设用户用另一话语(430)(例如,“在马拉维、刚果、安哥拉的麻疹流行病”)进行查询,系统通过应用上面所描述的转移规则来计算(432)对应于该话语的下指中心。对于所示出的示例,应用转移规则的原因是变量“疾病”的值现在是不同的,即麻疹和流行病;类似地,地理区域从英国改变到马拉维、刚果和安哥拉。基于应用转移规则,系统计算下指对话中心(434)(对于这个示例,中心是{麻疹,流行病,马拉维,刚果,安哥拉})。基于下指对话中心(434),系统通过应用适当的过滤器(例如,麻疹流行病的分类过滤器以及代替英国,在马拉维、刚果和安哥拉上的新空间过滤器)来进一步对话语做出响应(436),从而生成可视化438(例如,显示在马拉维、刚果和安哥拉的麻疹流行病)。图4G示出了可视化438的放大版本。如图4G中所示,话语“在马拉维、刚果、安哥拉的麻疹流行病”导致系统显示“在全世界的疾病暴发”的可视化,其中焦点在(疾病==麻疹(452)、影响==流行病(454)、国家==马拉维(456)、国家==刚果(458)和国家==安哥拉(460))上。
图4C图示了根据一些实施方式的响应于上面参考图4A和图4B所描述的用户话语的对数据可视化的更新。可视化408、418、428和438在上面分别参考放大的图4D、图4E、图4F和图4G被描述。
图5是图示了根据一些实施方式的将语用学原理应用于可视分析的一般框架的示图。根据一些实施方式,该框架利用并扩展通常用于被称为对话向心的语篇结构的模型。在这个模型中,话语被分成构成语篇片段,其嵌有可能在两个片段之间保持的关系。中心指用来将那个话语链接到语篇中的其他话语的那些实体。考虑具有话语U1,…,Um的语篇片段DS。在DS中的每个话语Un(1≤n<m)被分配一组下指中心Cf(Un,DS),其指对话的当前焦点;除了片段的初始话语之外的每个话语被分配一组上指中心Cb(Un,DS)。新话语Un+1的该组上指中心是Cb(Un+1,DS),其等于Un的下指中心(即Cf(Un,DS))。在可视分析对话的语境中,下指和上指中心包括数据属性和值、可视属性和分析行动(例如过滤、加亮)。
给定话语Un,实施该框架的系统通过执行从下指中心Cf(Un,DS)导出的一系列分析函数来做出响应。分析函数F(X,op,v)由变量X(其可以是属性或可视化属性)、运算符op和值v(通常是常数)组成。例如,当用户说“在英国的麻疹”时,系统创建两个函数,即F_CAT(疾病,==,麻疹)和F_CAT(国家,==,英国)。当用户提供新的话语Un+1时,系统首先从Un+1创建一组临时中心Ctemp(Un+1,DS),而不考虑任何先前的语境。然后,系统应用一组规则以基于在Cb(Un+1,DS)和Ctemp(Un+1,DS)之间的一些集合操作来创建一组下指中心Cf(Un+1,DS)。根据一些实施方式,下指中心然后用于对用户话语做出响应。
图5图示了根据一些实施方式的两个话语Un(500)和Un+1(520)的这个过程。系统从Un+1计算(526)一组临时中心Ctemp(Un+1)(528),而不考虑任何先前的语境。在接收到话语Un+1时,系统已经基于先前的话语Un预先计算了一组上指对话中心Cb(Un+1)(504),或者如果Un是第一个话语,则将Cb(Un+1)(504)初始化为空集合。
对话向心假定话语显示在它们之间的连接性(connectedness)。这些话语相互连接以形成对话的方式是衔接。衔接作为在构成短语中的词汇和语法结构两者的组合的结果出现。因此,识别短语结构是将该话语解析成应用于可视化的一个或更多个分析函数的逻辑起点。短语结构包括词汇结构和语法结构。在图5中,实施该框架的系统在步骤522中计算话语Un+1(520)的短语结构。通常,语法分析器用于计算短语结构。语法分析器接受输入句子(有时被称为查询或自然语言命令),并通过应用特定自然语言(诸如英语)所特有的一组语法规则来将输入句子分成一系列标志(语言元素)。在一些实施方式中,语法规则可以被修改以适应环境。在一些实施方式中,应用概率语法来提供输入查询的结构描述。概率语法对解决在句子语义分析中的歧义很有用。例如,可以从手动语义分析的句子的语料库估计出概率分布(针对语法产生规则)。一些实施方式通过采用词性(POS)标记器来推断额外的句法结构,该词性标记器为每个字(有时被称为标志)分配词性,诸如名词、动词、形容词。一些实施方式将经语法分析的输出解析为对应的分类和有序数据属性。如连接块500和510的虚线所示的,在一些实施方式中,系统还计算(510)话语Un(500)的短语结构。
利用短语结构,系统继续确定(530)语用形式的类型(其示例在下面参考图6A至图10C被描述)和任何其他短语结构相关信息(例如,在一个话语中存在但不存在于另一个话语中的语言元素)。根据一些实施方式,基于语用形式和短语结构信息(532),系统然后使用临时对话中心(528)和上指对话中心Cb(504)导出(534)话语Un+1(520)的下指对话中心Cf(536)。如图5中所示,甚至在接收到话语Un+1(520)之前,系统通过将第一组操作(例如,应用过滤器)应用(506)于现有的可视化基于上指对话中心Cb(504)来导出和/或显示一个或更多个初始可视化(508)。在一些实施方式中,基于下指对话中心Cf(536),系统应用(538)第二组操作(例如,应用过滤器)以更新现有的可视化或生成新的可视化(540)。
图6A是图示了根据一些实施方式的针对不完整话语(有时被称为省略)应用语用学原理的示图。省略是排除一个或更多个语言元素的句法上不完整的句子片段。这些话语可以使用先前建立的语境被更好地理解。图6A图示了不完整话语“联排别墅”如何在前一个话语“在巴拉德区的低于1M的房屋”的语境中被理解。根据一些实施方式,当系统接收到话语Un(600)(其在该示例中是话语“在巴拉德区的低于1M的房屋”)时,系统在步骤602中使用上面参考图5(步骤502)描述的方法来计算下指中心并初始化上指中心(对于话语Un+1)。对于示例话语,系统将该组对话中心计算为{房屋,巴拉德区和1M}。在一些实施方式中,系统基于该组对话中心(604)来对数据集应用(606)过滤器,并显示数据可视化(608)。在这个示例中,系统应用数字和空间过滤器,其显示在巴拉德区的低于$1M的房屋。图6D示出了可视化608的放大版本。如图6C中所示,话语“在巴拉德区的低于1M的房屋”导致系统显示“过去的房屋销售-西雅图”的可视化,其中焦点在(在巴拉德区的低于1.0M(642)的LAST_SALE_PRICE)。回来参考图6A,在一些实施方式中,系统还使用上面参考图5的步骤510描述的一种或多种技术在步骤610中计算话语Un的短语结构(610)。
在一些实施方式中,当系统接收到话语Un+1(620)(其在该示例中为话语“联排别墅”)时,系统为Un+1(620)计算(626)临时对话中心。对于该示例,系统将对话中心(628)计算为集合{联排别墅}。此外,根据一些实施方式,系统使用上面参考步骤522(图5)描述的技术来计算(622)话语Un+1(620)的短语结构。
如上面所提到的,省略排除一个或更多个语言元素。根据一些实施方式,借助于短语结构(612和624),系统确定与在话语Un+1(620)中缺少的语言元素相对应的话语Un(600)的对话中心的子集。在这个示例中,系统将子集计算为集合{巴拉德区,1M},因为在话语Un+1(620)中缺少但在话语Un(600)中存在该语言元素,即,表示介词短语后面的地方(对应于“巴拉德区”)的名词短语和表示在另一介词短语后面的价格值(对应于“1M”或者更准确地,“低于1M”)的名词短语。另一方面,在话语Un(600)中的短语“房屋”和在话语Un+1(620)中的短语“联排别墅”对应于相似的语言元素(例如,这两个短语都是名词短语并指房屋的类型)。
根据一些实施方式,系统在步骤634中将临时组的对话中心(其在该示例中是集合{联排别墅})与对话中心的子集(632)组合以得出话语Un+1的一组下指对话中心(638)。根据一些实施方式,基于所计算的一组下指对话中心(636),系统确定要应用于数据集的过滤器的类型,并在步骤638中应用适当的过滤器来显示适当的数据可视化(640)。在该示例中,因为对话中心“巴拉德区”和“1M”从上指对话中心(604)被保留,所以系统保留数字滤波器(对应于1M)和空间滤波器(对应于巴拉德区)。此外,因为对话中心的值(对应于home_type变量)从联排别墅改变为房屋,系统对home_type应用分类过滤器以显示联排别墅(而不是房屋)。图6D示出了可视化640的放大版本。如图6D中所示,话语“联排别墅”导致系统显示“过去的房屋销售-西雅图”的可视化,保留来自先前可视化608的LAST_SALE_PRICE小部件或过滤器(642)和空间过滤器644,并用联排别墅代替HOME_TYPE(646)。
图6B图示了根据一些实施方式的响应于上面参考图6A描述的用户话语的对数据可视化的更新。分别参考放大的图6C和图6D在上面描述了可视化608和640。
图7A是图示了根据一些实施方式的对于具有参考表达式(有时在本文被称为回指参考)的话语应用语用学原理的示图。参考表达式帮助统一文本和经济地创建,防止不必要的重复。参考是一种对话形式,其不是凭借自身力量在语义上被解释,而是为了它的解释而参考其他东西。当该解释在文本中时,这被称为回指参考。在可视化分析交互中,该参考涉及数据属性和分析函数。图7A图示了话语“前一年”如何在先前话语“在2015年的价格”的语境中被理解。根据一些实施方式,当系统接收到话语Un(700)(其在该示例中是话语“在2015年的价格”)时,系统在步骤702中使用上面参考图5描述的方法(步骤502)来计算下指中心并初始化上指中心(对于话语Un+1)。对于示例话语,系统将该组对话中心计算为{价格,2015}。在一些实施方式中,系统基于该组对话中心(704)来对数据集应用(706)过滤器,并显示数据可视化(708)。在该示例中,系统应用时间过滤器,其显示2015年的房价。图7C示出了可视化708的放大版本。如图7C中所示,话语“在2015年的价格”导致系统显示2015年的“过去的房屋销售-西雅图”的可视化。尽管未示出,但是先前的可视化例如响应于先前的话语而使系统检查西雅图的价格。回来参考图7A,根据一些实施方式,当系统接收到话语Un+1(720)(其在该示例中为话语“前一年”)时,系统使用上面参考步骤522(图5)描述的技术来计算(722)话语Un+1(720)的短语结构。
如上面所提到的,具有回指参考的参考表达式指在文本内的其他内容。根据一些实施方式,基于短语结构(724),系统识别(726)在话语Un+1(720)中的回指。在这个示例中,系统识别回指“前一”(728)。根据一些实施方式,使用所识别的回指,系统接下来识别(734)包含该参考的短语块(732),以识别该参考所指的实体。对于所示的示例,系统识别对应于回指“前一”的短语块“年”。根据一些实施方式,基于所识别的回指和短语块,系统在步骤730搜索上指中心以找到这样的实体,并用这些实体代替回指参考。此外,在一些实施方式中,如该示例中的情况,系统还检测实体的值并将适当的函数应用于实体的值。对于所示出的示例,系统还检测到用户指“前一”年,且因此2015年的值在达到年变量的正确值之前递减1。根据一些实施方式,系统使用时间函数(例如DATECALC)来计算“前一年”的日期。系统到达一组下指对话中心(736),其对于本示例是集合{价格,2014}。根据一些实施方式,基于该集合,系统采取必要的步骤来在步骤738中更新可视化。对于该示例,系统保留对年的参考,并将时间过滤器更新到2014年,以在740中显示可视化。图7D示出了可视化740的放大版本。如图7D中所示,话语“前一年”导致系统显示在2014年(在2015年之前的一年)的“过去的房屋销售-西雅图”的可视化(来自先前的可视化)。
图7B至图7D图示了根据一些实施方式的使用在数据可视化应用中的自然语言处理的交互式数据分析的图形用户接口(其与图7A相关)。图7B图示了根据一些实施方式的响应于上面参考图7A描述的用户话语的对数据可视化的更新。分别参考放大的图7C和图7D描述了可视化708和740。
尽管在图7A中未示出,但是在一些实施方式中,系统重复这些步骤以识别在单个表达式中的多个回指参考。此外,在一些实施方式中,系统识别在诸如“那个”、“那些”、“它们”、“一个”、“前一”、“下一”的给定话语中的许多类型的回指参考。作为另一个说明性的示例,考虑话语“显示弗里蒙特区、安妮皇后区和巴拉德区”,后面是话语“在那些地区中的公寓”。在本示例中,那些指如由字地区所指示的属性邻近地区的一些值(即弗里蒙特区、安妮皇后区和巴拉德区)。
在一些实施方式中,参考指数据属性的值。在一些实施方式中,参考指需要由系统执行的行动。例如,考虑话语“过滤掉巴拉德区”,后面是“对弗里蒙特区做那些”。在这里,词“那些”不是紧接在任何名词后面而是紧接在动词“做”前面。在这种情况下,系统确定在前一个话语中提到的一个或更多个行动,对于这个示例,行动是“过滤掉”。
在一些实施方式中,系统支持位于文本外部和在可视化的语境中的参考。在一些这样的实施方式中,下指中心Cf参考在可视化中的语境,与在上指中心Cb中的文本相反。在一些实施方式中,这种形式的间接参考包括直指参考,其通常通过指点来参考环境中的某个对象。在一些这样的实施方式中,系统通过启用多模态交互(鼠标+语音/文本)来支持直指参考。图7E示出了响应于直指参考的示例可视化。在一些实施方式中,这种形式的间接参考包括可视化属性参考使用在可视化中的属性,诸如标记属性、在标签中的文本、轴和标题。图7F示出了响应于对可视化属性的参考的示例可视化。
图8A是图示了根据一些实施方式的对于具有连接词的话语应用语用学原理的示图。话语中的连接词传达在被称为合取项的短语片段之间的一系列关系。在对话中,用户倾向于通过添加多个合取项来迭代地构建复合查询,常常避免在短语之间的诸如“和”或“也”的连接词和连接符的显式使用。图8A图示了话语“去年夏天在巴拉德区的低于600k的房屋”在先前的话语“在巴拉德区的房屋”的语境中如何被理解。根据一些实施方式,当系统接收到话语Un(800)(其在该示例中是话语“在巴拉德区的房屋”)时,系统在步骤802中使用上面参考图5描述的方法(步骤502)来计算下指中心并初始化上指中心(对于话语Un+1)。对于示例话语,系统将该组对话中心计算为{房屋,巴拉德区}。在一些实施方式中,系统基于该组对话中心(804)来将过滤器应用(806)于数据集,并显示数据可视化(808)。在该示例中,系统应用分类和空间过滤器显示在巴拉德区的房屋。
根据一些实施方式,当系统接收到话语Un+1(810)——在该示例中是“去年夏天在巴拉德区的低于600k的房屋”——时,系统使用上面参考步骤522(图5)描述的技术来计算(812)话语Un+1(810)的短语结构。如上面提到的,复合查询由在构成短语之间的多个(有时是隐含的)合取项组成。根据一些实施方式,基于短语结构(814),系统识别(816)在话语Un+1(810)中的合取项。在该示例中,系统识别多个查询(818),即“房屋”、“在巴拉德区”、“低于600k”和“去年夏天”。根据一些实施方式,基于这些查询(818)和该组上指对话中心(804),系统计算(820)一组下指对话中心(822)。例如,系统从话语Un中选择匹配的语境(800),并添加从来自话语Un+1的合取项中导出的新对话中心(810)。该示例的该组下指对话中心(822)是集合{房屋,巴拉德区,<600k,去年夏天}。根据一些实施方式,基于该集合,系统在步骤824中采取必要步骤来细化当前可视化。对于这个示例,系统应用关于房价的数字过滤器和时间过滤器以显示去年夏天以在826显示可视化。图8B示出了可视化826的放大版本。如图8B所示,话语“去年夏天在巴拉德区的低于600k的房屋”导致系统显示去年夏天在巴拉德区(828)的低于600k(832)的具有LAST_SALE_PRICE(830)的“过去的房屋销售-西雅图”的可视化。对于该示例,根据一些实施方式,系统进一步基于先前的可视化来将时间段(对于“去年夏天”)解析为时间段2015-6至2015-8-31(834)。
图8C图示了根据一些实施方式的系统如何通过线性化迭代地连接在分析树中的相邻的节点的分析函数。在合取项当中找到隐含的数据连贯性有时是有挑战性的任务。在图8B所示的示例中,所有合取项都指同一个实体“在巴拉德区的房屋”。然而,存在合取项映射到不同的实体的情况。示例话语是“在南湖联合区的低于600k的在巴拉德区的房屋”。根据一些实施方式,系统确定单独合取项是否分解相同或不同的实体。在一些这样的实施方式中,该系统采用基于规则的技术,该技术采用具有可能隐含的连接词的可能长的话语,将该话语翻译成由逻辑运算符链接在一起的一组分析函数。然后,根据一些实施方式,系统响应于用户话语而执行这些分析函数。
在一些实施方式中,系统分解在复合话语中的多个合取项以通过线性化过程来调用一个或更多个对应的分析函数。在一些这样的实施方式中,分析函数F(X,op,v)由变量X(例如,属性)、运算符op和值v组成。每个属性是分类的或者有序的。有序数据类型进一步被分类为顺序的和定量的。线性化过程考虑属性和运算符的类型以使用如下所述的逻辑运算符(即∧,∨)来组合分析函数。
应用∨运算符:根据一些实施方式,当两个或更多个相邻的合取项共享一个属性时并且如果该属性的数据类型是分类的,那么系统通过∨连接这些合取项。类似地,根据一些实施方式,如果共享属性是有序并且函数的运算符是==,则系统应用∨。在这种情况下,∨作为选择在逻辑上更合适,因为应用∧将不匹配在数据表中的任何项。例如,如果话语是“向我展示公寓和联排别墅”,那么系统生成分析函数的下列组合:(F_CAT(房屋类型,==,公寓)∨F_CAT(房屋类型,==,联排别墅))。在这个示例中,“公寓”和“联排别墅”都属于同一个类别属性,即房屋类型。因为特定的房屋(项)不能同时是“公寓”和“联排别墅”,所以应用∨运算符在逻辑上比应用∧运算符更合适。类似地,根据一些实施方式,如果用户说出“2、3个卧室的房屋”,系统生成(F_ORDINAL(床,==,2)∨F_ORDINAL(床,==,3))。如果属性类型是有序的并且涉及条件X<v1和X>v2,其中v1<v2,则∨运算符也是合适的。例如,根据一些实施方式,如果话语是“在2013年之前和2014年之后”,则在两个合取项之间将使用∨运算符。再次,在这种情况下,应用∧运算符将导致不匹配数据表中的项。
应用∧运算符:如果属性类型是有序的并且涉及条件X>v1和X<v2,其中v1<v2,则∧运算符是合适的。例如,“高于400k和低于700k的房屋”解析为(F_NUMERIC(价格,>,4000000)∧F_NUMERIC(价格,,<,700000))。“2个到4个之间的床”解析为(F_ORDINAL(床,>=,2)∧F_NUMERIC(床,<=,4))。注意,应用∨运算符将导致与数据表中的所有项匹配。在一些实施方式中,当在两个合取项之间没有公共属性时,也应用∧运算符。例如,话语“有两张床的低于600k的价格”解析为(F_ORDINAL(床,==,2)∧F_NUMERIC(价格,<=,600000))。
为了生成整个话语的分析函数表示,系统以后序遍历由语法分析器(例如,上面参考图5描述的语法分析器)生成的话语的对应分析树,并在短语上迭代地应用上述两个规则,如图8C中所图示的。对于图8C中所示的示例,系统采用话语“低于600k的公寓和低于1M的联排别墅”作为输入,并迭代地应用上述规则来生成分析函数链。
图9A是图示了根据一些实施方式的应用语用学原理来处理词汇衔接的示图。前三种类型的语用——省略、参考和连接词——为对话提供语法衔接。除了这些语法结构之外,用户常常找到用于通过相关的词含义、即在对话中的意义来表达概念的方式——一个被称为词汇衔接的术语。这些词义可以与拼写、词干和多种变体(例如“利润(profit)”和“多个利润(profits)”)、同义词(例如“国家”和“民族”)以及相关或共同出现的项(例如“暴力”和“犯罪”)一样简单。词义常常在语义语境中与彼此有关。
图9A图示了“最便宜的”在先前的话语“在安妮皇后区的最贵的房屋”的语境中如何被理解。根据一些实施方式,当系统接收到话语Un(900)(其在该示例中是话语“在安妮皇后区的最贵的房屋”)时,系统在步骤902中使用上面参考图5描述的方法(步骤502)计算下指中心并初始化上指中心(对于话语Un+1)。对于示例话语,系统将该组对话中心计算为{最贵的,房屋,安妮皇后区}。在一些实施方式中,根据一些实施方式,系统将一个或更多个对话中心映射(906)到对应的分析函数,用于生成数据可视化(908)。在所示的示例中,系统将“最贵的”映射到房屋的分析函数TOP_N(sale_price)。为了清楚起见,一些实施方式还注释了价格范围。在该示例中,系统应用分类和空间过滤器,其显示在巴拉德区的房屋。图9B示出了可视化908的放大版本。如图9B所示,根据一些实施方式,话语“在安妮皇后区的最贵的房屋”导致系统显示“过去的房屋销售-西雅图”的可视化,该可视化包括在安妮皇后区(930)的LAST_SALE_PRICE(928)的前10%。
根据一些实施方式,当系统接收到话语Un+1(910)(其在该示例中是话语“最便宜的”)时,系统使用上面参考步骤522(图5)描述的技术来计算(912)话语Un+1(914)的短语结构。如上面所提到的,用户话语有时具有在先前话语的语境中更好理解的词义。根据一些实施方式,基于短语结构(914),系统识别(916)在话语Un+1(910)中的词汇衔接的候选项。在这个示例中,系统识别用于衔接分析的候选项“最便宜的”(918)。根据一些实施方式,基于所识别的一个或更多个衔接候选项(918)和一组上指对话中心(904),系统计算(920)一组下指对话中心(922)。对于所示的示例,根据一些实施方式,系统计算对应于词汇衔接候选项(例如,“最贵的”或“最便宜的”)的在语义上相关的数据属性(例如sale_price)、代替相关的数字属性,同时继续来自话语Un的语境的其余部分(904)。
在一些实施方式中,系统通过使用包含大文本语料库的学习向量表示的Word2vecTM模型来识别属性词义,使用递归神经网络来计算字向量。在一些实施方式中,在给定话语中的字wi和数据属性dj之间的语义相关性Srel是如下计算的分数的最大值:
在公式(1)中,dist(Si,m,Sj,n)是在两个意义Si,m、Sj,n之间的Wu-Palmer距离。vwi、vdj分别是wi和dj的向量表示。λ是应用于在向量之间的成对余弦距离的加权因子。
Word2vecTM模型在此仅用作示例。许多其他神经网络模型也可以用来识别词义,诸如斯坦福大学的GloVeTM。诸如GenSimTM和Deeplearning4jTM的一些库在单个包中提供不同词嵌入模型的选择。
在一些实施方式中,系统不仅计算在项和数据属性之间的语义相关性,而且还计算与每个项相关联的分析函数的类型。例如,系统执行查询的额外步骤“告诉我在巴拉德区附近的最便宜的房屋”或“在南湖联合区的大厦在哪里?”。根据一些实施方式,系统将对应的词典定义视为这些字向量的附加特征,并且使用POS标记器来检查这些定义是否包含诸如“更少”、“更多”、“低”、“高”的数量形容词。然后,根据一些实施方式,系统将适当的分析函数映射到这些形容词。图9B图示了短语“最贵的”被映射到Top-N(销售价格)的示例。图9C图示了项“最便宜的”被映射到Bottom-N(销售价格)的另一个示例。类似地,图9D图示了可视化(940),其中项“最致命的”被映射到属性“死亡事故”的Top-N值(942)。
回来参考图9A,对于运行示例,根据一些实施方式,系统将该组下指对话中心(922)计算为{最便宜的,房屋,安妮皇后区}。根据一些实施方式,基于该集合,系统在步骤924中采取必要的步骤来细化当前可视化,以生成更新可视化(926)。对于这个示例,系统将“最便宜的”映射到Bottom-N(sale_price),通过对房物价格应用数值过滤器来细化当前的可视化。图9C示出了可视化926的放大版本。如图9C中所示,根据一些实施方式,话语“最便宜的”导致系统显示在安妮皇后区(930)中的具有LAST_SALE_PRICE(932)的底部10%的“过去的房屋销售-西雅图”(926)。
图10A是图示了根据一些实施方式的应用语用学原理来修复话语的示图。在对话过程中,用户通常校正或澄清先前的话语。在一些实施方式中,系统支持后续修复话语的使用以修改或“修复”潜在地模糊的话语或者改变如何向用户呈现结果的默认行为。例如,为了更新系统的默认行为,诸如加亮以供选择,用户可以使用像“不,替代过滤器”一样的话语。作为另一个示例,为了更新数据属性,用户可以使用像如图7中所示的“摆脱公寓”或者“从公寓改变到联排别墅”一样的话语。
图10A图示了话语“移除公寓”在先前话语“在绿湖中的房屋”的语境中如何被理解。根据一些实施方式,当系统接收到话语Un(1000)(其在该示例中是话语“在绿湖中的房屋”)时,系统在步骤1002中使用上面参考图5描述的方法(步骤502)来计算下指中心并初始化上指中心(对于话语Un+1)。对于示例话语,系统将该组对话中心计算为{房屋,绿湖}。根据一些实施方式,该系统基于所计算的该组对话中心(1004)来生成或更新(1006)数据可视化(1008)。在一些实施方式中,系统基于该组对话中心(1004)将过滤器应用于数据集,并显示数据可视化(1008)。在该示例中,系统应用分类和空间过滤器,其显示绿湖中的房屋。图10B示出了可视化1008的放大版本。如图10B中所示,话语“在绿湖中的房屋”导致系统显示在绿湖中的“过去的房屋销售-西雅图”的可视化(1028)。
根据一些实施方式,当系统接收到话语Un+1(1010)(其在该示例中是话语“移除公寓”)时,系统使用上面参考步骤522(图5)描述的技术来计算(1012)话语Un+1(1010)的短语结构。如上面所提到的,修复话语校正或澄清先前的话语。根据一些实施方式,基于短语结构(1014),系统将话语Un+1(1010)识别(1016)为修复话语,且然后识别在话语内的相关修复项(1018)。在该示例中,系统识别在话语“移除公寓”中的修复项“移除”。根据一些实施方式,基于一个或更多个修复话语和修复项的集合(1018),系统计算(1020)一组下指对话中心(1022)。例如,根据一些实施方式,系统识别与所识别的一个或更多个修复项相关的在先前话语中的对话中心和/或数据属性。在一些实施方式中,如图10A中所图示的,系统基于修复项(1018)来将对话中心修复或消歧。该示例的该组下指对话中心(1022)是集合{不包括公寓的房屋,绿湖}。根据一些实施方式,基于该集合,系统采取必要的步骤(1024)来更新来自先前可视化的结果。对于这个示例,系统过滤掉公寓以显示在1026年的可视化。图10C示出了可视化1026的放大版本。如图10C中所示,话语“移除公寓”导致系统显示过滤掉HOME_TYPE==公寓/合作公寓(1030)的在绿湖(1028)中的“过去的房屋销售-西雅图”的可视化。
图11A是图示了根据一些实施方式的应用语用学原理来处理响应和反馈的示图。本文首先描述了将语用学原理应用于可视分析的一般框架,以提供语境。根据一些实施方式,该框架利用并扩展通常用于被称为对话向心的语篇结构的模型。在这个模型中,话语被分成构成语篇片段,其嵌有可能在两个片段之间保持的关系。中心指用来将那个话语链接到语篇中的其他话语的那些实体。考虑具有话语U1,…,Um的语篇片段DS。在DS中的每个话语Un(1≤n<m)被分配一组下指中心Cf(Un,DS),其指对话的当前焦点;除了片段的初始话语之外的每个话语被分配一组上指中心Cb(Un,DS)。新话语Un+1的该组上指中心是Cb(Un+1,DS),其等于Un的下指中心(即Cf(Un,DS))。在可视分析对话的语境中,下指和上指中心包括数据属性和值、可视属性和分析行动(例如过滤、加亮)。
给定话语Un,实施该框架的系统通过执行从下指中心Cf(Un,DS)导出的一系列分析函数来做出响应。分析函数F(X,op,v)由变量X(其可以是属性或可视化属性)、运算符op和值v(通常是常数)组成。例如,当用户说“在英国的麻疹”时,系统创建两个函数,即F_CAT(疾病,==,麻疹)和F_CAT(国家,==,英国)。当用户提供新的话语Un+1时,系统首先从Un+1创建一组临时中心Ctemp(Un+1,DS),而不考虑任何先前的语境。然后,系统应用一组规则以基于在Cb(Un+1,DS)和Ctemp(Un+1,DS)之间的一些集合操作来创建一组下指中心Cf(Un+1,DS)。根据一些实施方式,下指中心然后用于对用户话语做出响应。
为了支持对话,由系统显示的可视化向各种话语提供衔接和相关的响应。有时,系统通过改变现有可视化的可视编码来做出响应,而在其他情况下系统创建新图表以更有效地支持可视分析对话。除了适当的可视化响应之外,该系统通过产生适当的反馈来帮助用户理解系统如何解释话语,并且允许用户在必要时通过一些接口控制来纠正解释。在传统仪表板中,用户通过选择可视化中的被加亮的项或属性来进行交互以提供即时的可视反馈。同时,通过加亮或过滤出项来更新其他图表。然而,在自然语言接口中,用户不是通过鼠标/键盘来进行显式选择,而是提到不同的属性和值,使决定在仪表板中的每个视图应该如何对话语做出响应成为一项非平凡的任务。当系统必须支持多个可视化时,另一个复杂情况产生。
图11A示出了根据一些实施方式的用于生成响应的方法。为了决定在仪表板中的视图(V)应该如何对话语做出响应,根据一些实施方式的系统如下继续进行。该系统基于先前话语Un+1的对话中心和仅使用当前语境/话语计算的一组临时对话中心来计算对应于话语Un+1的一组下指对话中心(1100)Cf(Un+1)。系统创建(1102)所有数据属性(1104)的列表。然后,系统例如通过调用可视化管理器来确定(1106)任何现有可视化是否对在数据属性(1104)的列表中的相应属性编码。接下来,系统确定(1118)可视化(有时在本文被称为视图)是否直接(例如,不使用任何聚集函数,诸如计数或平均)对相应属性编码作为它的维度(例如,作为可视化的特征)。如果证明属性由现有可视化V编码(即,在1118中检查的条件是真/是),则系统加亮(1122)与对应于已更新的仪表板(1124)的相应属性的标准相关的标记。根据一些实施方式,如果另一方面系统确定所选择的可视化(被显示为可视化V)没有直接对相应的属性编码,则系统过滤(1120)与已更新的仪表板(1124)的标准不匹配的结果。这一般是当辅助图表对结果集合应用进一步的数据变换(例如,使用线形图或条形图)时的情况。在一些这样的实施方式中,系统进一步加亮匹配与已更新的仪表板(1124)的相应属性相对应的标准的一个或更多个结果。
图11B是根据一些实施方式的进一步图示了图11A中所示的方法的示例可视化(1170)。系统加亮匹配在地图图表(1172)中的标准“在英国的麻疹”的项。系统还加亮在线形图(1174)中的系列(1176),并加亮在条形图(1178)中的代表“麻疹”的条(1180)。然而,受影响的条形图(1182)不能加亮任何标记,因为它不对在属性的列表(例如,列表{X1,X2,...Xm}(1104))中的任何属性编码。因此,系统过滤出不匹配标准“在英国的麻疹”的结果,并相应地更新图表。注意,用户可以通过明确地表达关于是否过滤与加亮的选择(例如,“排除”、“移除”、“仅过滤”)来改变默认行为。
在可视化分析流程中,可能存在现有可视化不能满足用户的不断发展的信息需要的情况。例如,这个情形可能当特定数据属性不能在现有可视化中被有效地编码(例如,在地图中的时间值)时出现,保证对创建新的可视化作为响应的需要。根据一些实施方式,从将可视化与语言规范连接的工作中获得灵感的该系统支持不同类型的可视化(例如,条形图、线形图、地图图表和散点图)的创建。
图11C示出了如何基于输入话语来逐步构建仪表板。系统响应于话语“按邻近地区的平均价格”生成可视化1140。当用户提供下一个话语“随时间变化的平均价格”时,系统通过在可视化(1150)中生成显示平均价格的时间进展的线形图(1152)来做出响应。现在,如果用户接下来提供话语“按家庭类型”,则系统用对应于在可视化(1160)中的不同家庭类型的线(1162)来增强线形图(1152)。
回来参考图11A,用于创建或改变现有可视化的基础算法如下工作。首先,系统确定(1106)是否新的可视化的创建或现有的可视化的改变是必要的。系统分析在下指中心Cf(Un+1)(1100)中指定的属性,并搜索对这些数据属性编码的任何当前可视化。如果没有与现有可视化的规范的匹配——被示为在决策块1106旁边的箭头“否”,则系统生成由属性和聚集类型组成的对应新规范。在图11A中,根据一些实施方式,这由步骤1108图示出,步骤1108使用算法来决定图表的类型(例如,条形图、地图图表或散点图)。在一些这样的实施方式中,系统采用自动显现算法来决定基于该规范生成的图表的类型。在一些这样的实施方式中,系统使用在通过引用被并入本文的J.Mackinlay、P.Hanrahan和C.Stole的“Show me:Automatic presentation for visual analysis”中所述的自动显现算法的简化版本。一旦图表(1110)的类型被决定,系统就生成(1112)图表的类型以获得所生成的图表(1114)。然后,根据一些实施方式,系统定位新图表(1114)。在一些这样的实施方式中,系统使用基于二维网格的布局算法,自动协调新图表(1114)的显现与可视化的其他视图。已更新的仪表板(1124)通过诸如加亮或过滤的行动来对后续话语做出响应。
还注意到,尽管在图11A中未示出,但是根据一些实施方式,该系统对于在数据属性(1104)的列表中的每个数据属性至少重复步骤1106、1118、1120、1122、1108、1112和1116。
图12A图示了根据一些实施方式的为处理在用户查询中的歧义而生成的一组小部件。对支持交互式对话的自然语言理解系统的一个挑战是确定话语的意图。在一些实施方式中,系统自动分解各种形式的句法、词汇和语义歧义。这些解决方案以小部件和反馈的形式被表达,以帮助用户理解系统的意图和话语如何被解释的起源。通过操纵这些小部件并查看什么结果在可视化中被显示的反馈,用户可以例如例示后续修复话语以无视或澄清所做出的系统决策。
在一些实施方式中,系统从自话语导出的分析函数中识别一个或更多个小部件。在一些这样的实施方式中,系统以直观的方式组织和显现小部件,使得用户可以理解系统如何解释她的话语,并且随后使用这些小部件来修改解释。为了这个目的,系统采用原始话语,并以与对应的查询项相同的顺序将小部件排序。在一些这样的实施方式中,系统通过使用诸如SparklificatorTM的库来实施它,该库便于以紧凑的方式在文本内放置小词规模可视化。另外,一些实施方式向用户提供一组接口,包括操纵和/或移除小部件、修改查询和解决模糊查询的能力。
图12A示出了根据一些实施方式的系统如何显现话语“在巴拉德区附近的低于1.2M的公寓”的小部件。在这个示例中,第一术语“公寓”被解析为表示标准“HOME_TYPE等于公寓/合作公寓”(1202)的小部件。然后,第二小部件传达由“在巴拉德区附近”表示的模糊距离(1204)。因为“低于1.2M”没有明确地提到任何属性,系统确定值1200000是否在数据中的任何数值属性的最小值和最大值的范围内。如果这样的属性(在这种情况下是LAST_SALE_PRICE)存在,系统将该属性传达给用户(通过小部件1206),且然后允许她使用下拉菜单(1208)来改变属性。
除了歧义处理,在一些实施方式中,当系统未能完全理解查询时,系统还提供反馈和有意义的提示以修改文本。例如,如果系统不能成功地语义分析给定话语,则系统首先尝试通过使用模糊字符串匹配将标志与在当前数据集中的属性、单元值和相关关键字进行比较来自动校正拼写错误的项。当用户形成部分地可识别的查询时,系统从对应的分析树中删除未识别出的项,并且然后基于被理解的标志来显示结果。图12B示出了根据一些实施方式的不同示例情况以及由系统生成的对应反馈。
图13A至图13J提供了示出应用语用学原理将自然语言用于(1302)数据集的可视分析的过程1300的流程图。方法1300的步骤可以由计算机(例如,计算设备200)执行。在一些实施方式中,计算机包括(1304)显示器、一个或更多个处理器和存储器。图13A至图13J对应于存储在计算机存储器或计算机可读存储介质(例如,计算设备200的存储器206)中的指令。存储器存储(1306)被配置为由一个或更多个处理器(例如,处理器202)执行的一个或更多个程序。例如,方法1300的操作至少部分地由数据可视化生成模块234和/或语言处理模块238执行。
在一些实施方式中,计算机基于使用第一组一个或更多个查询从数据库获取的数据集来显示(1308)数据可视化。例如,参考图1,用户可以将来自架构信息区域110的一个或更多个数据字段与数据可视化区域112中的一个或更多个架(例如,图1中的列架120和行架122)相关联。响应于接收到用户关联,在一些实施方式中,计算机使用一组一个或更多个查询从数据集中检索数据字段的数据,且然后在数据可视化区域112中显示对应于接收到的用户输入的数据可视化(例如,数据可视化408)。上面参考图1进一步详细地讨论了显示数据可视化。
计算机接收(1310)第一用户输入以指定与所显示的数据可视化相关的第一自然语言命令。在一些实施方式中,在显示器上的靠近所显示的数据可视化的数据输入区域中从用户接收用户输入作为文本输入(例如,经由键盘216或经由触敏显示器214)。在一些实施方式中,使用耦合到计算机的麦克风(例如,音频输入设备220)来接收用户输入作为语音命令。例如,参考图4A,所显示的数据可视化408涉及在英国的麻疹。上面参考图1进一步详细地讨论了从用户接收输入(例如,命令/查询)。
基于所显示的数据可视化,计算机从第一自然语言命令中提取(1312)第一组一个或更多个独立分析短语。例如,参考图4A,由计算机接收的第一自然语言命令是“在英国的麻疹”。在接收到第一自然语言命令之前显示的数据可视化涉及在全世界的疾病。在一些实施方式中,计算机从第一自然语言命令中提取“麻疹”和“在英国”,因为这些分析短语与所显示的数据可视化相关。当短语具有对在所显示的数据可视化中的数据字段的直接参考时,提取(1312)是直接的:收集作为对数据字段的直接参考的所有短语。在一些实施方式中,计算机阻止或移除来自输入查询的停止词、填充词或任何预定义的一组词,并且从第一自然语言命令中提取(1312)所有其他短语,因为它们可能与所显示的数据可视化相关。当在自然语言命令中的短语具有对在所显示的可视化中的数据字段的间接参考时,一些实施方式使用这种方法。
根据一些实施方式,语言处理模块238基于第一组一个或更多个分析短语来计算(1314)与第一自然语言命令相关联的第一组一个或更多个对话中心。上面参考图3A、图5和图11描述了基于对话交互模型的框架。中心指用于将那个话语(有时在本文被称为自然语言命令)链接到语篇中的其他话语(一系列话语)的那些实体。对话中心包括数据属性和值、可视属性和分析行动。基于分析短语计算对话中心包括在必要的变换和分析之后将分析短语映射到一个或更多个对话中心。对于示例话语“在英国的麻疹”,语言处理模块238处理短语“麻疹”,并分析该短语以推断出它指数据属性“疾病(DISEASE)”,如在上面所述的图4D中所示的。
随后,根据一些实施方式,语言处理模块238计算(1316)与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语。如上面参考图3A、图5和图11所述的,根据一些实施方式,分析函数每个由变量、运算符和值组成。在一些实施方式中,对于示例话语“在英国的麻疹”,语言处理模块238创建两个函数,即F_CAT(疾病,==,麻疹)和F_CAT(国家,==,英国)。在一些实施方式中,作为另一个示例,对于话语“低于600K的公寓”,语言处理模块238创建两个函数F_CAT(房屋类型,==公寓)和F_NUMERIC(价格,<,600000)。根据一些实施方式,在这两个示例中,语言处理模块238搜索与对应于第一组一个或更多个对话中心的所显示的数据可视化相关的一个或更多个数据属性以识别第一组数据属性。根据一些实施方式,语言处理模块238还通过检查第一组一个或更多个对话中心来识别第一组运算符(例如运算符==,运算符<)和对应于第一组数据属性的第一组值。利用第一组变量(属性)以及相应的第一组运算符和第一组值,语言处理模块238构建第一组一个或更多个分析函数,从而创建第一组一个或更多个功能短语。
在一些实施方式中,计算机基于在步骤1316中计算的第一组一个或更多个功能短语来更新(1318)数据可视化。如图13I所示,在一些实施方式中,计算机基于第一组一个或更多个功能短语使用第二组一个或更多个查询来重新查询(1372)数据库,从而获取第二数据集。在一些实例中,使用在计算设备处的所缓存或存储的数据来在计算设备处在本地执行重新查询数据库。例如,当自然语言命令指定一个或更多个过滤器时,通常在本地执行重新查询。在一些这样的实施方式中,计算机基于第二数据集来更新(1374)数据可视化。在一些实施方式中,计算机进一步使用第二数据集来创建并显示(1376)新的数据可视化(例如,不更新现有的一个或更多个数据可视化)。
现在回来参考图13B,计算机接收(1320)第二用户输入以指定与所显示的数据可视化相关的第二自然语言命令。在一些实施方式中,在显示器上的靠近所显示的数据可视化的数据输入区域中从用户接收用户输入作为文本输入(例如,经由键盘216或经由触敏显示器214)。在一些实施方式中,使用耦合到计算机的麦克风(例如,音频输入设备220)来接收用户输入作为语音命令。例如,参考图4A,当计算机接收到第二用户输入“向我显示橙色尖峰”时,所显示的数据可视化408涉及在英国的麻疹。上面参考图1进一步详细地讨论了从用户接收输入(例如,命令/查询)。
基于所显示的数据可视化,计算机从第二自然语言命令中提取(1322)第二组一个或更多个独立分析短语。例如,参考图4A,由计算机接收的第二自然语言命令(410)读出“向我显示橙色尖峰”。在一些实施方式中,对于这个示例,计算机从第二自然语言命令中提取“橙色尖峰”,因为这些分析短语与所显示的数据可视化(其涉及在英国的麻疹,并且具有橙色尖峰,可视化属性)相关。当短语具有对在所显示的数据可视化中的数据字段的直接参考时,提取(1322)是直接的:收集作为对数据字段的直接参考的所有短语。在一些实施方式中,计算机阻止或移除来自输入查询的停止词、填充词或任何预定义的一组词,并且从第二自然语言命令中提取(1322)所有其他短语,因为它们可能与所显示的数据可视化相关。当在自然语言命令中的短语具有对在所显示的可视化中的数据字段的间接参考时,一些实施方式使用这种方法。
根据一些实施方式,语言处理模块基于第二组一个或更多个分析短语来计算(1324)与第二自然语言命令相关联的临时组的一个或更多个对话中心。
根据一些实施方式,语言处理模块使用一个或更多个过渡规则从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出(1326)第二组一个或更多个对话中心。在一些这样的实施方式(1332)中,第一组一个或更多个对话中心、临时组的一个或更多个对话中心以及第二组一个或更多个对话中心中的每个对话中心包括变量(例如,数据属性或可视化属性)的值。在一些这样的实施方式中,语言处理模块通过执行一系列操作(如图13C所示)来使用过渡规则,所述操作包括:确定(1334)第一变量是否被包括在第一组一个或更多个对话中心中;确定(1336)第一变量是否被包括在临时组的一个或更多个对话中心中;基于第一变量是否被包括在第一组一个或更多个对话中心和/或临时组的一个或更多个对话中心中来确定(1338)一个或更多个过渡规则的要应用的相应过渡规则;以及应用(1339)相应过渡规则。
在一些实施方式中,如图13D中所示,由语言处理模块238使用的一个或更多个过渡规则包括(1340)继续规则,其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并将来自临时组的一个或更多个对话中心的一个或更多个对话中心添加到第二组一个或更多个对话中心。在一些这样的实施方式中,应用(1342)相应过渡规则包括:根据(i)第一变量被包括在临时组的一个或更多个对话中心中以及(ii)第一变量未被包括在第一组一个或更多个对话中心中的确定,应用(1344)继续规则以将第一变量包括在第二组一个或更多个对话中心中。
在一些实施方式中,如图13E中所示,由语言处理模块238使用的一个或更多个过渡规则包括(1346)保留规则,其用于将第一组一个或更多个对话中心中的每个对话中心保留在第二组一个或更多个对话中心中,而不将来自临时组的一个或更多个对话中心的任何对话中心添加到第二组一个或更多个对话中心。在一些这样的实施方式中,应用(1348)相应过渡规则包括:根据(i)第一变量被包括在第一组一个或更多个对话中心中以及(ii)第一变量未被包括在临时组的一个或更多个对话中心中的确定,应用(1350)保留规则以将第一组一个或更多个对话中心中的每个对话中心包括到第二组一个或更多个对话中心。
在一些实施方式中,如图13F中所示,由语言处理模块238使用的一个或更多个过渡规则包括(1352)转移规则,其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并且用在临时组的一个或更多个对话中心中的对话中心代替在第二组一个或更多个对话中心中的一个或更多个对话中心。在一些这样的实施方式中,应用(1354)相应过渡规则包括:根据(i)第一变量被包括在临时组的一个或更多个对话中心中以及(ii)第一变量未被包括在第一组一个或更多个对话中心中的确定(1356),语言处理模块228执行一系列操作以:确定(1358)在第一组一个或更多个对话中心中的第一变量的值是否不同于在临时组的一个或更多个对话中心中的第一变量的值;并且根据第一变量的值是不同的确定,应用(1360)转移规则,其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并且用在临时组的一个或更多个对话中心中的第一变量的值代替在第二组一个或更多个对话中心中的第一变量的值。在一些这样的实施方式中,应用(1354)相应过渡规则还包括,如图13G中所示,确定(1362)对应于第一变量的小部件是否已经被用户移除,并且根据小部件已经被移除的确定,应用(1364)转移规则,其用于将第一组一个或更多个对话中心中的每个对话中心包括在第二组一个或更多个对话中心中,并且用新值(例如,最大值、超集值)代替在第二组一个或更多个对话中心中的第一变量的值,该新值包括在第一组一个或更多个对话中心中的第一变量的值。
现在回到图13B,语言处理模块238计算(1328)与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语。语言处理模块238以类似于上述步骤1316的方式使用在步骤1326中计算的第二组一个或更多个对话中心来执行该步骤。
根据一些实施方式,计算机基于第二组一个或更多个功能短语来更新(1330)数据可视化。在一些这样的实施方式中,如图13J中所示,计算机基于第一组一个或更多个功能短语使用第二组一个或更多个查询来重新查询(1378)数据库,从而获取第三数据集;并且基于第三数据集更新(1380)数据可视化。此外,在一些这样的实施方式中,计算机使用第三数据集来创建并显示(1382)新的数据可视化(例如,不更新现有的一个或更多个数据可视化)。
在一些实施方式中,如图13H中所示,计算机进一步确定(1366)用户是否选择了不同于第一数据集的数据集,确定(1368)用户是否重置了数据可视化;并且根据(i)用户已经选择了不同的数据集或者(ii)用户已经重置了数据可视化的确定,将第一组一个或更多个对话中心、临时组的一个或更多个对话中心和第二组一个或更多个对话中心中的每一个重置(1370)为不包括对话中心的空集。
图14A至图14R提供了示出根据一些实施方式的使用(1402)自然语言用于应用语用学原理进行数据集的可视分析——包括用于处理各种语用形式——的方法1400的流程图。方法1400的步骤可以由计算机(例如,计算设备200)执行。在一些实施方式中,计算机包括(1404)显示器、一个或更多个处理器和存储器。图14A至图14R对应于存储在计算机存储器或计算机可读存储介质(例如,计算设备200的存储器206)中的指令。存储器存储(1406)被配置为由一个或更多个处理器(例如,处理器202)执行的一个或更多个程序。例如,方法1400的操作至少部分地由数据可视化生成模块234和/或语言处理模块238执行。
在一些实施方式中,计算机基于使用第一组一个或更多个查询从数据库获取的数据集来显示(1408)数据可视化。例如,参考图1,用户可以将来自架构信息区域110的一个或更多个数据字段与在数据可视化区域112中的一个或更多个架(例如,图1中的列架120和行架122)相关联。响应于接收到用户关联,在一些实施方式中,计算机使用一组一个或更多个查询从数据集中检索数据字段的数据,且然后在数据可视化区域112中显示对应于接收到的用户输入的数据可视化(例如,数据可视化408)。上面参考图1进一步详细讨论了显示数据可视化。
计算机接收(1410)第一用户输入以指定与所显示的数据可视化相关的第一自然语言命令。在一些实施方式中,在显示器上的靠近所显示的数据可视化的数据输入区域中从用户接收用户输入作为文本输入(例如,经由键盘216或经由触敏显示器214)。在一些实施方式中,使用耦合到计算机的麦克风(例如,音频输入设备220)接收用户输入作为语音命令。例如,参考图6A,所显示的数据可视化608涉及在巴拉德区的低于1M的房屋。上面参考图1进一步详细地讨论了从用户接收输入(例如,命令/查询)。
基于所显示的数据可视化,计算机从第一自然语言命令中提取(1412)第一组一个或更多个独立分析短语。例如,参考图6A,由计算机接收的第一自然语言命令读出“在巴拉德区的低于1M的房屋”。在接收第一自然语言命令之前显示的数据可视化涉及在西雅图的过去的房屋销售。在一些实施方式中,计算机从第一自然语言命令中提取“房屋”、“低于1M”和“在巴拉德区”,因为这些分析短语与所显示的数据可视化相关。当短语具有对在所显示的数据可视化中的数据字段的直接参考时,提取(1412)是直接的:收集作为对数据字段的直接参考的所有短语。在一些实施方式中,计算机阻止或移除来自输入查询的停止词、填充词或任何预定义的一组词,并且从第一自然语言命令中提取(1412)所有其他短语,因为它们可能与所显示的数据可视化相关。当在自然语言命令中的短语具有对在所显示的可视化中的数据字段的间接参考时,一些实施方式使用这种方法。
根据一些实施方式,语言处理模块238基于第一组一个或更多个分析短语来计算(1414)与第一自然语言命令相关联的第一组一个或更多个对话中心。上面参考图3A、图5和图11描述了基于对话交互模型的框架。中心指代用于将那个话语(有时在本文被称为自然语言命令)链接到语篇中的其他话语(一系列话语)的那些实体。对话中心包括数据属性和值、可视属性和分析行动。基于分析短语计算对话中心包括在必要的变换和分析之后将分析短语映射到一个或更多个对话中心。对于示例话语“在巴拉德区的低于1M的房屋”,语言处理模块238处理短语“低于1M”,并分析该短语以推断出它指代数据属性LAST_SALE_PRICE,如上面在图6C中所示的。
随后,根据一些实施方式,语言处理模块238计算(1416)与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语。如上面参考图3A、图5和图11所述的,根据一些实施方式,每个分析函数由变量、运算符和值组成。在一些实施方式中,对于示例话语“在巴拉德区的低于1M的房屋”,语言处理模块238创建两个函数,创建四个函数F_CAT(房屋类型,==公寓),F_CAT(房屋类型,==排屋),F_CAT(房屋类型==单间)和F_NUMERIC(价格,<,500000)。根据一些实施方式,在该示例中,语言处理模块238搜索与对应于第一组一个或更多个对话中心的所显示的数据可视化相关的一个或更多个数据属性以识别第一组数据属性。根据一些实施方式,语言处理模块238还通过检查第一组一个或更多个对话中心来识别第一组运算符(例如,运算符==,运算符<)和对应于第一组数据属性的第一组值。利用第一组变量(属性)以及对应的第一组运算符和第一组值,语言处理模块238构建第一组一个或更多个分析函数,从而创建第一组一个或更多个功能短语。
在一些实施方式中,计算机基于在步骤1416中计算的第一组一个或更多个功能短语来更新(1418)数据可视化。
现在参考图14B,计算机接收(1420)第二用户输入以指定与所显示的数据可视化相关的第二自然语言命令。在一些实施方式中,在显示器上的靠近所显示的数据可视化的数据输入区域中从用户接收用户输入作为文本输入(例如,经由键盘216或经由触敏显示器214)。在一些实施方式中,使用耦合到计算机的麦克风(例如,音频输入设备220)接收用户输入作为语音命令。例如,参考图6A,当计算机接收到第二用户输入“联排别墅”时,所显示的数据可视化608涉及在巴拉德区的低于1M的房屋。上面参考图1进一步详细地讨论了从用户接收输入(例如,命令/查询)。
基于所显示的数据可视化,计算机从第二自然语言命令中提取(1422)第二组一个或更多个独立分析短语。例如,参考图6A,由计算机接收的第二自然语言命令(620)读出“联排别墅”。在一些实施方式中,对于该示例,计算机从第二自然语言命令中提取“联排别墅”,因为该分析短语涉及所显示的数据可视化(其涉及在巴拉德区的联排别墅)。当短语具有对在所显示的数据可视化中的数据字段的直接参考时,提取(1422)是直接的:收集作为对数据字段的直接参考的所有短语。在一些实施方式中,计算机阻止或移除来自输入查询的停止词、填充词或任何预定义的一组词,并且从第二自然语言命令中提取(1422)所有其他短语,因为它们可能与所显示的数据可视化相关。当在自然语言命令中的短语具有对所显示的可视化中的数据字段的间接参考时,一些实施方式使用这种方法。
根据一些实施方式,语言处理模块基于第二组一个或更多个分析短语来计算(1424)与第二自然语言命令相关联的临时组的一个或更多个对话中心。
根据一些实施方式,语言处理模块计算(1426)在第一组一个或更多个分析短语和第二组一个或更多个分析短语之间的衔接,并且基于衔接从第一组一个或更多个对话中心和临时组的一个或更多个对话中心导出第二组一个或更多个对话中心。如图14C所示,在一些实施方式中,计算衔接包括识别(1434)第二组一个或更多个分析短语的短语结构。根据一些实施方式,上面参考图5(步骤522或510)并通过图6A中的示例(步骤610和622)描述了计算短语结构。在一些实施方式中,识别短语结构包括应用概率语法来语义分析(1436)第二自然语言命令(如上面参考图5的522或510所解释的),从而获得经语法分析的输出。在一些实施方式中,该步骤还包括通过使用由自然语言工具包提供的词性API来推导(1438)句法结构,再次如上面参考图5所述的。在一些实施方式中,经语法分析的输出由语言处理模块解析(1440)为相应的分类和数据属性。例如,对于图6A中的话语“联排别墅”(620),语言处理模块将分类属性解析为住宅/(或房屋)类型。在一些实施方式中,尽管未示出,但是语言处理模块在步骤1442之后将经语法分析的输出解析为相应的分类和数据属性。
根据一些实施方式,从在步骤1434中识别短语结构开始,语言处理模块基于短语结构来识别一种或多种语用形式。随后,语言处理模块基于所识别的一种或多种语用形式从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出(1446)第二组一个或更多个对话中心。下面描述的图14D、图14E、图14H和图14I示出了如何识别不同类型的语用形式以及如何基于所识别的语用形式来识别第二组一个或更多个对话中心。
在一些实施方式中,语言处理模块238计算(1430)与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语。语言处理模块238以类似于上述步骤1416的方式使用在步骤1426中计算的第二组一个或更多个对话中心来执行该步骤。
在一些实施方式中,如图14P中所示,语言处理模块238计算(14.186)在第二组一个或更多个所提取的分析短语和被包括在已更新的数据可视化中的数据的一个或更多个属性之间的语义相关性,并基于数据的在语义上相关的一个或更多个属性来计算(14.188)与第二组一个或更多个分析短语相关联的分析函数,从而创建第二组一个或更多个功能短语。在一些实施方式中,语言处理模块238计算词汇上衔接的表达式的在语义上相关的项。上面参考图9A至图9D描述了计算语义相关性和基于语义相关性来计算分析函数的过程。在一些实施方式中,尽管在图14B中未示出,但是除了上述步骤1430之外(而不是作为其替代),还执行基于数据属性的语义相关性计算第二组一个或更多个分析函数和第二组一个或更多个功能短语。
在一些实施方式中,如图14Q中所示,语言处理模块238通过在大文本语料库上训练(14.190)第一神经网络模型来计算语义相关性,从而学习词嵌入。在一些这样的实施方式(14.192)中,第一神经网络模型包括Word2vecTM模型。在一些实施方式中,语言处理模块238使用第二神经网络模型来计算(1494)在第二组一个或更多个分析短语中的第一短语中的第一词的第一词向量,第一词向量将第一词映射到在步骤14.190中学习的词嵌入。在一些这样的实施方式(14.196)中,第二神经网络模型包括递归神经网络模型。在一些实施方式中,语言处理模块使用第二神经网络模型来计算(14.198)在一个或更多个数据属性中的第一数据属性的第二词向量,第二词向量将第一数据属性映射到在步骤14.190中学习的词嵌入。尽管在图14Q中未示出,但是计算第一词向量和第二词向量可以由语言处理模块238并行地执行。随后,根据一些实施方式,语言处理模块使用相似性度量来计算(14.200)在第一词向量和第二词向量之间的相关性。在一些这样的实施方式(14.202)中,相似性度量至少基于(i)在与第一词向量和第二词向量相关联的词义之间的Wu-Palmer距离、(ii)加权因子以及(iii)在第一词向量和第二词向量之间的成对余弦距离。
在一些实施方式中,如图14R中所示,语言处理模块238从可公开得到的词典获得(14.204)第二组一个或更多个分析短语的词语定义,使用由自然语言工具包提供的词性API来确定(14.206)词语定义是否包含一个或更多个预定义的形容词,并且根据词语定义包含一个或更多个预定义的形容词的确定,将一个或更多个预定义的形容词映射到一个或更多个分析函数。根据一些实施方式,上面参考图9B描述了这些操作。语言处理模块238为在第二组一个或更多个分析短语中的一个或更多个项计算分析函数的类型。例如,项“最便宜的”被映射到Bottom_N(销售价格)。
现在回来参考图14B,根据一些实施方式,计算机基于第二组一个或更多个功能短语来更新(1432)数据可视化。
图14D、图14E、图14H和图14I每个示出了根据一些实施方式由语言处理模块238执行来处理基于短语结构识别的不同类型的语用形式的步骤,以及如何基于所识别的语用形式导出第二组一个或更多个对话中心。
图14D示出了根据一些实施方式由语言处理模块238执行来为不完整话语导出第二组一个或更多个对话中心的步骤。根据一些实施方式,语言处理模块238通过确定一个或更多个语言元素是否不存在于短语结构中来将语用形式识别(1448)为不完整话语。在一些实施方式中,随后,语言处理模块238通过执行一系列操作(1452)导出(1450)第二组一个或更多个对话中心,所述操作包括:确定(1454)在第一组一个或更多个对话中心中的第一子集的对话中心,第一子集的对话中心对应于不存在于短语结构中的一个或更多个语言元素,以及通过将临时组的一个或更多个对话中心与第一子集的对话中心组合来计算(1456)第二组一个或更多个对话中心。上面描述的图6A示出了为不完整话语导出第二组一个或更多个对话中心的实施方式。
图14E示出了根据一些实施方式由语言处理模块238执行来为参考表达式导出第二组一个或更多个对话中心的步骤。根据一些实施方式,语言处理模块238通过确定一个或更多个回指参考是否存在于短语结构中来将语用形式识别(1458)为参考表达式。在一些实施方式中,随后,语言处理模块238通过执行一系列操作(1462)导出(1460)第二组一个或更多个对话中心,所述操作包括:搜索(1464)第一组一个或更多个对话中心以找到对应于在第二自然语言命令中的短语块的第一子集的对话中心,该短语块包含一个或更多个回指参考的第一回指参考,以及基于临时组的一个或更多个对话中心和第一子集的对话中心来计算(1466)第二组一个或更多个对话中心。上面描述的图7A示出了为参考表达式导出第二组一个或更多个对话中心的实施方式。
在一些实施方式中,语言处理模块238确定(1468)第一回指参考是否是对在已更新的数据可视化中的可视化属性的参考(有时在本文被称为直指参考),并且根据回指参考是直指参考的确定,基于临时组的一个或更多个对话中心和与可视化属性相关的数据来计算(1470)第二组一个或更多个对话中心。
在一些实施方式中,如图14F中所示,语言处理模块238确定(1472)第一回指参考是否伴随有在第二自然语言命令中的动词,并且根据回指参考伴随有动词的确定(1474),搜索(1476)第一组一个或更多个对话中心以找到提到行动动词的第一行动对话中心,并且基于临时组的一个或更多个对话中心和第一子集的对话中心来计算(1478)第二组一个或更多个对话中心。
在一些实施方式中,如图14G中所示,语言处理模块238确定(1480)第一回指参考是否是提到在环境中的某个对象的直指参考,并且根据确定了回指参考是直指参考,基于临时组的一个或更多个对话中心和对象的特性来计算(1482)第二组一个或更多个对话中心。
图14H示出了根据一些实施方式由语言处理模块238执行来为修复话语导出第二组一个或更多个对话中心的步骤。根据一些实施方式,语言处理模块238通过确定短语结构是否对应于一个或更多个预定义的修复话语来将语用形式识别(1484)为修复话语。在一些实施方式中,随后,语言处理模块238通过执行一系列操作(1488)导出(1486)第二组一个或更多个对话中心,所述操作包括:基于临时组的一个或更多个对话中心来计算(1490)第二组一个或更多个对话中心,以及基于一个或更多个预定义的修复话语和短语结构来更新(1492)在第二组一个或更多个对话中心中的一个或更多个数据属性。上面描述的图10A示出了为修复话语导出第二组一个或更多个对话中心的实施方式。
在一些实施方式中,语言处理模块238确定(1494)短语结构是否对应于修复话语以改变与显示数据可视化相关的默认行为,并且根据短语结构对应于修复话语以改变默认行为的确定,改变(1496)与显示相关的默认行为。
图14I示出了根据一些实施方式由语言处理模块238执行来为连接表达式导出用于第二组一个或更多个对话中心的步骤。根据一些实施方式,语言处理模块238通过下列操作确定(1498)第二自然语言命令是否是连接表达式来将语用形式识别(1498)为连接表达式:(i)确定连接词在短语结构中的显式或隐式存在,以及(ii)确定临时组的一个或更多个对话中心是否包括在第一组一个或更多个对话中心中的每个对话中心。在一些实施方式中,随后,根据第二自然语言命令是连接表达式的确定(14.102),语言处理模块238通过基于临时组的一个或更多个对话中心计算(14.104)第二组一个或更多个对话中心来导出(14.100)第二组一个或更多个对话中心。上面描述的图8A示出了为具有连接词的话语导出第二组一个或更多个对话中心的实施方式。
在一些实施方式中,语言处理模块238确定(14.106)第二自然语言命令是否具有多于一个合取项,并且根据第二自然语言命令具有多于一个合取项的确定,通过线性化第二自然语言命令来计算(14.108)第二组一个或更多个分析函数。
在一些实施方式中,语言处理模块238通过执行图14J所示的一系列操作来线性化第二自然语言命令。该系列操作包括为第二自然语言命令生成(14.110)分析树,后序遍历(14.112)分析树以提取第一分析短语和第二分析短语,其中第一分析短语和第二分析短语是在分析树中的相邻节点,并且通过基于第一分析函数和第二分析函数的一个或更多个特性应用一个或更多个逻辑运算符来将第一分析函数与第二分析函数组合(14.114),其中一个或更多个特性包括属性类型、运算符类型和值。
图14K至图14O每个示出了根据一些实施方式的将第一分析函数与第二分析函数相结合的最后步骤(14.114)的不同实例。在每种情况下(如由在相应的附图中的标签14.116、14.126、14.36、14.150和14.168所示的),第一分析函数包括第一属性、第一运算符和第一值;第二分析函数包括第二属性、第二运算符和第二值。
根据一些实施方式,在图14K中,语言处理模块238通过执行一系列操作来将第一分析函数与第二分析函数组合(14.118)。该系列操作包括:确定(14.120)第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性,确定(14.122)第一属性和第二属性是否是相同的,根据第一属性和第二属性是相同的并且都是分类类型属性的确定,应用(14.124)并集运算符来组合第一分析函数和第二分析函数。
根据一些实施方式,在图14L中,语言处理模块238通过执行一系列操作来组合(14.128)第一分析函数和第二分析函数。该系列操作包括:确定(14.130)第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性,确定(14.132)第一属性和第二属性是否是相同的,根据第一属性和第二属性是不相同的确定,应用(14.134)交集运算符来组合第一分析函数和第二分析函数。
根据一些实施方式,在图14M中,语言处理模块238通过执行一系列操作来将第一分析函数与第二分析函数组合(14.138)。该系列操作包括:确定(14.140)第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性,确定(14.142)第一属性和第二属性是否是相同的,根据第一属性和第二属性是相同的并且都是有序类型属性的确定(14.144):确定(14.146)第一运算符和第二运算符的运算符类型,并且根据第一运算符和第二运算符都是相等运算符的确定,应用(14.148)并集运算符来组合第一分析函数和第二分析函数。
在图14N中,根据一些实施方式,语言处理模块238通过执行一系列操作来将第一分析函数与第二分析函数组合(14.152)。该系列操作包括:确定(14.154)第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性,确定(14.156)第一属性和第二属性是否是相同的,并且根据第一属性和第二属性是相同的并且都是有序类型属性的确定:确定(14.160)第一运算符和第二运算符的运算符类型;根据第一运算符是“小于”运算符和第二运算符是“大于”运算符的确定(14.162):确定(14.164)第一值是否小于第二值,并且根据第一值小于第二值的确定,应用(14.166)并集运算符来组合第一分析函数和第二分析函数。
根据一些实施方式,在图14O中,语言处理模块238通过执行一系列操作来组合(14.170)第一分析函数和第二分析函数。该系列操作包括:确定(14.172)第一属性是分类类型属性还是有序类型属性,以及确定第二属性是分类类型属性还是有序类型属性,确定(14.174)第一属性和第二属性是否是相同的,根据确定第一属性和第二属性是相同的并且都是有序类型属性的确定(14.176):确定(14.178)第一运算符和第二运算符的运算符类型;根据第一运算符是“大于”运算符和第二运算符是“小于”运算符的确定(14.180):确定(14.182)第一值是否小于第二值,并且根据第一值小于第二值的确定,应用(14.184)交集运算符来组合第一分析函数和第二分析函数。
图15A至图15H提供了根据一些实施方式的应用语用学原理将自然语言用于(1502)进行数据集的可视分析(包括用于处理响应和反馈以及用于处理用户查询中的歧义)的过程(方法1500)的流程图。方法1500的步骤可以由计算机(例如,计算设备200)执行。在一些实施方式中,计算机包括(1504)显示器、一个或更多个处理器和存储器。图15A至图15H对应于存储在计算机存储器或计算机可读存储介质(例如,计算设备200的存储器206)中的指令。存储器存储(1506)被配置为由一个或更多个处理器(例如,处理器202)执行的一个或更多个程序。例如,方法1500的操作至少部分地由数据可视化生成模块234和/或语言处理模块238执行。
在一些实施方式中,计算机基于使用第一组一个或更多个查询从数据库获取的数据集来显示(1508)数据可视化。例如,参考图1,用户可以将来自架构信息区域110的一个或更多个数据字段与在数据可视化区域112中的一个或更多个架(例如,图1中的列架120和行架122)相关联。响应于接收到用户关联,在一些实施方式中,计算机使用一组一个或更多个查询从数据集中检索该数据字段的数据,且然后在数据可视化区域112中显示对应于接收到的用户输入的数据可视化(例如,数据可视化408)。上面参考图1进一步详细讨论了显示数据可视化。
计算机接收(1510)第一用户输入以指定与所显示的数据可视化相关的第一自然语言命令。在一些实施方式中,在显示器上的靠近所显示的数据可视化的数据输入区域中从用户接收用户输入作为文本输入(例如,经由键盘216或经由触敏显示器214)。在一些实施方式中,使用耦合到计算机的麦克风(例如,音频输入设备220)接收用户输入作为语音命令。例如,参考图6A,所显示的数据可视化608涉及在巴拉德区的低于1M的房屋。上面参考图1更详细地讨论了从用户接收输入(例如,命令/查询)。
基于所显示的数据可视化,计算机从第一自然语言命令中提取(1512)第一组一个或更多个独立分析短语。例如,参考图6A,由计算机接收的第一个自然语言命令读出“在巴拉德区的低于1M的房屋”。在接收到第一自然语言命令之前显示的数据可视化涉及在西雅图的过去的房屋销售。在一些实施方式中,计算机从第一自然语言命令中提取“房屋”、“低于1M”和“在巴拉德区”,因为这些分析短语与所显示的数据可视化相关。当短语具有对在所显示的数据可视化中的数据字段的直接参考时,提取(1512)是直接的:收集作为对数据字段的直接参考的所有短语。在一些实施方式中,计算机阻止或移除来自输入查询的停止词、填充词或任何预定义的一组词,并且从第一自然语言命令中提取(1412)所有其他短语,因为它们可能与所显示的数据可视化相关。当在自然语言命令中的短语具有对在所显示的可视化中的数据字段的间接参考时,一些实施方式使用这种方法。
根据一些实施方式,语言处理模块238基于第一组一个或更多个分析短语来计算(1514)与第一自然语言命令相关联的第一组一个或更多个对话中心。上面参考图3A、图5和图11描述了基于对话交互模型的框架。中心指用于将那个话语(有时在本文被称为自然语言命令)链接到语篇中的其他话语(一系列话语)的那些实体。对话中心包括数据属性和值、可视属性和分析行动。基于分析短语计算对话中心包括在必要的变换和分析之后将分析短语映射到一个或更多个对话中心。对于示例话语“在巴拉德区中的低于1M的房屋”,语言处理模块238处理短语“低于1M”,并分析该短语以推断出它指代数据属性LAST_SALE_PRICE,如上面在图6C中所示的。
随后,根据一些实施方式,语言处理模块238计算(1516)与第一组一个或更多个对话中心相关联的第一组分析函数,从而创建第一组一个或更多个功能短语。如上面参考图3A、图5和图11所描述的,根据一些实施方式,每个分析函数由变量、运算符和值组成。在一些实施方式中,对于示例话语“在巴拉德区中的低于1M的房屋”,语言处理模块238创建两个函数,创建四个函数F_CAT(房屋类型,==公寓)、F_CAT(房屋类型,==排屋)、F_CAT(房屋类型==单间)和F_NUMERIC(价格,<,500000)。根据一些实施方式,在该示例中,语言处理模块238搜索与对应于第一组一个或更多个对话中心的所显示的数据可视化相关的一个或更多个数据属性以识别第一组数据属性。根据一些实施方式,语言处理模块238还通过检查第一组一个或更多个对话中心来识别第一组运算符(例如,运算符==,运算符<)和对应于第一组数据属性的第一组值。利用第一组变量(属性)以及对应的第一组运算符和第一组值,语言处理模块238构建第一组一个或更多个分析函数,从而创建第一组一个或更多个功能短语。
在一些实施方式中,计算机基于在步骤1516中计算的第一组一个或更多个功能短语来更新(1518)数据可视化。
现在参考图15B,计算机接收(1520)第二用户输入以指定与所显示的数据可视化相关的第二自然语言命令。在一些实施方式中,在显示器上的靠近所显示的数据可视化的数据输入区域中从用户接收用户输入作为文本输入(例如,经由键盘216或经由触敏显示器214)。在一些实施方式中,使用耦合到计算机的麦克风(例如,音频输入设备220)接收用户输入作为语音命令。例如,参考图6A,当计算机接收到第二用户输入“联排别墅”时,所显示的数据可视化608涉及在巴拉德区的低于1M的房屋。上面参考图1进一步详细地讨论了从用户接收输入(例如,命令/查询)。
基于所显示的数据可视化,计算机从第二自然语言命令中提取(1522)第二组一个或更多个独立分析短语。例如,参考图6A,由计算机接收的第二自然语言命令(620)读出“联排别墅”。在一些实施方式中,对于该示例,计算机从第二自然语言命令中提取“联排别墅”,因为该分析短语涉及所显示的数据可视化(其涉及在巴拉德区中的联排别墅)。当短语具有对在所显示的数据可视化中的数据字段的直接参考时,提取(1522)是直接的:收集作为对数据字段的直接参考的所有短语。在一些实施方式中,计算机阻止或移除来自输入查询的停止词、填充词或任何预定义的一组词,并且从第二自然语言命令中提取(1522)所有其他短语,因为它们可能与所显示的数据可视化相关。当在自然语言命令中的短语具有对所显示的可视化中的数据字段的间接参考时,一些实施方式使用这种方法。
根据一些实施方式,语言处理模块基于第二组一个或更多个分析短语来计算(1524)与第二自然语言命令相关联的临时组的一个或更多个对话中心。
根据一些实施方式,语言处理模块使用一个或更多个过渡规则来从第一组一个或更多个对话中心和临时组的一个或更多个对话中心中导出(1526)第二组一个或更多个对话中心。
根据一些实施方式,计算机基于第二组一个或更多个功能短语来更新(1528)数据可视化。
参考图15C,在一些实施方式中,语言处理模块238确定(1530)对应于第二组一个或更多个对话中心的一个或更多个数据属性。根据一些实施方式,语言处理模块238然后扫描(1532)所显示的数据可视化以识别包含数据标记的一个或更多个所显示的数据可视化,数据标记的特性对应于在一个或更多个数据属性中的第一数据属性。在一些这样的实施方式(1534)中,可视化特性包括颜色、尺寸和形状中的一个或更多个。在一些这样的实施方式(1536)中,可视化特性对应于数据标记的可视编码。
随后,根据一些实施方式,计算机加亮(1538)数据标记,其特性对应于第一数据属性。在一些这样的实施方式中,计算机从所显示的数据可视化过滤(1540)包含其特性不对应于一个或更多个数据属性的数据标记的结果。此外,在一些这样的实施方式中,计算机接收(1542)用户输入以确定是否过滤或加亮数据标记,并基于该确定来过滤或加亮在所显示的数据可视化上的数据标记。上面描述的图11A示出了根据一些实施方式的用于处理响应和反馈的语用学原理的示例应用。图11A的描述适用于图15C中所示出的步骤。例如,在图11A中的创建所有数据属性的列表的步骤1102对应于确定一个或更多个数据属性的步骤1530。类似地,决定哪个现有可视化对相应的属性编码的步骤1106对应于用于扫描所显示的数据可视化的步骤1532。
现在参考图15D,在一些实施方式中,计算机确定(1544)是否没有一个所显示的数据可视化包含其特性对应于第一数据属性的数据标记。在一些实施方式中,根据没有一个所显示的数据可视化包含其特性对应于第一数据属性的数据标记的确定(1546):计算机生成(1548)具有第一数据属性的新数据可视化的规范,并显示(1550)新数据可视化。在一些实施方式中,显示(1550)新数据可视化包括:基于规范来确定(1552)图表类型,以及生成和显示(1554)图表。在一些这样的实施方式(1556)中,使用与其他数据可视化自动协调的基于二维网格的布局算法来定位图表。
参考图15E,在一些实施方式中,语言处理模块238计算(1558)与第二组一个或更多个对话中心相关联的第二组一个或更多个分析函数,从而创建第二组一个或更多个功能短语。在一些实施方式中,计算机从第二组一个或更多个功能短语中选择(1560)第一功能短语,其中第一功能短语包括参数化数据选择标准。在一些实施方式中,计算机选择(1562)参数化数据选择标准的参数值的初始范围。在一些实施方式中,计算机显示(1564)对应于参数化数据选择标准的可编辑用户接口控件,其中用户接口控件显示参数的当前值。在一些这样的实施方式中(1566),用户接口控件允许第一功能短语的调整。此外,在一些这样的实施方式(1568)中,用户接口控件显示滑块,其使用户能够调整第一功能短语。在一些实施方式中,计算机基于在第二自然语言命令中的查询的顺序来将所显示的一组一个或更多个可编辑用户接口控件排序(1570),其中查询的顺序被推断出,同时从第二自然语言命令中提取第二组一个或更多个分析短语。在一些这样的实施方式中,在一些这样的实施方式中,计算机使用(1572)便于小词规模可视化在文本中紧凑放置的库。在一些这样的实施方式(1574)中,库是SparklificatorTM。根据一些实施方式,上面所描述的图12A示出了包括呈现给用户的可选择的一组小部件的接口的示例图示。
参考图15F,在一些实施方式中,计算机确定(1576)在第二自然语言命令中的不对应于在第二组一个或更多个分析短语中的任何分析短语的第一标志。在一些实施方式中,计算机通过将第一标志与第一数据集的一个或更多个特征进行比较使用搜索库来搜索(1578)对应于第一标志的正确拼写的项。在一些这样的实施方式(1580)中,一个或更多个特征包括第一数据集的数据属性、单元值和相关关键字。在一些这样的实施方式(1582)中,搜索库是Fuse.jsTM。
在一些实施方式中,语言处理模块238用正确拼写的项代替(1584)在第二自然语言命令中的第一标志以获得第三自然语言命令,并从第三自然语言命令中提取(1586)第二组一个或更多个分析短语。
在一些实施方式中,如图15G中所示,语言处理模块238确定(1588)是否没有对应于第一标志的正确拼写的项。根据没有对应于第一标志的正确拼写的项的确定(1590),语言处理模块语义分析(1592)第二自然语言命令以获得分析树,修剪(1594)分析树以移除树的对应于第一标志的部分,并提取(1596)分析树以移除树的对应于第一标志的部分。在一些这样的实施方式中,语言处理模块238用正确拼写的项代替(1598)在第二自然语言命令中的第一标志以获得第三自然语言命令,并且计算机显示(15.100)第一标志。
在一些实施方式中,如图15H中所示,计算机生成(15.102)文本反馈,该文本反馈指示正确拼写的项代替了在第二自然语言命令中的第一标志。此外,在一些这样的实施方式中,计算机显示(15.104)并加亮正确拼写的项。根据一些实施方式,上面描述的图12B示出了几个示例情况和由计算机生成的对应反馈。
在这里在本发明的描述中使用的术语仅为了描述特定实施方式的目的,且并没有被规定为本发明的限制。如在本发明和所附的权利要求的描述中使用的,单数形式“一(a)”、“一(an)”和“the”意欲也包括复数形式,除非上下文另外清楚地指示。还将理解,如在本文中所使用的术语“和/或”指并包括一个或更多个相关联的所列出的项的任何的和所有的可能的组合。应当进一步理解,当术语“包括(comprises)”和/或“包括(comprising)”在本说明书中被使用时,指定所陈述的特征、步骤、操作、元件和/或部件的存在,但不排除一个或更多个其他特征、步骤、操作、元件、部件和/或它们的组的存在或添加。
为了解释的目的,前面的描述已经参考具体实施方式被描述。然而,上面的说明性讨论没有被规定为详尽的或将本发明限制为所公开的精确形式。鉴于上面的教导,许多修改和变形是可能的。实施方式被选择和描述,以便最好地解释本发明的原理及其实际应用,从而使本领域中的技术人员能够以适于所设想的特定用途的各种修改最佳地利用本发明和各种实施方式。