白皮书

为使用“数据问答”以自然语言交互准备数据

Tableau 的自然语言功能“数据问答”适用于 Tableau Server 或 Tableau Cloud 上的所有已发布数据源。但是,若要充分利用“数据问答”的所有优势,您需要整理优化数据源,为实现最佳分析对话提供支持。

为了帮助您在组织中部署“数据问答”,我们编汇制作了本指南,介绍如何整理数据源以打造成功的用户体验。

理解用户提出的问题

“数据问答”利用上下文来确定相关数据类型的属性,将话语分解为令牌(即包含时间、空间或数字表达式的短语),从而理解其意图。然后,它使用可视化最佳做法来确定最合适的可视化,满足用户意图。

假设某人想要就已发布数据源(包含今年迄今为止销售额)提问。他们可以在“数据问答”输入框中输入“一段时间内的利润是多少?”之类的问题。在这种情况下,“数据问答”将“利润”聚合为总和(默认聚合),从而解析用户意图。 它还将“时间”解析为数据源中的“订单日期”属性,按其年份进行聚合(图 1)。

Figure 1  Visualization output from the expression “what is the profit over time?”

图 1: “一段时间内的利润是多少?”的可视化输出

当所有属性都是预期的数据类型时,“数据问答”的推理算法最有效。在此示例中,预期数据类型为“日期”,可生成时间序列可视化(一段时间内的趋势)。应使用预期的默认聚合和数字格式指定度量。

借助“数据问答”功能,您可以就已发布数据源中的计算字段、列字段、组字段和数据桶字段进行英文提问。“数据问答”目前不支持集、参数、合并字段、合并集或分层结构。Tableau 正在努力研发,以便在以后的版本中添加对这些字段类型的支持。


“数据问答”中支持的分析表达式

目前存在五种基本类型的分析表达式。话语便是由这些表达式中的一个或多个组成。

“数据问答”支持以下分析表达式:

聚合表达式:将多行值组合在一起,根据数学函数形成单值。例如,“Sum of Sales”(销售总额)、“Average Profit”(平均利润)或“Count of Customers”(客户数量)。

分组表达式:此类表达式将数据划分为数据可视化中显示的不同类别,如“by Region”(按区域)或“by Sales”(按销售额)。

排序表达式:此类表达式将数据行按特定顺序(如升序、降序或字母顺序)排列。例如,“sort Products in ascending order by sum of Profit”(按利润总和的升序对产品进行排序)或“sort Customer Name in alphabetical order”(按字母顺序对客户名称进行排序)。

筛选表达式:此类表达式将返回所选字段域的子集。它们可以是数值筛选器,如“sum of Sales at least $2,000”(销售总额至少为 2,000 美元),也可以是类别筛选器,如“Customer Name starts with John”(客户名称以 John 开头”)或“Category contains Manufacturing”(类别包含制造)。

限制表达式:此类表达式与返回所选字段域子集的筛选表达式类似,但还会限制子集行数。例如,“”(销售总额排名前 5 的酿酒厂)或“bottom Category by average Profit”(平均利润最低的类别)。

了解更多有关支持的分析函数的信息。

“数据问答”为这些概念提供了一些常见的内置同义词,例如“from largest”(从最大值)表示降序,“mean”(均值)表示平均值。它还提供了一些缩写,如“cnt”表示计数、“avg”表示平均值等。请跳转下文了解如何向“数据问答”添加用户同义词。

此外,“数据问答”以绝对时间或相对时间的形式来体现时间表达式(与时间相关的表达式)。“数据问答”支持绝对时间概念,表达式如“starts in”(开始于)、“ends in”(结束于)和“between”(介于)。它还支持相对时间概念,例如“last 3 years”(过去 3 年)、“next quarter”(后一个季度)、“this month”(本月)、“today”(今天)和“yesterday”(昨天)等表达式。

准备数据源以实现最佳分析对话

“数据问答”专为与 Tableau Server 或 Tableau Online 上的任何已发布数据源配合使用而设计。为了提供实用默认值以便使用筛选表达式,“数据问答”利用字段的相关元数据丰富了语义模型。对于连续的数值型度量,这些元数据包括“最小值”、“最大值”和“平均值”等统计信息。对于文本字段,元数据则包含最常出现的值。

当用户在“数据问答”中键入筛选表达式时,系统就可以根据这些元数据来推荐相应的值。例如在下图中,由于元数据中“Price”(价格)属性的最小值为“$4”,系统会据此建议使用筛选词“at least”(至少)搭配“$4”。

A user types a filter expression in Ask Data, this metadata allows the system to provide defaults for values.

图 2:由于元数据中“Price”(价格)属性的最小值为“$4”,系统会据此建议使用筛选词“at least”(至少)搭配“$4”。

对于采用行级安全保护机制的数据源,“数据问答”不会对字段的元数据进行特征分析、编制索引,也不会将它们存储在语义模型中。由于缺少元数据,“数据问答”无法提供默认筛选词(如图 2 所示)、识别诸如“cheap”(便宜)或“high”(高)这样的对比概念,也无法在数据窗格内的工具提示中显示配置文件数据。

不过,我们知道有些数据源确实有行级安全性方面的要求。在这类情况下,“数据问答”无法为数据源编制索引,但您仍然可以利用“数据问答”的优势,只需指定要作为筛选条件的确切值并用引号将这些值引起来即可。

例如,假设您想查看“wineries in california that have pinot noir”(加州酿造黑皮诺酒的葡萄酒厂)。如果数据源采用的是行级安全保护机制,那么您需要按如下所示输入查询内容:

Wineries filter State to “California” filter Variety to “Pinot Noir”

对于日期、布尔值和数字,无需加引号,这是因为“数据问答”可以自动解读这些类型的值,并将它们与相应的字段进行匹配。

如果您在组织中发布了已认证数据源,团队便可在“数据问答”中利用这些源。但您可能希望为最终用户开放其他源或重新整理现有源,以便能在“数据问答”中更轻松地进行分析。若要充分利用“数据问答”功能,请在整理数据时谨记以下几个方面。



整理数据时需考虑最终用户

如果数据管理员或分析师既了解如何准备数据以供分析,又能预测用户将使用自然语言询问哪些数据数据,那么使用经他们精心整理的数据,“数据问答”用户便能更好地回答问题。

阅读有关整理已发布数据源的最佳做法的更多内容。

为“数据问答”整理数据时,首先要尽可能简化已发布数据源。这意味着仅保留最小字段集供用户在“数据问答”中交互查询,并删除(或隐藏)数据源中不必要的字段。“数据问答”支持包含多达 1,000 个字段的数据源,但数据应越明确越好。这有助于提升整体系统性能,从而缩短初始化时间并加快解析自然语言话语。如果数据源运行较慢,可使用带有数据源筛选器(如果需要)的数据提取来提高性能。

整理数据源以便在“数据问答”中查询时,请考虑以下因素:

准备数据。尝试预测用户希望使用数据源回答哪些类型的问题。可能需要使用数据整理、联接操作和相关的数据准备功能来整理数据,以使其适用于回答这些预测问题。

设置适当的字段默认值。为每个字段指定正确的数据类型(例如字符串、数字、地理位置、日期、日期时间、布尔值)和数据字段角色(例如离散与连续、度量与维度)。为每个度量指定默认聚合函数。例如,“销售额”的适当默认值是 SUM,而对于“测试分数”,AVERAGE 或许是更合适的默认值。

设置百分比和货币数字格式。为了支持人们询问数据时惯于使用的常见口语概念,“数据问答”囊括了“low”(低)、“high”(高)、“lowest”(最低)、“highest”(最高)等基本概念和基于货币的概念,如“cheap”(便宜)和“expensive”(昂贵)及其相应的同义词。为了方便解析“show me the cheapest wineries in France”(显示法国最便宜的葡萄酒厂)等话语,需将数据源中的度量设置为适当的货币格式(如图 3 和图 4 所示)。

Figure 3   Set up measures in the data source with the appropriate currency format.

图 3:将数据源中的度量设置为适当的货币格式。

Figure 4   For the utterance “cheapest wineries in France,” the system infers a currency attribute ‘Price’ for the concept ‘cheapest’.  Ask Data infers a numeric range from the metadata for ‘Price’. Clicking on ‘cheapest’ refines the inferred numerical values.

图 4:对于话语“cheapest wineries in France”(法国最便宜的葡萄酒厂),系统推断货币属性“Price”(价格)可表达“cheapest”(最便宜)概念。“数据问答”从“Price”(价格)的元数据中推断出一个数值范围。点击“cheapest”(最便宜)可以优化推断的数值。

设置逻辑分层结构。这允许用户在使用“数据问答”生成的可视化中上钻和下钻查询。这适用于地理维度(例如城市、省/市/自治区、国家/地区)、日期和时间(例如年、季度、月)以及功能相关维度(例如类别和子类别)。

在以下方案中,为定量变量创建有意义的分桶字段(数据桶大小适当):

  • 查看数据源中非度量字段的分桶版本。
    例如,“Age”(年龄)是一个数值维度,在 Tableau 中不能以直方图表示,因此使用“数据问答”。但是,在数据源中为“Age”(年龄)创建分桶字段后,用户可以使用其分桶版本提问(如图 5 所示)。
Figure 5 A user can type “by Age (bin)” to view a binned form of the dimension as a bar chart.

图 5:用户可以键入“by Age (bin)”(按年龄(数据桶))以条形图查看该维度的分桶形式。

  • 使用自定义数据桶设置在“数据问答”中引发直方图响应。
    使用自定义数据桶大小创建度量的分桶字段,可以更好地控制这些字段在“数据问答”中的显示方式。在下面的示例中(图 7),用户可以键入“Fare as a histogram”(票价直方图),“数据问答”将使用分桶字段“Fare (bin)”(票价(数据桶))中的自定义数据桶设置生成直方图。
Figure 6

图 6:在“数据”窗格中,右键点击(在 Mac 上按住 Control 键并点击)并选择“创建”>“数据桶”。

Figure 7 Visualization output of the expression, “Fare as a histogram” with custom bin sizes.

图 7:“Fare as a histogram”(票价直方图)表达式的可视化输出(自定义数据桶大小)

为字段指定唯一且有意义的名称

为了使最终用户更容易理解您的数据源,并增大人们通过“数据问答”获取所需答案的可能性,您应该审核数据源中的字段名称。

采取以下步骤,打造理想的用户体验:

为字段值创建有意义的别名。在 Tableau Desktop 中,您可以使用别名创建简单易用的字段名称(例如使用“CustID”表示“Customer ID”(客户 ID))。这是数据整理的标准建议。对于“数据问答”,您可以通过添加同义词获得更优体验。例如,人们也可以在内部使用“Customer Number”(客户编号)指代“Customer ID”(客户 ID)。在这些情况下,您可以将这些额外的同义词添加到“数据问答”以支持用户提问。

区分属性。为数据源中的属性分配唯一名称可以优化“数据问答”中的用户体验。如果表达不明确,则“数据问答”会查找与数据中的模式大致匹配的字符串(最多有一个字符差异),这也称为模糊字符串匹配。“数据问答”随后显示多个匹配项以供用户选择。在下面的示例中(图 8),数据源中存在多个包含“Sales”(销售额)一词的属性。但是,输入“sales”(销售额)仅出现三个匹配属性,因为输入的单词“sales”(销售额)和属性“Sales Foo”(销售额 Foo)相差不止一个字符。

Figure 8

图 8

此外,若属性对数据源的域有语义意义,则建议为这些属性命名,以便分析任务可以直观理解“数据问答”中提出的问题。例如,数据源中的每条记录都表示地震,则将“Number of Records”(记录数)重命名为“Number of Earthquakes”(地震次数)(图 9)。

Figure 9

图 9

检查字段名称。“数据问答”根据数据源中的字段筛选值。避免将字段命名为值,以防“数据问答”将数据字段误解为值(例如数字、日期或布尔值,如“true”或“false”)。此外,出于性能原因,“数据问答”不会对与支持的分析表达式重叠的字段进行索引。例如,避免使用“平均”、“2015 年销售额”或“最畅销产品”等字段名称。

对地理区域字段进行地理编码。对于具有地理角色的字段,请确保数据值已成功进行地理编码。对字段值成功进行地理编码后,该字段在“数据问答”中将被识别为地理属性,且数据窗格中将使用图标指示(图 10)。这类属性支持诸如“where are the highest fire fatalities?”(哪个地区的火灾死亡率最高?)之类的话语,系统识别令牌“where”(哪个地区)指示地图,并推断出“County”(县/市)等有效的地理属性。

图 10

添加相关计算字段

“数据问答”无法创建动态计算,因此您需要提前将预期的计算添加到数据源中。例如,创建一个名为“Total Compensation”(总薪酬)的计算字段,该字段的值由“Base (Variable)”(基本薪资(变量))中的最低基本薪资与“Commission (Variable)”(佣金(变量))中的总佣金相加所得,如此,用户即可输入“what is the total compensation for each sales person?”(每个销售人员的总薪酬是多少?)等问题。(图 11 和图 12)。

图 11:要创建计算字段,请选择“分析”>“创建计算字段”。要编辑计算字段,请右键点击“数据”窗格中的计算字段,然后选择“编辑”。

Figure 12

图 12:创建一个名为“Total Compensation”(总薪酬)的计算字段,该字段的值由“Base (Variable)”(基本薪资(变量))中的最低基本薪资与“Commission (Variable)”(佣金(变量))中的总佣金相加所得,如此,用户即可输入“what is the total compensation for each sales person?”(每个销售人员的总薪酬是多少?)等问题。

使用用户同义词丰富数据

您可以通过“数据问答”字段窗格为数据源中的字段定义同义词。例如,假设您有一个关于汽车购买情况的数据源,其中一个字段是“New Vehicle Model”(新车车型)。添加“vehicle purchased”(购买的车辆)和“car”(汽车)作为“New Vehicle Model”(新车车型)字段的同义词,即可支持“vehicles purchased by city”(各城市购买的车辆)(图 13)等自然语言话语。

图 13:要为特定数据字段添加同义词,请将鼠标悬停在数据源字段上,点击向下箭头,然后选择“编辑同义词”。输入该字段名称的同义词,以逗号分隔。

启用数据访问权限和治理

“数据问答”的安全和治理措施与您熟悉的 Tableau Server 或 Tableau Online 中的相关措施完全相同。以下部分将更加详细的介绍如何在“数据问答”中使用已认证数据源,以及如何控制整个组织对“数据问答”访问。


设置角色和权限

针对“数据问答”进行数据整理后,您就可以控制谁有权访问该功能。要使用“数据问答”,用户需要 Creator 或 Explorer 角色,并且还需具有 Tableau Server 或 Tableau Online 上的 Web 制作访问权限。Tableau Server 管理员可以指定站点级别权限,以确定有权访问 Web 制作功能的人员(如图 14 所示)。分析师和业务用户都会发现“数据问答”的价值,通过这种方式,他们可以快速、轻松地浏览数据源并即时发现有意义的见解。

深入了解 Web 制作权限

图 14:指定站点级别权限以确定有权访问 Web 制作功能(包括“数据问答”)的人员。

检查认证数据源

用户可以在 Tableau Server 或 Tableau Online 上认证数据源,表明它是受信任的优化数据源。这不是特定于功能的认证;没有“数据问答”特定认证。但是,如果用户想要特意对某数据源禁用“数据问答”,可以在 Tableau Server 用户界面的数据源设置中执行此操作(如图 15 和 16 所示)。

图 15

图 16:如果需要,在 Tableau Server 或 Tableau Online 的数据源详细信息部分,您可以对某些数据源禁用“数据问答”。

“数据问答”让您组织中的每个人都能提出与其数据相关的问题。遵循这些数据整理指南可帮助您准备数据,从而使用自然语言获得最佳用户体验。