掌握自然语言处理(NLP)工作面试

什么是自然语言处理(NLP),在与NLP相关的工作面试中,可以期望哪些与NLP相关的问题?

NLP并不是所有数据科学家都必须使用和了解的东西。你是否需要了解NLP,取决于面试你数据科学职位的公司。如果你对NLP不感兴趣,那么你至少要知道它是什么,这样你就可以在职业生涯中避免它。

如果你对NLP感到好奇并愿意学习更多,那么了解可能会被问到的面试问题将会对你有所裨益。

什么是NLP?

不,它不是最近流行起来的伪科学心理学方法。他们称之为神经语言程序。

我们的NLP也越来越受欢迎,但它指的是自然语言处理。

正如维基百科所描述的那样,自然语言或普通语言是任何通过使用和重复而在人类中自然演化的语言,而没有意识规划或预谋。

上述定义中的关键词是“人类”。在NLP中,有一个额外的关键词:计算机。从中得出的定义是NLP处理教会计算机如何理解自然语言的问题。由于它是一台计算机,这种理解意味着处理和分析以不同数据格式存储的自然语言数据。

为此,NLP结合了人工智能、计算机科学和语言学的知识。

NLP的用途是什么?

NLP正成为我们日常生活的一个特征。当我写前一句话时,谷歌的智能撰写建议了短语“日常生活”。我接受了。因为这就是我想写的。

所以这是它的一个用途:自动校正、自动完成和拼写检查。 NLP软件扫描文本以寻找语法和拼写错误,纠正它们或给出更好的纠正建议。还有一些拼写检查器可以“理解”整个句子的语法、上下文和意义。基于此,它们建议在与您的文本目标一致的语句中进行更正或更好的措辞。

语言翻译是NLP的另一个用途。每当你在外国旅行时,你可能会使用翻译工具,比如谷歌翻译。此外,越来越多的翻译工具在社交媒体上使用,比如Facebook、Instagram和Youtube。

识别和生成语音也是NLP的用途之一。想想谷歌助手、Windows语音识别、Dragon、Siri、Alexa或Cortana;当你说话时,它们似乎都能听懂你(或多或少)。根据你告诉他们的内容,它们将执行某些操作,比如浏览互联网、输入你的话或播放你最喜欢的歌曲。其中一些工具甚至可以回复你,即生成语音。

NLP还可以解读文本的“感觉”。换句话说,它们不仅可以理解文字的字面意义,还可以检测文本背后的情感。这意味着理解情绪(快乐、愤怒、扰乱、中立…)、讽刺、双关语、隐喻和情境中的表达方式。这被称为情感分析。想象一下通过分析客户的评论和评价来理解社交媒体的评论,并删除那些违反服务条款的评论或通过分析他们的评论和评价来获得客户的满意度。

NLP在在线营销中得到广泛应用。你搜索的关键词与公司、产品和广告的关键词匹配。所以当你开始看到一款你刚刚搜索过的产品的广告时,不要担心。这是NLP和定向广告在起作用。

NLP与数据科学有什么关系?

数据科学家可能对自然语言本身不感兴趣。在其基础上添加计算机处理——自然语言变成数据——也许会引起数据科学家的注意。

也许这对于数据科学家来说还不够吸引人,但是了解机器学习(ML)与NLP重叠并经常在NLP中使用将会改变这一点。

在上述所有NLP的用途中,通常都涉及到ML。而ML无疑是深度涉足数据科学领域的一个领域。

当谈到ML时,通常有一个监督和无监督的ML之间的区别。

NLP中最常用的监督学习模型是:

  • 支持向量机(SVMs)
  • 贝叶斯网络
  • 最大熵
  • 条件随机场
  • 神经网络

无监督学习在NLP中并不常见,但仍然使用了一些技术:

  • 聚类
  • 隐含语义索引(LSI)
  • 矩阵分解

在每个ML模型和算法背后,都有潜在的统计概念。

这两个领域在所有寻找数据科学家的严肃公司中都受到了严格的测试。处理NLP的公司也是如此。

对于NLP来说,可能具有特定的术语,您需要了解。

将我在这里提到的一切结合起来,形成您的面试准备的三个主要主题。

NLP面试问题

所有之前的谈话顺利地引导到了NLP面试问题的类别:

  1. 通用和NLP术语问题
  2. 统计问题
  3. 建模问题

“我不会在本文中涵盖编码问题。众所周知,数据科学家通常必须是熟练的编码人员,尤其是在SQL和Python方面。NLP的数据科学家也是如此,因此您应该为面试的编码部分做好准备。”

1. 通用和NLP术语面试问题

这些NLP面试问题涉及您对NLP是什么,它是如何工作的以及特定于NLP的技术概念的了解。

这是最不可转移的数据科学知识。换句话说,如果您以前没有使用NLP工作过,您以前的数据科学知识不会对您在此处帮助太大。因此,如果您没有使用NLP的工作经验,请非常认真地对待这些问题,并为面试认真准备。

以下是一些问题示例:

  1. 自然语言处理(NLP)项目的生命周期中有哪些阶段?
  2. 一些常见的NLP任务有哪些?
  3. 词干提取和词形还原的区别是什么?
  4. 什么是信息提取?
  5. NLP中的情感分析是什么?
  6. 列出一些用于NLP的开源库。

2. 统计面试问题

统计问题测试您对统计概念的了解,这些概念通常作为数据科学家在一般情况下和在NLP项目上经常使用。

以下是一些示例:

  1. 贝叶斯统计与频率统计:贝叶斯统计与频率统计之间的区别是什么?
  2. 什么是隐马尔可夫随机场?
  3. 皮尔森相关系数:证明为什么皮尔森相关系数介于-1和1之间。
  4. NLP中的困惑度是什么意思?

3. 建模面试问题

NLP面试问题的第三个类别涉及ML和模型。这可能涉及到在NLP中最常用的ML算法(如上所述)以及在NLP中使用的一些其他特定技术和方法。

以下是一些示例:

  1. GPT和GPT-2之间有什么区别?
  2. 您喜欢功能提取还是微调?您如何决定?您会将BERT用作特征提取器还是微调它?
  3. 什么是遮罩语言建模?
  4. PCA和LDA/QDA:PCA和LDA/QDA之间的关系是什么?
  5. 朴素贝叶斯分类器:朴素贝叶斯分类器的“朴素”在哪里?

摘要

自然语言处理是一个越来越多地应用于日常生活的领域。当前的应用包括拼写检查器、自动完成工具、翻译器、语音识别和生成软件。NLP 也被广泛应用于社交媒体监测和在线营销。

NLP 与机器学习重叠,因此许多 ML 知识也适用于 NLP。但不要过于自满!NLP 是一个广泛而特定的领域,需要了解非常具体的术语、技术和常用方法。

一般来说,面试问题类型可以分为一般的 NLP 问题、统计问题和建模问题。

我上面给你的例子和资源只是一个开始。但即使这些也足以确保你无畏地去参加 NLP 工作面试。

Nate Rosidi 是一位数据科学家和产品策略家。他还是一名兼职教授,教授分析学,并是 StrataScratch 的创始人,该平台通过提供来自顶级公司的真实面试问题来帮助数据科学家准备面试。在 Twitter 上与他联系:StrataScratch 或 LinkedIn。