训练模型以识别出现在句子中的名字

Training a model to identify names appearing in a sentence

我有一个包含大约 238583 人姓名的数据集。名称可以包含多个单词,例如: Willie Enriquez , James J Johnson, D.J. Khaled。 我的问题是当它们出现在句子中时识别这些名称。我正在尝试创建一个可以识别输入是否为名称的机器学习模型。我的问题是计算这个模型的输入和输出。因为我有一堆名字,所以我可以训练一个模型,当输入是一个名字时,它可以识别一个名字,但是这个句子中的其他单词呢?该模型还应该能够识别不是名字的单词。假设句子中可以有任何其他词,那么理想的数据集是什么?在随机词组上训练模型并将其标记为 NonNames 是否有意义?
(出现名字的整个句子不可用。用户完全可以输入任何 he/she 想要的内容)

谢谢。

答案的具体内容可能会因您使用的模型而异,但总体思路大致如下:

您正在尝试解决一个 class化任务,准确地说是一个二进制 class化任务,您希望在其中区分专有名称(根据您的示例假设)与其他表达式。

在大多数情况下,模型的输入是您想要 classify 的示例的特征:您应该决定您认为哪些特征有助于区分这些名称(例如,单词数,包含大写字母,每个单词都大写,包含点字母,包含数据集中已有的任何单词,等等...)。输出是 class,即 non-names/names 的 0/1。

然后,您使用您拥有的数据集中的正面示例和从非名称的随机词中提取的负面示例(即非名称)来训练您的模型。

如果用户可以输入完整的句子,那么您将需要执行预处理步骤,提取所有长度为 N 的序列(单词 n-gram),然后 class用您之前训练的方法分别验证每个序列模型.