开始使用免费开始使用

在 spaCy 中创建自定义命名实体

如果 spaCy 内置的命名实体不够用,您可以使用 spaCyEntityRuler() 类自行创建。

EntityRuler() 允许您创建自定义实体并将其加入 spaCy 流水线。

首先创建一个 EntityRuler() 实例,并将当前流水线 nlp 传入。

随后在该实例上调用 add_patterns(),传入包含要打上实体标签的文本 pattern 的字典。

设置好模式后,您可以使用 add_pipe() 将其添加到 nlp 流水线中。

鉴于 Acme 是一家科技公司,您决定将模式 "smartphone" 标注为 "PRODUCT" 实体标签。

spaCy 已导入,并且已存在一个 doc,其中包含来自 call_4_channel_2.wav 的转写文本(文件)。

本练习是课程的一部分

Python 语音语言处理

查看课程

练习说明

  • spacy.pipeline 导入 EntityRuler
  • "smartphone" 作为 "pattern" 键的取值。
  • EntityRuler() 实例 ruler 添加到 nlp 流水线。
  • 打印 doc 中包含的实体属性。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import EntityRuler class
from spacy.pipeline import ____

# Create EntityRuler instance
ruler = EntityRuler(nlp)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Update existing pipeline
nlp.add_pipe(____, before="ner")

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
编辑并运行代码