我的代码如下所示:
data = u"Species:cat color:orange and white with yellow spots number feet: 4"
from spacy.matcher import PhraseMatcher
import en_core_web_sm
nlp = en_core_web_sm.load()
data=data.lower()
matcher = PhraseMatcher(nlp.vocab)
terminology_list = [u"species",u"color", u"number feet"]
patterns = list(nlp.tokenizer.pipe(terminology_list))
matcher.add("TerminologyList", None, *patterns)
doc = nlp(data)
for idd, (match_id, start, end) in enumerate(matcher(doc)):
span = doc[start:end]
print(span.text)
我希望能够抓住一切,直到下一场比赛。所以比赛看起来像这样:
种类:猫
颜色:橙色和白色带黄色斑点
英尺数:4
我试图延长跨度,但我不知道如何在下一场比赛前停止。我知道我可以让它像 span = doc[start:end+4] 或其他东西,但这是硬编码要走多远,我不知道应该扩展索引多远。
谢谢