У меня есть код, который выглядит следующим образом:
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] или что-то в этом роде, но это жесткое программирование того, как далеко вперед идти, и я не буду знать, как далеко я должен расширить индекс.
Спасибо