Nlp 如何使空间规则库只匹配给定模式之间的内容
我有以下代码:Nlp 如何使空间规则库只匹配给定模式之间的内容,nlp,spacy,matcher,information-extraction,Nlp,Spacy,Matcher,Information Extraction,我有以下代码: doc = nlp("My big pencil is red. Your pencil is green.") matcher = Matcher(nlp.vocab) matcher.add("pencil", None, [ {"LEMMA": "-PRON-"}, {"OP": "*"}, {"LEMMA": "pencil"}, ]) matches = matcher(doc) for (entity_key, start_token, end
doc = nlp("My big pencil is red. Your pencil is green.")
matcher = Matcher(nlp.vocab)
matcher.add("pencil", None, [
{"LEMMA": "-PRON-"},
{"OP": "*"},
{"LEMMA": "pencil"},
])
matches = matcher(doc)
for (entity_key, start_token, end_token) in matches:
print(start_token, end_token, doc[start_token:end_token])
当我运行它时,我得到:
0 3 My big pencil
6 8 Your pencil
0 8 My big pencil is red. Your pencil
03我的大铅笔
你的铅笔
我的大铅笔是红色的。你的铅笔
但是,我只希望它返回开始标记和结束标记的匹配:
0 3 My big pencil
6 8 Your pencil
03我的大铅笔
你的铅笔
有没有办法限制matcher只返回起始标记和结束标记之间的所有内容?第三个匹配是模式
-PRON-*pencil
的有效匹配
由于Matcher
没有一个选项使*
不贪婪,因此您需要过滤返回的匹配项以获得所需的结果