引用 entity_ruler 中的其他实体
Reference other entities in entity_ruler
我正在尝试使用 entity_ruler 构建一个自定义的“命名实体”列表,然后是 APIs
但是我遇到了一个问题:我可以构建一个命名实体来引用另一个也在 entity_ruler 中定义的实体吗?
举个例子,假设我想将实体 Agreement
构建为一些固定表达式,将实体 AgreementDate
构建为 Agreement
后跟另一个表达式:
以下片段可以正确设置 spacy 吗?因为输出不是我所期望的。
patterns = [
{'label': 'Agreement', 'pattern': [{'LOWER': 'license agreement'}]},
{'label': 'Agreement', 'pattern': [{'LOWER': 'agreement'}]},
{'label': 'Agreement', 'pattern': [{'LOWER': 'commencement'}]},
{'label': 'Agreement', 'pattern': [{'LOWER': 'parties'}]},
{'label': 'AgreementDate', 'pattern': [{'ENT_TYPE': 'Agreement'}, {'LOWER': 'date'}]},
]
nlp = spacy.load('en_core_web_sm')
entity_ruler = nlp.add_pipe('entity_ruler', config={
'validate': True,
'overwrite_ents': True
})
entity_ruler.initialize(lambda: [], nlp=nlp, patterns=patterns)
for ent in nlp('''Commencement Date
license agreement date''').ents:
print(f'{ent.text:40} {ent.label_:40}')
Commencement Agreement
agreement Agreement
实体标尺图案仅与实体标尺组件启动前设置的注释相匹配 运行,但如果将最终图案移至第二个实体标尺(使用自定义组件),则可以执行此操作姓名)。
我正在尝试使用 entity_ruler 构建一个自定义的“命名实体”列表,然后是 APIs
但是我遇到了一个问题:我可以构建一个命名实体来引用另一个也在 entity_ruler 中定义的实体吗?
举个例子,假设我想将实体 Agreement
构建为一些固定表达式,将实体 AgreementDate
构建为 Agreement
后跟另一个表达式:
以下片段可以正确设置 spacy 吗?因为输出不是我所期望的。
patterns = [
{'label': 'Agreement', 'pattern': [{'LOWER': 'license agreement'}]},
{'label': 'Agreement', 'pattern': [{'LOWER': 'agreement'}]},
{'label': 'Agreement', 'pattern': [{'LOWER': 'commencement'}]},
{'label': 'Agreement', 'pattern': [{'LOWER': 'parties'}]},
{'label': 'AgreementDate', 'pattern': [{'ENT_TYPE': 'Agreement'}, {'LOWER': 'date'}]},
]
nlp = spacy.load('en_core_web_sm')
entity_ruler = nlp.add_pipe('entity_ruler', config={
'validate': True,
'overwrite_ents': True
})
entity_ruler.initialize(lambda: [], nlp=nlp, patterns=patterns)
for ent in nlp('''Commencement Date
license agreement date''').ents:
print(f'{ent.text:40} {ent.label_:40}')
Commencement Agreement
agreement Agreement
实体标尺图案仅与实体标尺组件启动前设置的注释相匹配 运行,但如果将最终图案移至第二个实体标尺(使用自定义组件),则可以执行此操作姓名)。