首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据“厨师”ETL竞赛:今天的数据能做些什么?

数据“厨师”ETL竞赛:今天的数据能做些什么?

作者头像
用户2176511
发布2018-06-05 16:46:44
1.7K0
发布2018-06-05 16:46:44

还记得Iron Chef吗?

它们是一个烹饪比赛的电视系列节目,享有盛名的厨师们撸起袖子,争相做出完美的菜肴。基于一个设定的主题,结合厨师们的经验,创造力和想象力,将可能有问题的食材转化为最终的菜肴。

看,这不就像数据转换吗?或者数据混合,数据操作,ETL(提取,变换,导入),或者其他任何现在流行的新名称?根据受欢迎度投票,在这次新博客系列中,我们将要求两位数据“厨师”利用他们的所有的知识和创造力,通过削减,聚合,度量,KPI和坐标转换来提取给定数据集最有用的“风味”。美味之极!

社交论坛:情感与影响

“食材”主题:社交论坛

今天,我们决定回顾过去,并且展示在第一篇KNIME白皮书中实现的分析,其中文本处理由Tobias Koetter,Kilian Thiel和Phil Winters进行网络分析。

我们提供Slashdot新闻论坛1999年以来的数据。Slashdot(有时缩写为“/.”)是一个社会新闻网站,成立于1997年,主题为科技。用户可以发布有关不同主题的新闻和故事,并接收来自其他用户的在线评论(参照Wikipedia)。

几年前,我们发起了一个讨论,最有名的客户是否与每个人(包括他们自己)想的一样重要。我们开始寻找关于给定产品的客户互动的公开数据,并偶然发现了Slashdot数据集。Slashdot数据集中的用户不是严格意义上的客户; 他们通过社交论坛与特定主题进行交互。如果这个话题是一个产品,他们就是客户。因此,假设谈论产品是谈论通用主题的一个特例,我们决定采用Slashdot数据集进行分析。我们在这里为今天的挑战再次提出这个相同的数据集。

Slashdot数据集收集许多子论坛的帖子和评论,如科幻小说,Linux,天文等。大多数用户使用他们的用户名发文或评论,也有些用户匿名参与。最大的分论坛围绕政治展开,共有496篇文章,14万条评论,涉及2.4万用户,我们将这次的挑战集中在这个分论坛上。

每个新帖子都分配了一个唯一的线程ID。标题,子域,用户,日期,主题和主体都参考此线程ID。为每条评论创建一个新的数据行,将线程ID,帖子标题,发帖用户,发布日期和帖子正文从种子帖子附加到评论标题,用户,日期和主体。

原始帖子及其相关评论由数据集内唯一的线程ID连接。种子帖子是线程中的第一个项目。线程的标题是种子帖子的标题。在图1中,您可以在左侧看到种子发布的数据,在右侧看到相应评论的数据。请注意,一个种子帖子可能会对应多条评论。

图1:SlashDot数据集。左侧为种子帖子的数据; 右侧为相关评论的数据

我们可以从这些数据中提取什么?我们已经知道用户谈论政治。还有什么可能有趣的?让我们看看今天的数据“厨师"为我们准备了什么!

  • 主题:社交媒体分析。
  • 挑战:识别抱怨者和高兴者以及影响者和追随者。
  • 方法:情绪分析和影响分数。
  • 数据操作节点:文本处理和网络节点。

比赛

我们都倾向于听最响亮的投诉人。但是,这可能并不总是一个好主意。我们今天的数据”厨师“一方面专注于检测最响亮的抱怨者,另一方面致力于找到最有最有影响力的用户。我们将从他们的结果中得出我们自己的结论。

在分析中,考虑所有非匿名用户。因此,第一步是删除“用户”是“匿名家伙”或“匿名读者”的所有数据行,其中用户名太长,或者没有帖子ID。这发生在“预处理”元节点中。

图2:整体工作流程上部称为“网络创建和分析”,计算影响分数。下方标有“文本处理和情感分析”,用于衡量每个论坛用户的情感评分。

数据厨师Haruto:影响分数

数据厨师Haruto通过调查用户间的连接来进行分析。每篇文章都有一个帖子ID--即线程ID--一个标题,一个用户作者和一个正文。评论帖子还有一个字段“post ref”,标识他们在回应哪个帖子。这里的目标是构建一个网络对象来表示用户交互。

第一步是准备边表作为网络的基础。一个边表有一个源列(帖子的用户作者)和一个目标列(参考帖子的用户作者)注意帖子可以是种子帖子或评论帖子,种子帖子的参考贴子缺失。

边表由图2所示整体工作流程的上部分支中的“创建边表格”元节点构建。左外部连接将所有发帖文章作者(源文件)与所有参考作者(目标文件,如果有的话)放在一起。GroupBy节点然后计算从源点到目标点的每个连接出现的次数。字符串“<源用户> - > <目标用户>”被设置为连接的边ID。所有自动连接,即用户回答自己,被过滤掉。

边表现在可以转换成网络对象了。这是对象插入器节点的工作。该节点将源用户和目标用户转换为节点,并通过边连接它们,其中连接出现次数为边值,边ID字符串作为边标签。

之后,名为“Extract largest component”的元节点首先使用Network to Row节点将网络分解为多个连通成分。每个子网表示为一个字符串并占据一个数据行。然后它循环遍历所有的子网络,并使用Network Analyzer节点统计边和节点的数量。子网络根据其边和节点的总数进行排序,最大的子网络保留用于进一步分析。

最后,第二个Network Analyzer节点计算Hub和Authority分数。

Network Analyzer节点为社交媒体活动提供了一个很好的总结。它在节点和边层次上别计算网络图上不同统计量的数量。这种统计方法试图通过它的连接数量,它们的权重,它们的邻边或邻节点,到它们的邻的距离,以及类似的其他参数来确定每个节点和边的重要性。其中两个重要的数据是目录和权威评分。

目录和权威性的概念,描述在这里,来源于网页。作为广泛主题搜索的结果,有两种主要类型的网页。关于该主题(权威型)有权威的信息来源,然而有些页面仅包含手动编译的关于特定主题(目录型)上的权威网页的链接列表。目录型网页本身并不是特定主题信息的权威来源,而是将您引导至更权威的网页。目录/权威评分计算依赖目录页面来发现权威页面。

为了计算目录和权威评分,网络分析器节点在JUNG(Java Universal Network / Graph)框架中实现HITS算法

数据厨师Momoka:情绪分析

Momoka决定研究情感,即以积极性和消极性而非权威性来表征每个论坛用户。

图2中工作流程的下半部分为每个论坛用户创建文档列表,从他/她编写的帖子或评论中获得。同时,根据MPQA主观词汇从英语词典中收集两个词汇表:消极词和积极词。所有文档中的所有单词都由两个Dictionary Tagger节点标记为正面或负面,这取决于它们是否与这两个词汇表中的任何单词匹配。无标记的词被认为是中性的。

每个正面词分配一个+1值,每个负面词分配一个-1值,每个中性字有一个0值。通过计算每个用户编写的所有文档中的所有词值的总和,得到每个用户的情感分数。我想知道最负面的作者会说什么。出于好奇,我们将为最积极和最消极的作者绘制词云(图3)。

通过右侧最后一个折起的叫做的“标签云”的节点计算词云,并显示词云。这里,两个词云并排显示:左边为最积极作者的词云; 右边最负面作者的词云。正面的单词用绿色表示,负面的单词用红色表示,中性的单词用灰色表示。好吧,很容易看出为什么最消极的作者被标记为d......好吧......消极!

注意:此处使用绝对词频率计算用户的情感评分,而不考虑每篇文章中的单词数量。

一般来说,情绪得分高者(平均值+标准偏差)论坛用户被认为是积极的作者; 情绪得分低者(平均值 - 标准偏差)论坛用户被认为是负面的; 所有其他用户都被视为中间。正面用户以绿色标记,负面用户呈红色,而中性用户呈灰色。

图3:最积极用户(左侧)和最消极用户(右侧)的词云。在所有灰色(中性)单词中,您可以看到左侧是绿色(正面)单词居多,右侧是红色(负面)单词居多。请注意反复出现的单词“”愚蠢的“,这使作者pNutz成为最消极发文作者。

判决:把所有的结合

为了结合所有内容,连接节点将权威和目录评分与作者的情感评分相结合。

散点图(JavaScript)节点位于模型“散点图上的得分和情感”内,y轴为用户目录评分,x轴为权威评分,用不同的颜色区分情感分数(如图 4所示)。

请注意,红色最大声的抱怨者实际上权威评分很低,因此不能被视为影响者。因此,这个图似乎违背了人们应该倾听和呵护最积极的抱怨者的普遍看法。还要注意最权威的用户实际上是中肯的。这种中立性很可能是其他用户信任它们的原因之一。

散点图(Javascript)节点生成的散点图视图是交互式的。通过单击视图顶部的“选择模式”按钮,可以通过单击来选择散点图上的单个点。在图4中,“选择模式”按钮以及选定的点以红色圈出,在这个例子中为绿色点,即名为Guppy06的积极作者。

点击关闭按钮并选择将目前的选择点保留为新的默认设置后,选定的作者d将移动到下一个可视化包裹元节点,提取所有他/她的帖子并显示文字云(图5)。

可以在散点图中选择单个点,通过试图控制工具栏中的允许选择项完成,在“散点图”元节点中的配置窗口里。请注意,其他类型的选择已被禁用,只允许为后续文字云选择一个作者。

注意:可以在KNIME WebPortal上显示相同的图表序列。在那里,后退按钮允许您移回到散点图,选择新的作者,并显示他/她的文字云。

KNIME WebPortal上正确的页面流程需要名为“Tag Cloud”的包装元节点和名为“Score&Sentiment on Scatter Plot”上的包装节点之间的流动变量连接(红线)。

论坛中的帖子可以简化为数字。在这篇博客文章中,他们被数据厨师Momoka通过文本处理简化为情感评分,并由数据厨师Haruto通过网络图形分析评定为权威/目录评分。这两个表示都产生了有用的信息。然而,当试图通过单独选出最积极和最消极的用户,分别用以奖励和损失控制时,这两者的结合证明是非常有用的。

图4:散点图中点为作者,x轴为的权威评分和y轴上的目录评分。具有积极情绪得分的作者,即情感得分>(平均值+ 1 *标准差),以绿色标记。具有负面情绪评分的作者,即情感评分<(平均值-1 *标准差),被标记为红色。情绪得分介于两者之间的作者被标记为中性,并以灰色表示。在右上角有用于缩放和选择的按钮。带圆圈的按钮可启用点/作者选择。示例中的大点是通过单击选中的点。

图5:之前散点图(图4)中选定作者的词云。

我们的比赛已经接近尾声。恭喜我们的数据厨师们从原始数据成分中提取这些有趣的特征!美味之极

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 社交论坛:情感与影响
    • “食材”主题:社交论坛
      • 比赛
        • 数据厨师Haruto:影响分数
          • 数据厨师Momoka:情绪分析
            • 判决:把所有的结合
            相关产品与服务
            大数据
            全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档