石溪大学:DLATK:差别语言分析工具箱

你和“懂AI”之间,只差了一篇论文

很多读者给芯君后台留言,说看多了相对简单的AI科普和AI方法论,想看点有深度、有厚度、有眼界……以及重口味的专业论文。

为此,在多位AI领域的专家学者的帮助下,我们解读翻译了一组顶会论文。每一篇论文翻译校对完成,芯君和编辑部的老师们都会一起笑到崩溃,当然有的论文我们看得抱头痛哭。

同学们现在看不看得懂没关系,但芯君敢保证,你终有一天会因此爱上一个AI的新世界。

这是读芯术解读的第79篇论文

EMNLP 2017 System Demonstrations

DLATK: 差别语言分析工具箱

DLATK:Differential Language AnalysisToolKit

石溪大学

Stony Brook University

【摘要】我们介绍了差别语言分析工具包(DLATK),这是一个开源的python包和用于进行社会科学的语言分析的命令行工具。尽管DLATK提供标准如单词切分或SVM分类等NLP方法步骤,但其创新的优势在于分析有用的心理、健康和社会科学:(1)整合语言以外的结构化信息;(2)指定级别和分析单位(如文档、用户团队);(3)连续输出的统计指标;(4)用于社会科学预测问题的鲁棒、久经考验和精确的方法。DLATK集成了多个受欢迎的包(SKLearn,Mallet),允许交互式使用(Jupyter笔记本),并且通常遵循面向对象的原则,以便在额外的库或存储技术中轻松绑定。

1 引言

NLP对社会和医学科学的发展已经引起了NLP研究的注意,从理解语言本身(例如句法分析或描述形态)到理解如何使用语言来描绘人们的特征(例如,通过关联语言的使用特征和产生语言的人的特征)。大部分工作都是使用Facebook和Twitter完成的(Coppersmithet al .,2014)。

与传统的NLP相比,分析社会科学应用的语言需要不同的工具和技术。结构化数据通常有利于使用广泛的非语言信息,如时间和地点、作者的人口统计(甚至健康或学校记录)。模型可以在多个层次的分析中进行:文档、用户和不同的地理位置(邮政编码、州或国家)或时间分辨率。许多结果(或相关变量)是连续的(如人格测试的分数),研究人员通常对可预测的准确性感兴趣(Kernet al .,2014a)。

有一些小的“技巧”可以获得准确的预测模型或语言特征和结果之间的高相关性。需要表情感知的标记者,用于创建LDA主题的健壮方法(不同的包产生明显不同质量的集群),在模型中结合人口和语言特性时出现了一些微妙的规则化问题。当这些选择与结构化数据的复杂性结合起来时,即使是NLP和数据科学家也不能生产出高质量的模型。因此,我们构建了一个平台,它集成了各种各样的开源工具,以及我们的“技巧”和优化,为社会科学在NLP领域进行可重复性研究提供一个有良好记录和易于使用的程序。

这个软件现在已经被用于心理学、医疗保健和NLP等32篇论文的数据分析,现在可以在GPLv3软件许可证下使用(http://dlatk.wwbp.orgor http://github.com/dlatk/)。

2整体框架

DLATK的核心是图1所示的Python库。基类DLAWorker位于一个数据引擎之上(例如,MySQL,HDFS / Spark),用于跟踪基本语料库(语料库位置,分析单位)。下一个级别的类作用于:消息、特性或结果。MessageAnnotator过滤消息(删除重复的推文,语言过滤等等),而MessageTransformer在消息文本上执行(标记化,语音标签的一部分等等)。特征提取器FeatureExtractor将文档文本转换为特征(ngrams、字符ngrams等等)并负责编写,而特征获取函数FeatureGetters则读取下游分析,或者通过FeatureRefiner进一步细化。OutGetter读取结果表(即语言以外的信息)。它的子类OutcomeAnalyzer与语言和语言外信息一起工作,用于统计分析(相关性、逻辑回归等等)和各种输出(词云、相关矩阵等等)。

图1 基本DLATK数据包类结构

底层的类不继承,而是使用FeatureGetters和OutcomeGetters。这个包括两个用于预测的类RegressionPredictor和ClassifyPredictor,他们执行机器学习任务:交叉验证、特征选择、训练模型、构建数据驱动词典等,而DimensionReducer则对语言和输出提供无监督转换语言。最后,FeatureStar类(“star”表示通配符)被用来与其他类交互并将重要的信息转换为方便的数据结构(例如熊猫数据帧Pandasdataframes)。

3 差别语言分析

DLATK的典型用法是执行差异语言分析differentiallanguage analysis——语言特征的识别(a)可以独立地解释连续结果的最大方差,或者(b)可以是离散结果中单独地最具预测力的(Schwartz等人,2013b)。不同于预测技术,其中寻求为给定语言产生结果(接下来讨论),在这里的目标是产生与结果最相关或独立区别的语言。(即使在基本预测方法如线性回归,每个语言特性和结果之间的关系很复杂,依赖于所有变量之间的协方差结构。DLA在单变量、每个特征样式或有限的控制变量中工作(例如当识别人格时的年龄和性别区分人格))。DLATK提供了几个执行DLA的指标。

连续DLA度量标准。我们支持多种指标,将语言与连续结果(如年龄、抑郁程度、人格因素得分、收入)进行比较。主要指标是基于皮尔逊积矩相关系数PearsonProduct-Moment Correlation Coefficient (Agresti and Finlay, 2008)。当一个人要求控制变量(例如,寻找与抑郁程度有关的关系,控制年龄和性别)时,使用普通最小二乘线性回归(Rao,2009),其中控制变量被包括在语言变量旁边,作为协变量,结果是因变量。

离散DLA度量标准。虽然线性回归在大多数情况下会产生有意义的结果,但对于离散或伯努利结果通常理想的是使用其他指标。逻辑回归可以用在线性回归的地方,假设一个二分类结果,统计意义测试通常更准确(Menard,2002)。不需要控制的地方,还有很多其他的选择,通常更少的计算复杂如TF-IDF、狄利克雷先验信息 (贝叶斯方法对数几率(Monroeet al., 2008))或分类精度指标如ROC曲线下的面积(Fawcett,2006)。

多重假设检验。大多数指标都有相应的标准意义测试(例如,皮尔逊相关和OLS回归的学生t检验),以及大多数默认的输出置信区间。在许多没有标准意义测试的指标都实现了费舍尔组合检验,如AUC-ROC中,其语言特征向量与结果(如果适用)进行多次比较,以创建一个null分布。DLA的标准实践(Schwartz等人,2013b)是将每个潜在的数千个特性(例如,一个单数或多字表达的标准化用法)与给定的结果相关联。因此,纠正多重比较是至关重要的。在通过接口脚本使用时,DLATK默认使用了FDR校正的Benjamini-Hochberg方法进行了多次比较(Benjaminiand Hochberg, 1995)。其他选择,如更保守的Bonferroni校正(Dunn,1961)也可用。

4 预测方法

与传统的NLP一样,许多社会科学研究目标可以被框定为预测任务,其中一个模型适合于语言特征来预测结果。DLATK实现了许多可用的回归和分类工具,并辅以特征选择函数来精选特性空间。大量的特征选择技术已经被经验的提炼,以准确地应用于回归问题。

特征选择。DLATK的分类预测器ClassifyPredictor和回归预测器RegressionPredictor类包括特征选择的方法,这是非常重要的,因为它可能是一个很大的语言特征空间,例如,在一个语料库中,成千上万的1元到3元文法。这两个类都允许通过scikitlearn方法(例如基于特征相关性的单变量特性选择)和维度减少方法(例如,特征矩阵上的主成分分析PCA),包括FS和DR步骤以串行方式应用于原始数据的组合方法。

回归模型。DLATK支持多种回归模型,以获取特征以及额外的语言信息,并输出连续的值预测。这些包括在惩罚线性回归的变体:岭回归(RidgeRegression)、最小绝对收缩与选择算子(LASSO)、弹性网络(ElasticNet)以及非线性技术,如极端随机森林。一种常见的方法,称为“神奇酱”,将单变量特征选择和PCA应用于独立于控制的语言特性,然后使用ridge从一个组合减少空间将一个线性模型拟合到输出结果。

分类模型。DLATK实现了多种类型的分类器,包括逻辑回归和支持向量分类器(L1和L2正则化)、集成和梯度增强技术(如极端随机树)。与回归一样,技术已经建立起来,以便有效地利用额外的语言信息作为额外的预测或控制来试图“-超出预测”。

5 主要功能

语言信息由于DLATK的设计目的是利用社交媒体的全部功能,因此使用了一种特殊的表情符号分词器,同时还利用了Python的unicode功能。虽然DLATK不是专门为语言独立设计的,但它已经被用于一项非英语的研究(Smithet al .,2016)。

语言外信息DLATK的大部分功能都是用额外的语言设计的,也被称为“结果”。这些信息包括社交媒体帖子的元信息,如时间或地点,到用户属性,比如人口统计或人们可能希望预测强大的基线。对于DLA来说,这意味着一个人不仅能区分目标之外的信息,而且还能控制这些信息。对于预测,额外的语言信息可以作为模型的输入,考虑到这样一个事实,这些特征通常比单独的语言特征更少的稀疏和更可靠的特征。

多层次的分析DLATK允许一个人用单个语料库在多个层次分析中工作,简单地作为一个参数来处理任何动作。例如,一个人可以选择分析推文本身,或者根据用户ID、位置,甚至是用户和日期的组合来分组。额外的语言信息通常会影响特定的分析层次(例如团体层次的死亡率或用户层次的性格问卷反应)。分析设置对分析层次是灵活的,例如,一个人可以动态为可用的分析单元设置阈值(例如,只包含至少1000个单词的用户或有5万个单词的县)。

集成的流行包DLATK坐落在许多流行的用于数据分析和机器学习(scikitlearn(Pedregosa et al .,2011)和statsmodels(Seabold和Perktold,2010))以及NLP特定包(斯坦福解析器(陈和曼宁,2014),TweetNLP (Gimpel et al .,2011)和NLTK(Loperand Bird, 2002))等开源软件包之上。LDA主题可以用Mallet(McCallum,2002)接口创建。在创建这些主题之后,可以在下游任何标准的DLATK分析方法中使用。pip和conda包管理系统控制python库依赖关系。

交互使用与DLATK交互的标准方法是通过命令行与接口脚本进行交互。通常用户只会看到两个端点(文档输入和分析输出),结果这个包被用作“黑盒”。为了鼓励数据挖掘,特征星FeatureStar类将语言特征和额外的语言信息转换为熊猫数据帧Pandasdataframes(McKinney, 2011),允许用户将我们的方法导入到现有的代码中。简单的用例包括打开预测模型来探索特征系数,并轻松地将语言数据读取到标准数据可视化工具中。

可视化在运行DLA时,我们经常会对成千上万的语言特性进行单独的关联。虽然一个单词可能不会让我们深刻地了解我们的语言之外的信息组,但它们常常可以讲述一个引人注目的故事。为此,DLATK以n-gram和主题云图的形式提供词云输出。图2显示1元-元与(a)年龄显著相关(阳性;高年龄),(b)年龄(阴性;低年龄);(c)教育家职业;(d)技术职业。这是在与DLATK打包的博客作者身份语料库(Schleret al.,2006)上运行的。在这里,颜色代表语料库中的词频(灰色到红色代表不常出现到经常出现),大小代表相关强度。

图2 1元-3元与年龄和职业有关

与社会科学的工具比较在社会科学中,传统的文本分析程序是基于字典(与特定的心理“构想”或语言类别相关的词汇列表,如“积极情绪”或对工作和职业术语的引用)。根据引用,最流行的工具是语言调查和词汇计数(LIWC)(Pennebaker et al.,2015),接着是DICTION(Hart,1984)和GeneralInquirer(Stone et al.,1966)。对于给定的文档,这些程序提供了字典中出现术语的相对频率。字典的使用有一个优点,即在给定的文本示例中,它们提供了相对比较简洁的语言,并且其结果在研究中具有可比性。

DLATK还重新生成了基于字典的方法的功能。然而,字典通常是不透明的分析单位,因为它们的整体频率是由一些高度频繁的单词决定的。如果这些话是模棱两可的话,基于字典的结果的解释可能会误导人(施瓦茨等人,2013a)。DLATK允许确定驱动给定字典类别的单词,它还可以根据在ngrams上的预测模型上生成数据驱动的词典,甚至可以在给定的字典类别中找到与之相关的单词。

DLATK可以为研究人员提供足够的信息来产生假设,并阐明一个构念的“基则网nomologicalnet”(Cronbach and Meehl,1955);也就是说,帮助确定与调查结果相关的(足够相关)心理和社会过程和构念。此外,DLATK在预测测试中包含了语言特性和控制,这一事实使研究人员能够评估构,与有意义的展示图标或社会经济基线相比,在语言中捕获了多少与构想相关的方差。

6 评估

DLATK作为一个数据分析平台,在30多个同行评议的出版物中,从一般兴趣(PLoSONE: Schwartz等,2013b)到计算机科学方法程序 (EMNLP: Sap et al.,2014)到心理学期刊(JPSP:Park et al.,2015)。

DLATK最直接的用法是提供与给定结果相关的语言特性的见解,这是Schwartz等人(2013b)所提供的DLA。其他主要使用DLATK进行相关类型分析的工作,主要检查结果如年龄(Kernet al .,2014b),性别语言和刻板印象(Parket al .,2016;Carpenter et al .,2016b),以及基于app的幸福感干预的功效(Carpenteret al .,2016a)。

另一个可以评估DLATK效用的领域是建立预测模型。表1总结了在同行评审的出版物中报告的一些预测模型。DLATK致力于在多个尺度上创建模型,即用于预测单个消息方面(例如,tweet-wise时空定向;Schwartzet al.,2015),或预测用户级属性(例如,严重的抑郁症;Schwartzet al.,2014),或预测团体层面的健康结果(例如,心脏病死亡率;Eichstaedtet al .,2015)。

表1 在同行评审的出版物中使用DLATK训练的预测模型分数的调查。分数报告为:R:皮尔逊相关;Acc:精度;AUC:ROC曲线下的面积。

7 结论

DLATK已经开发了五年多了。我们已经讨论了它的一些核心功能,包括对额外语言特性的支持、多层次的分析和连续的变量。然而,它最大的好处可能是灵活性和可靠性,因为多年来对几十个项目进行了改进。我们希望DLATK成为那些试图了解语言使用者生活中的社会、心理和健康因素的表现的研究人员的一个多用途的“瑞士军刀”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180723G0UP1J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券