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

时间:2018-07-23 10:30:30

标签: machine-learning nlp ner

我有一个数据集,其中包含约238583人的名字。名称可以包含多个单词,例如:  Willie Enriquez , James J Johnson, D.J. Khaled。  我的问题是,当它们出现在句子中时,要识别这些名称。我正在尝试创建一个可以识别输入内容是否为名称的机器学习模型。我的麻烦是弄清楚该模型的输入和输出。因为我有很多名字,所以我可以训练一个模型,当输入是一个名字时,该模型可以识别一个名字,但是作为该句子一部分的其他单词呢?该模型还应该能够识别不是名称的单词。假设句子中可以包含其他任何单词,那么用于此目的的理想数据集是什么?在随机单词上训练模型并将其标记为NonNames是否有意义?
(显示名称的整个句子不可用。用户可以绝对键入他/她想要的任何内容)

谢谢。

1 个答案:

答案 0 :(得分:0)

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

您正在尝试解决分类任务,正好是二进制分类任务,您希望在其中区分专有名称(假设来自示例)和其他表达式。

在最一般的情况下,模型的输入是要分类的示例的特征:您应该确定自己认为对区分此类名称有用的特征(例如,单词数,包含大写字母) ,每个单词都大写,包含虚线字母,包含数据集中已有的任何单词,等等。)输出是类,对于非名称/名称,它是0/1。

然后,使用来自您的数据集的正例和取自非名称随机词的负例(即非名称)训练模型。

如果使用者可以输入完整的句子,那么您将需要执行预处理步骤,在其中提取长度为N(单词n-gram)的所有序列,并使用您先前训练的模型分别对每个序列进行分类。