对于这种情况,我应该使用 Spacy 命名实体识别吗?
Shoud i use Spacy Named Entity Recognition for this case?
我有一组名字,一组固定的名字,最多可以扩展 50,000 个名字。
"John","Mike","Josh","Peter","Karl".
而且我有一个文件,这个文件是动态的。我需要找到这个文件是否有
是否为预定义名称?
在 spacy nlp 中将一切都定义为实体是正确的方法吗?
Is defining everything as a entity in spacy nlp the right way to do it ?
没有。 NER 不是基于带有标签的大量值,而是作为包含值、标签和值位置的文本样本数据集。通常,机器学习模型然后在数据集上进行训练,找到可以帮助在文档中标记名称的概括。
所以你不能只添加这些名字来训练 NER。您必须提供上下文。
您可以尝试以下简单管道(考虑到这些名称有些常见):
- 将名称加载到集合数据结构中。
- 使用您选择的 NLP 库逐句分析文档。
- 对于每个句子,发现其中的 Person 类型的命名实体。
- 检查每个人是否在姓名集中。
我了解到您的目的是在文档中查找已知名称(从列表中)。
看来命名实体识别对你用处不大。
相反,解决此问题的可扩展方法可以是 Flashtext (https://github.com/vi3k6i5/flashtext)。
我有一组名字,一组固定的名字,最多可以扩展 50,000 个名字。
"John","Mike","Josh","Peter","Karl".
而且我有一个文件,这个文件是动态的。我需要找到这个文件是否有 是否为预定义名称?
在 spacy nlp 中将一切都定义为实体是正确的方法吗?
Is defining everything as a entity in spacy nlp the right way to do it ?
没有。 NER 不是基于带有标签的大量值,而是作为包含值、标签和值位置的文本样本数据集。通常,机器学习模型然后在数据集上进行训练,找到可以帮助在文档中标记名称的概括。
所以你不能只添加这些名字来训练 NER。您必须提供上下文。
您可以尝试以下简单管道(考虑到这些名称有些常见):
- 将名称加载到集合数据结构中。
- 使用您选择的 NLP 库逐句分析文档。
- 对于每个句子,发现其中的 Person 类型的命名实体。
- 检查每个人是否在姓名集中。
我了解到您的目的是在文档中查找已知名称(从列表中)。
看来命名实体识别对你用处不大。
相反,解决此问题的可扩展方法可以是 Flashtext (https://github.com/vi3k6i5/flashtext)。