NLP 面试编码任务

数据挖掘 分类 nlp 余弦距离
2022-03-14 21:30:18

请评论我为我正在寻找的数据科学 NLP 职位的候选人准备的以下 NLP 面试编码任务。目标是检查候选人对 NLP 中向量文本表示的基本作用的理解,以及检查候选人编码技能及其使用 Numpy 提供的向量化优化计算的能力。

我特别需要您对以下方面的意见:

  1. 任务明确吗?
  2. 在在线面试期间,任务是否足以在 20 -30 分钟内从头开始编写一个粗略的解决方案?
  3. 您会将这项任务分配给哪个级别——初级、中级或高级 DS NLP 工程师?

任务:

# Write from scratch (you can only use Numpy arrays) 
# very basic and simple algorithm to classify sentences:

test1 = "cats like meat and fish is best for cats"
test2 = "train your mind reading good fiction, thrillers and other books"

# Use these sentences to train your classifier:

# Class 1
sent1 = "meat is a good food for all dogs and cats , dogs also like apples"

# Class 2
sent2 = "reading fiction books is a good food for mind and some thrillers are not"

为了解决这个任务,候选人应该从头开始编写计数向量器和余弦相似度函数。使用这些候选函数可以找到测试句子与类 1 和 2 的相似性,从而对测试句子进行分类。规范化向量将是候选人的奖励。

我花了 20 分钟来编写、测试和描述这个任务。不确定 NLP 职位候选人可能需要多少时间。

2个回答
  1. 是的,任务很明确。也许一个建议是从构建分类器更改语言以提供更多详细信息。创建一个基于规则的分类器,计算句子和所有给定类之间的余弦相似度,并将其分配给具有最大余弦相似度的类

  2. 这将是一个很好的练习和测试编码以及对候选人的一般理解。如果一个人能够做到这一点的 90%,那么他们应该是一个很好的候选人

  3. 对于中级和高级DS工程师来说应该已经足够了。

  4. 如果你想让它复杂化,你可以让他们编写 TF-IDF 代码而不是 count vectoriser

任务对我来说不是很清楚。大多数情况下,我无法判断这个项目是否是完全独立的。

  1. 'sent1' 和 'sent2' 这两个句子是否旨在成为创建词向量的整个训练语料库?还是打算为此使用外部数据集?

  2. 'test1' 和 'test2' 这两个句子是整个测试集吗?还是分类器应该适用于可能与训练单词没有共同点的句子?