Spacy \添加宽松的模式,允许条款之间
Spacy \ add relaxed pattern with allowed terms between
我如何编写允许中间单词的正则表达式
赶上:"hello bla bla bla world"(不同数量的 bla 可以出现在任何地方) - 我需要手动编写 IS_ALPHA 吗?我不知道高级的非重要术语的数量...
import spacy
from spacy.matcher import Matcher
from spacy.attrs import POS, LOWER, IS_PUNCT, IS_ALPHA
nlp = spacy.load('en')
matcher = Matcher(nlp.vocab)
text=u"hello bla bla bla world"
matcher.add_pattern("my regex1", [{LOWER: "hello"}, {IS_ALPHA: True}, {LOWER: "world"}])
doc = nlp(text)
matches = matcher(doc)
print(matches)
如果您真的不关心中间的 IS_ALPHA
个单词的数量,您可以使用 *
量词,它似乎是用 "OP"
键指定的:
matcher.add_pattern("my regex1", [{LOWER: "hello"},
{"OP": "*", IS_ALPHA: True}, {LOWER: "world"}])
有关可用的量词,请参阅 test_matcher.py from the source for the syntax and the spaCy docs。
我如何编写允许中间单词的正则表达式 赶上:"hello bla bla bla world"(不同数量的 bla 可以出现在任何地方) - 我需要手动编写 IS_ALPHA 吗?我不知道高级的非重要术语的数量...
import spacy
from spacy.matcher import Matcher
from spacy.attrs import POS, LOWER, IS_PUNCT, IS_ALPHA
nlp = spacy.load('en')
matcher = Matcher(nlp.vocab)
text=u"hello bla bla bla world"
matcher.add_pattern("my regex1", [{LOWER: "hello"}, {IS_ALPHA: True}, {LOWER: "world"}])
doc = nlp(text)
matches = matcher(doc)
print(matches)
如果您真的不关心中间的 IS_ALPHA
个单词的数量,您可以使用 *
量词,它似乎是用 "OP"
键指定的:
matcher.add_pattern("my regex1", [{LOWER: "hello"},
{"OP": "*", IS_ALPHA: True}, {LOWER: "world"}])
有关可用的量词,请参阅 test_matcher.py from the source for the syntax and the spaCy docs。