我有一个包含两列的数据集。第一列有一些文本(新闻文章),第二列包含那些新闻文章中出现的人名(不完全是英文名字)(第一列)。我尝试使用 Spacy 构建自定义命名实体识别器,但它不起作用。我可以使用深度学习方法来识别看不见的新闻文章中的名字吗?(测试数据)
使用深度学习的自定义命名实体识别
数据挖掘
机器学习
Python
深度学习
命名实体识别
2022-03-14 18:34:13
3个回答
CNN 和 RNN 在自定义 NER 中非常流行。我建议你先尝试实现 CNN,然后再实现 RNN。此外,当我进行自定义 NER 时,我发现对于我的数据集堆叠效果非常好。我使用了随机森林、XGBoost 和线性回归。
命名实体识别 (NER)是关于识别 NE 在文本中的位置。这意味着每个实例必须代表文本中的特定位置,NER 将预测该位置是否对应于 NE。目前您的数据没有以这种方式格式化,因此它不起作用也就不足为奇了:在整个文本的矢量表示中,模型找不到识别 NE 所需的指示类型。
建议你先看看主流标注器的表现。即:spacy, nltk, stanfordnlp. 检查他们在您的测试集上找到正确名称集的能力。
或者,您必须制作自己的标记器。任何 NER 标记器基本上都是一个带有处理输入文本的 RNN 或 CNN 层的分类器。输出密集层具有与可用的类一样多的节点。另一种选择是下载一些预训练模型。例如,Huggingface 的transformers库允许您下载大量基于 Transformer 的架构(如 BERT),然后您可以针对您的特定任务进行微调。
但是,构建自己的模型需要大量工作。如果你发现主流分类器做得很好,而你没有太多时间,那就去使用那些工具。祝你好运!
其它你可能感兴趣的问题