首页 > 解决方案 > 在 MATCHER 规则中设置标签?

问题描述

使用 Matcher() 规则,有一种方法可以在规则 fe 中直接在令牌上标记/设置“标签”:

[{ 'DEP' : 'ROOT', 'SET_LABEL' : 'ACTION' }],
......... many more ....

然后在python代码中:

if token.label == 'ACTION' : ........

如果您有更多的模式每个人都使用不同的 LABEL,那么使用 on_match 是没有用的,因为没有反馈发生了哪个 MATCH !?

理想的东西将是一种后spacy“解析器”,它作用于spacy提供的标记信息。

标签: pythonnlpspacy

解决方案


您应该进一步阅读文档,但基本上您可以拥有一个名为 patterns.jsonl 的文件,其中包含如下所示的规则:

{"label": "LOGGIA", "pattern": [{"LOWER":"loggia"}]}

然后您可以使用以下命令访问标签:

for ent in doc.ents :
        prediction.update({ent.label_ : ent.text})

如果您只想要标签而不是其他标签,则可以 nlp.disable_pipes('ner') 。看看这个https://course.spacy.io/和 spacy 不会有秘密。希望这是你需要的


推荐阅读