IN 属性中具有多项条目的模式

  • 本文关键字:模式 属性 IN python nlp spacy
  • 更新时间 :
  • 英文 :


>我正在使用规则扩展一个spaCy模型。在浏览文档时,我注意到IN属性,该属性用于将模式映射到属性字典。这很棒,但它仅适用于单个令牌。

例如,此模式:{"label":"EXAMPLE","pattern":[{"LOWER": {"IN": ["such as", "like", "for example"]}}]}仅适用于术语like,而不适用于其他术语。

对于多术语属性,实现相同结果的最佳方法是什么?

这取决于预期模式的复杂程度,但PhraseMatcher可以使用属性LOWER处理上述类似情况:

import spacy
from spacy.matcher import PhraseMatcher
nlp = spacy.blank("en")
pmatcher = PhraseMatcher(nlp.vocab, attr="LOWER")
phrases = ["such as", "like", "for example"]
pmatcher.add("EXAMPLE", [nlp(x) for x in phrases])
assert pmatcher(nlp("Things Such As Books")) == [(15373972490796046842, 1, 3)]