在实际的很多应用中,数据集由无结构文本和结构化数据组合而成。比如购物网站上,顾客会给商品的质量、物流服务质量、商家态度等条目打分,也可以写一段关于商品的评论。前者就是结构化数据,后者则是无结构文本数据。分析者面对这些数据时,往往需要同时分析二者。既可能先指定结构化数据字段的过滤条件(如对于北京的餐馆),总结文本信息(如,用户评价这类餐馆时最经常使用哪些关键词);也可能先指定无结构文本(如用户评价中含有“非常满意”),再观察这些数据在结构化数据字段的分布(如,这样的评论的地理分布)。然而,分析者面对这类数据时,面临两大问题:(1)没有一种系统的方式来组织和连接这些操作;(2)缺少完整地集成了这些操作的可视化系统,能够支持用户灵活地进行分析。
因此,本文[1]的作者从实际问题中抽象出了5个任务,然后提取出3种操作,并总结了一个流水线,最后设计了名为TextTile的系统来完整地支持这些操作,并对它的能力和可用性进行了验证。
任务抽象
作者们从他们与各个领域的分析者的合作中,抽象出了分析这类数据的5个任务,分别是
- 分析关键词总结
- 分析结构化数据的分布
- 比较关键词总结
- 比较结构化数据的分布
- 将关键词总结和结构化数据分布与原始数据进行关联
3种操作与流水线
根据这些任务,作者又提出为实现这一任务需要支持的操作:过滤(filter),分割(split)和总结(summarize)。同时他们提出了处理此类问题的流水线:

TextTile的流水线
这个流水线由三部分组成:数据模型,操作和可视化。
数据模型假设数据是一张表格,字段分为三种类型:结构化数据字段,无结构文本字段和结构化文本字段。结构化数据字段类似于一般的高维数据,可以分为类别型、序数型和数值型。同时还支持两种语义数据类型:地理型和时间型。无结构文本字段就是没有任何结构信息的纯文本。结构化文本字段是从文本数据中提取的结构化信息,如主题,情感分数等。
过滤操作的目的是允许用户指定过滤条件,提取出自己感兴趣的数据。对于类别型数据,过滤操作支持等于和不等于运算,对于序数型和数值型数据,则还支持比较操作。对于无结构文本,支持通过关键词来进行过滤。TextTile系统允许同时定义多个过滤函数。
分割操作的目的是将数据按照用户指定的字段分为若干个子集,便于用户比较不同数据子集在某些字段上的分布。对于类别型和序数型,系统按照不同的值进行分割;对于数值型数据,系统对这个字段进行分箱;对于文本数据,需要用户指定每个分割的关键词。不同于过滤,这里用户只能指定一个字段进行分割。
总结操作允许用户选择字段或者文本,系统在每个数据子集上对这个字段进行分析。对于非文本数据,计算数量和比例。对于类别型、序数型和数值型,采用柱状图;对于地理数据,采用地图的方式;对于时间数据,采用折线图。对于文本数据,采用作者自己设计的关键词图表(keyword chart)。将关键词按照列,从上到下,从左到右进行排列,默认的排列顺序是关键词对于这个数据子集的相关度(采用TF/IDF模型进行计算)。同时,使用颜色代表相关度,颜色越深,代表相关度越高;背景上布置一个蓝色的矩形,矩形的长度代表频率。
TextTile界面

TextTile界面
TextTile系统界面分为4个部分,分别是维度、过滤、分割和总结,和流水线相对应。用户可以从维度部分拖拽某个维度到过滤部分,这时有一个对话框出现,以供用户选择过滤条件;用户可以拖拽多个维度到过滤部分。当拖拽维度到分割部分时,这个维度的值(对于离散型,是离散的值;对数值型,是分箱标签;对于文本数据,是用户自己提供的关键词)就会出现在分割部分,用户可以合并这些分割的值成为一个新的数据的分割。当用户将维度部分的字段拖拽到总结部分的一行上,就可以观察这一字段在过滤后的子集上的分布情况,可视化的形式在流水线中已经介绍。如果将多个分割部分的分割拖拽到总结部分的列上,每一列就以可视化的形式展现这一分割后的数据子集上某一字段的值的分布情况。
实现
要注意的是,TextTile将关键词提取的过程与查询过程分离开来。关键词表的建立是在数据导入进系统时进行的,这样,总结操作中需要计算词频和相关度时,是在将原表格和这个辅助的关键词表进行连接得到的新表上进行计算的。这样做的好处是,查询的实现不因关键词提取算法变化而受影响。同时,对于重要的文本处理过程,系统可以单独考虑它们。
另外,TextTile目前没有支持使用自然语言处理的方法从文本中提取结构化信息,这些信息是在系统之外提取好,作为表格的一个字段进入系统的。
验证
验证分为2个部分,第一部分是2个案例,分别是使用TextTile理解世界人道主义的需求,以及分析Yelp上的对医疗机构的评价的数据,发现治疗不当的医疗机构。这一部分是用来验证TextTile的能力的。第二部分是用户调研,用来验证可用性。下面主要介绍第二部分。
用户调研中,作者们设置了12个任务,分为高指导程度,低指导程度和无指导。
他们统计了正确状态率(指屏幕上显示的状态可以解释出正确的结果)、正确率、时间和用户对易用性的评价(1~5)。如下所示:

用户调研结果
任务3的正确率最低,作者认为这是被试的粗心导致的,被试混淆了频率和相关性。任务5的易用性评价最低,这一任务需要被试使用地图,在地图上发现数量最大者所处的位置。任务10的时间花费最长,这和这一任务需要被试更多地进行额外的认知处理过程,且没有指导有关。
同时,作者们计算了TextTile的易用性分数,为百分制下的81.67分,属于A等级。
结论
本文的贡献在于:
- 针对同时分析文本和结构化数据的可视分析,提取了5种任务;
- 发展出针对这些任务的完整的操作集合;
- 开发了TextTile系统并进行了验证。
对于未来的工作,作者们认为,可以从以下5点进行:
- 在现实的分析环境下对TextTile进行纵向分析;
- 从自然语言处理的研究中使用现存的或新的方法;
- 对于分割,支持同时分割多个维度;
- 扩展关键词图表并进行验证;
- 探索更全面和准确的对于抽象任务的描述。
Reference
[1] Felix Cristian, Anshul Vikram Pandey, and Enrico Bertini. “TextTile: An Interactive Visualization Tool for Seamless Exploratory Analysis of Structured Data and Unstructured Text.” IEEE Transactions on Visualization and Computer Graphics 23.1 (VAST’2016): 161-170.
评论关闭。