Python 空间模式

Python 空间模式,python,spacy,Python,Spacy,我正在用Spacy创建一个简单的程序来学习如何使用它。我创建了一个模式来识别用户何时输入“1天”或“3周”,如下所示: [{"IS_DIGIT": True},{"TEXT":"days"}], [{"IS_DIGIT": True},{"TEXT":"day"}]) 但是,我也希望它能够识别用户何时改为“4天”。我如何才能做到这一点?您可以通过以下方式实现: import

我正在用Spacy创建一个简单的程序来学习如何使用它。我创建了一个模式来识别用户何时输入“1天”或“3周”,如下所示:

[{"IS_DIGIT": True},{"TEXT":"days"}],
[{"IS_DIGIT": True},{"TEXT":"day"}])

但是,我也希望它能够识别用户何时改为“4天”。我如何才能做到这一点?

您可以通过以下方式实现:

import spacy
from spacy.matcher import Matcher
nlp = spacy.load("en_core_web_sm")

txt = "This will take 1 day. That will take 3 days. It may take up to 3 weeks."
doc = nlp(txt)

matcher = Matcher(nlp.vocab)

pattern = [{"IS_DIGIT":True},{"LEMMA":{"REGEX":"day|week|month|year"}}]
matcher.add("HERE_IS_YOUR_MATCH",None, pattern)

matches = matcher(doc)

for match_id, start, end in matches:
    print(nlp.vocab.strings[match_id], doc[start:end])
HERE_IS_YOUR_MATCH 1 day
HERE_IS_YOUR_MATCH 3 days
HERE_IS_YOUR_MATCH 3 weeks

好的,谢谢!顺便问一下,你知道我该怎么做才能让模式同时识别“2天”和“4天”吗?你可能希望检查like_numtoken属性