来自Twitter数据科学家的关于NLP的4个技巧
您能描述一下您的专业背景吗?
我叫阿方索·博尼利亚。 我是计算语言学家,目前在Twitter担任数据科学家。 计算语言学家到底是什么? 计算语言学(CL)是语言学的一个分支,它使用计算方法来解决语言问题。在过去的几年中,我对语言空间中机器学习模型(特别是深度学习模型)的可解释性越来越感兴趣,尤其是面向消费者的产品。尽管效果非常好,但结果和模型本身很难对人类(尤其是用户)解释,并且不一定与语言的某些方面相关联(语音部分,语义或语法结构等等)。我对嵌入空间与语言概念的关系以及如何产生偏差特别感兴趣(所以我下面有提到它)。
您现在在Twitter上的哪个团队?您专注于哪些项目?您能详细告诉我们这些团队是如何工作细分的吗?
我是一名数据科学家,我的工作是关于Twitter平台运行的健康状况方面,我们致力于确保平台上的每个人都感到信息安全,并进行可靠的信息交互。
平台运行的健康状况只是Twitter数据科学的一个领域。 Twitter的数据科学是跨不同产品表面的。 产品表面是指用户可以与平台进行交互的不同位置。 其中一些领域包括“家庭时间轴”,“搜索”和“入驻”。
Twitter的招聘流程如何?该过程与您向Walmart Labs(您以前的公司)的申请是否不同?
我在Twitter招聘过程中的经验是非常令人愉悦的。我与招聘人员进行了第一次电话交谈。我们谈到了为什么我对Twitter感兴趣,并讨论了有关我求职工作的一些信息。之后,我进行了编码测试。我喜欢这次编码测试的原因是:它没有给我一个千篇一律的编码器编码问题,而是着重于实际应用的编码。最后一步是现场面试。现场面试包括4轮面试和午餐休息时间。每次面试都很简短,侧重于关键概念而且有很多乐趣。并且在压力很大的情况下,面试官着重测试了我的创造力和解决问题的能力。之后,他们很快的给我提供了Offer!在整个招聘过程中,每个面试官都超级细心和风度翩翩。
沃尔玛的招聘过程也非常相似。我与招聘人员进行电话交谈,然后通过技术面试进行编码,并在现场进行了4次面试和午餐。除了交流,解决商业问题和其他对数据科学至关重要的软技能外,这两次面试还测试统计和编码等技术概念。
您使用Twitter的常用工具有哪些?
在日常工作中,我通常使用Python和SQL。 我发现自己正在使用Jupyter,Sci-Kit Learns,Numpy和Pandas等常用库和工具,以及NLTK,SpaCy和Gensim等NLP特定的库。 此外,Twitter开发了一个名为Scalding的大数据工具。 Scalding是一个Scala库,可轻松指定Hadoop MapReduce作业。
您目前是NLP数据科学家。但是您也是经过正式训练的计算语言学家。您能告诉我们两个学科之间的异同吗?
Tip1: 这两者之间是高度相关的,它们之间的界限确实很模糊。计算语言学,以及更普遍的语言学,专注于在不同层次和不同背景下理解人类语言。 另一方面,自然语言处理(NLP)和计算机科学则侧重于计算机系统和软件的实现。我认为计算语言学(CL)是使用计算方法来理解语言,而自然语言处理(NLP)则专注于解决基于语言问题的程序和算法的开发。 两者都是高度跨学科的,并且相互影响,特别是在技术方面。这两者之间是高度相关的,它们之间的界限确实很模糊。计算语言学,以及更普遍的语言学,专注于在不同层次和不同背景下理解人类语言。
另一方面,自然语言处理(NLP)和计算机科学则侧重于计算机系统和软件的实现。我认为计算语言学(CL)是使用计算方法来理解语言,而自然语言处理(NLP)则专注于解决基于语言问题的程序和算法的开发。 两者都是高度跨学科的,并且相互影响,特别是在技术方面。
它们之间的主要区别在于它们的基本重点和每个领域旨在解决的问题类型不同。 一个很好的例子是每个字段如何解析:
到底是什么解析?解析是根据一组规则(形式语法)将一串符号分析为逻辑句法成分的过程。计算语言学解决的主要问题关于围绕语法分析的形式语法。而大多数NLP问题都与解析中使用的算法有关。 两者都旨在改善解析,但着重的方面不同。
这些相似之处和差异如何在您的日常职责中发挥作用?
Tip2: 在我的工作中,主要的区别体现在我要回答的问题上。在我的工作中,许多与实现相关的问题倾向于NLP,而与用户相关的问题倾向于CL。
与实现相关的问题的一个很好的例子是“如何按主题有效地分类推文?”。主题集群是一种特定类型的集群,其中按主题将推文或更一般的文档分组。常用的技术包括LDA,K-means和Doc2Vec。在分析推文时,对我们而言,系统且一致地将推文分组在一起至关重要。使用常用的技术更具有挑战性:因为推文由用户,文本和网络(所有非分类数据)组成。面对这个挑战,Twitter已围绕“主题”聚类进行了新的研究,提出了一种名为“使用Logistic LDA判别主题建模”的LDA变体。与用户相关问题的一个很好的例子是“人们如何谈论X?”。Twitter是一个对话平台,进行这些对话的人是真实的人。了解他们如何使用该平台将有助于我们开发更好的平台。Tweet聚类是我们了解人们如何谈论主题的好方法。为了纪念《权力的游戏》,Twitter的数据可视化团队创建了一个交互式工具,使我们可以查看用户如何谈论角色以及角色之间的关系。
对想要进入NLP数据科学的TDS社区有何建议?
Tip3: 对于对NLP感兴趣的人,我认为了解如何使用不同的NLP工具以及何时以及为何使用这些工具非常重要。 正所谓使用算法的原因与算法本身一样重要。
Tip4: 在资源方面,我肯定会先阅读Jurafsky&Martin的Speech and Language Processing ,以及Dickinson,Brew和Meuer的 Language & Computers。 有关实现的更多信息,请查看自然语言工具包简介(NLTK),这绝不仅是一份详尽的清单,而是一份让自己了解NLP存在的问题以及人们用来解决这些问题的技术的绝妙方法!