YC 孵化器新兴技术系列(一):如何进入自然语言处理领域

【AI100 导读】本系列的每一篇文章都会为大家介绍一种新兴的技术,并且教大家如何入门相关的技术领域。本篇文章是为想进入 NLP 领域的人准备的。

我们很高兴能为大家介绍一个新的系列,这个新的系列我们称之为 Paths。在每一篇文章中,我们都会为大家介绍一种新兴的技术,并且会在文章中教大家如何入门相关的技术领域。

Paths 系列可以说是专门为创客和雄心勃勃的企业家而写的文章。我们曾和某些对工程领域、商业领域以及技术领域感兴趣的同学沟通,以找到那些对他们来说最有用的资源。然后,我们又联系了学术界专家、行业专家或者兼具两者的专家。

今天,我们将会聊一下自然语言处理。

通常情况下,我们不会去想人类理解语言有多么容易。在日常交流中,我们只是单纯地表达着我们的想法,从未想过大脑将大量非结构化数据转换成有用的信息的过程。但是对于机器来说,理解人类的语音和语言是非常难的。

什么是 NLP?

NLP 的全称是 Natural Language Processing,中文名为自然语言处理。该领域关注的是如何使机器理解人类的语言。

“这个新领域的目标是使计算机能够完成一些与人类语言有关的有用任务。它应该能够促进人机之间的交互,改善人与人之间的沟通。当然,也可能只是做一些有用的文本或语音处理。”——Jurafsky,Manning 2011

NLP 起源于语言学领域。二十世纪中期,NLP 因统计分析的进步得以发展。而近年来,NLP 凭着人工智能新技术的发展再次爆发。今天,虽然难以置信,但NLP 确实已经成为众多学科的交叉领域,汇集多种象征性的范例(想想基于一系列规则的模式匹配)和随机模式(从统计学和概率学中得到的)。

我们为什么应当留意自然语言处理呢?

NLP 正在改变我们和设备间的交互方式,并且这个领域正以令人难以置信的速度发展着。它可以被各种各样的人应用到各种各样的领域中。

以下是对某些运用了 NLP 技术的领域的调查:

  • 制药业——总结医生的处方并计算相关的费用;互用性(在供应商中使用不同格式的病历卡)。

  • 法律——改进法律文档,在更相关的法律文档中进行查找/研究。

  • 金融业/银行——基于世界新闻和社会媒体的观点给出可行的观点。

这就是说,有很多困难的问题都可以用 NLP 来解决。所以现在就能参与到 NLP 中,会让人无比兴奋。

应用 NLP 的实例有哪些?

个人助理(Apple 的 Siri、Amazon 的 Alexa)、自动语言翻译(Microsoft 的 Skype、Google 的 Translate)、问答(Google 的 Search)以及文本自动摘要等,都是 NLP 在现实生活中的应用实例。

为什么 NLP 很难?

语言是非常模棱两可的,它依赖于微妙的线索和上下文来传达意思。

举个简单的例子:“I love flying planes”。

是我喜欢参加驾驶飞机的活动吗?还是因为人们给汽车插上了一对翅膀使它能够在空中飞行,我表示出欣赏呢?

一个简单的句子能表达出很多的意思。经过数千年的演化,人们的语言变得越来越简短,越来越含蓄。对人类来说,这样非常有效率。我们与他人的沟通是基于常识、基于谈话背景、基于对世界的了解的。口头交流的形式通常会用尽可能少的信息来传达尽可能多的意思。

当下计算机的最大挑战就是解决歧义的问题。结果就是,它们还需要努力去理解语言的意义。原因是计算机不能充分理解上下文,比如说常识和文化等。

为什么是现在?

最近促使 NLP 兴起的关键驱动力是网络,包括数量巨大的演讲和写作材料。配备多核 CPU/GPU 的现代计算机处理速度非常快,它们可以利用这些大型数据集及过去十年中开发出现的先进的机器学习方法。因此,我们成为了成熟应用自然语言算法环境的见证者。

“现在有大量的基础设施和工具可以供人类用,这在之前是无法获得的。这就像是网络开发时期的框架和工具一样,数量和种类都相当的多。现在的自然语言学习技术,火爆程度与之类似。”——Jimoh Ovbiagele,人工智能律师(ROSS intelligence)

近期 NLP 不断发展的另一个更为微妙的原因是:我们对计算设备的信任和依赖性。

“10年前,人们害怕计算机设备会自己做决策而不管人的想法。现在,同比以往任何时候,人们更希望借助一个拥有100%自主能力的人工智能来发送邮件。”——Sinan Ozdemir,Kylie.ai

我是一个创客,我已经对自然语言算法着迷了。我能做什么?

在 NLP 领域,某些基本技能对学术工作和实际应用工作都非常的有帮助。大学水平的代数和概率基础(如随机变量、分布、主题模型)对于理解这些基本的技能非常必要,可以说是基础。另外,至于为什么计算方法会处于第一位,语言学方面的知识(例如对语义学、语用学和语言的符号的理解)可以为我们提供有用的直觉引导。

除了开发数学和语言的工具,参加一些课程可以推动你……

“……理解如何用不同的方式来表现系统,使之变得更加自动化或者更加具有计算能力。在我大学的时候,我花了很多时间查看了一系列关于数学模型的书,以找到系统比较重要的方面。这是和自己沟通抽象想法的一种方式。”——Jacob Rosen, Legit Patents

最终,它会在帮助你得到某些数据的过程中发挥巨大的作用(如 Twitter 或 Reddit 的帖子),帮你建立起解决文本歧义的直觉。这个未过滤的/非结构化的文本是什么样子的呢?为什么数据要为了这个特殊的平台而进行这种方式的格式化呢?在模型化任何东西之前,试着去理解数据。然后,去构建你的统计模型,继而去优化系统的底层结构。

刚开始的时候,如果想查看更多的工具和资源,可以查看以下网站:

  • Stanford NLP Lectures by Dan Jurafsky and Chris Manning

    https://www.youtube.com/playlist?list=PL6397E4B26D00A269

  • HackerNews: “How Can I Get into NLP?”

    https://news.ycombinator.com/item?id=12916498

  • Intro to the popular Natural Language Toolkit in Python

    http://www.nltk.org/book_1ed/

  • Project: Detectsentiment in movie reviews

    https://www.kaggle.com/c/word2vec-nlp-tutorial/details/part-1-for-beginners-bag-of-words

我需要有博士学位才可在 NLP 领域工作吗?

“对于 NLP 而言,博士学位并不是100%必须的。一般来说,数据科学对世界上的许多人来说是一个新的领域,而且并不是100%都是科学性的。

广泛地讲,我们可以把角色分为两类:分析者和建造者。

分析者拥有更多理论的/统计学的背景。因此,[在 NLP 领域工作的博士]更倾向于从数学的角度分析问题。

建造者工作在流水线上,他会处理所有的文本直到更有用的原型出现。

这两种思维方式间通常会达成某种平衡,尤其当建立一个需要投放到市场上的产品时”——Sinan Ozdemir, Kylie.ai

Okay. 但是如果我获得了博士学位,这又将意味着什么呢?

“有这么一种情况:许多数学家之所以在半个世纪之后才变得有名,是因为有人为那些数学家的工作想出一个实际的应用。今天,学术工作和实际应用之间的转化速度相当快,有时候仅仅在短短的几年内便可实现。学术工作快速大量的涌入将会导致产品级软件的快速涌出。”——Sinan Ozdemir, Kylie.ai

也就是说,深入的研究性工作在推动学术界向前发展的方面发挥着巨大的价值,这类工作对现实世界实质的影响会越来越快。另外,拥有分析直觉的博士,当他们重返工业界时,将会在面向用户的产品方面提供宝贵的观点。

NLP 领域都有哪些大的挑战?

许多实际的挑战使得我们没法完全利用那些为 NLP 而开发的理论框架和计算工具。

为了解决实际的问题,我们需要那些具有代表性的并与问题相关的数据集。当我们不能安全的访问病人的病例时,又怎么能解决最紧迫的健康问题?在不侵犯 Facebook 隐私政策的情况下,我们如何理解社会网络并响应全球新闻呢?

这一刻,有两种可能的方案:

“1) 合作。跟当地拥有数据集的大夫或者医院共同协作。

2) 找到跟你想要的数据集相似的内容。使用 Reddit 公共可用的数据集,来替代 Fackbook。”——Dan Jurafsky, NLP Group @Stanford

另外一个挑战(尤其在工业界)跟度量和分析有关。度量性能的最好的方法是什么?我们怎样建立稳健的反馈机制来量化 NLP 系统的性能?

让我们考虑一下,量化评价聊天机器人所面临的挑战:

“关于我们的系统是如何被使用的这个问题,我们可以猜测一整天,但是关键点会一直处于观察和改进的状态中。一旦我们拥有了相关的数据,我们就可以改进实体抽取和意图匹配的逻辑。”——Taylor Halliday, Mesh Studio

NLP 的未来?

人工智能和深度学习方面的新进展已经完全改变了我们考虑 NLP 的方式。运用深度学习的方法,系统处理的都是纯粹的输入和输出:

“考虑到 Google 搜素结果中的摘要片段。目前,现行的算法仍然使用统计模型来寻找频繁出现的碎片,之后把这些碎片拼接到一起。有了深度学习算法之后,我们就可以使用复杂的神经网络,把文本映射到更高维的向量表示中,重新生成文字序列。现在,所有这些工作都已经在过去的3-4年里实现了。”——Dan Jurafsky, NLP Group @Stanford

听起来激动人心!

我们处在历史上一个非常特别的时期,自然语言接口开始主宰我们与机器的交互方式。随着大的可用的数据集和开源架构的发展,解决 NLP 问题将会更加容易。

最激动人心的部分可能是,NLP 可以从许多不同的角度来解决。与此同时,学术工作与实际产品的相关性不断加大。各种不同的背景和跨学科的方法会带来很多好处,因为来自其他领域的内容——语言学、心理学、甚至是医疗保健或者法律界——在解决特殊问题方面,可以发挥极其重要的作用。

对于人与人之间直接的交流来说,语言可能是最有效、最具直觉性的工具。现在,在 NLP 的帮助下,我们正在致力于拓展交互方式,使其向人机交互的方向发展。

本文作者 Vincent Chen 目前是斯坦福大学学习计算机科学的学生。

本文已获得作者授权,转载需得到本公众号同意。


编译:AI100

原文链接:https://blog.ycombinator.com/how-to-get-into-natural-language-processing/


相关推荐