Spacy \添加轻松模式与允许的术语之间

时间:2017-03-20 12:22:10

标签: nlp spacy

如何编写允许介于两者之间的单词的正则表达式 赶上:"你好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)

1 个答案:

答案 0 :(得分:1)

如果你真的不关心中间IS_ALPHA个单词的数量,你可以使用*量词,这似乎是用"OP"键指定的:< / p>

matcher.add_pattern("my regex1", [{LOWER: "hello"},
                      {"OP": "*", IS_ALPHA: True}, {LOWER: "world"}])

请参阅源代码中的test_matcher.py获取语法,并the spaCy docs查看可用的量词。