如何使spacy规则库仅匹配给定模式之间的内容

问题描述 投票:0回答:1

我有以下代码:

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我的大铅笔6 8你的铅笔0 8我的大铅笔是红色的。你的铅笔

但是,我只希望它返回开始和结束标记的匹配项:

0 3我的大铅笔6 8你的铅笔

是否有一种方法可以限制匹配器仅返回起始标记和结束标记之间的所有内容?

nlp spacy matcher information-extraction
1个回答
0
投票

第三次匹配是模式-PRON- * pencil的有效匹配。

由于Matcher没有使*处于非贪婪状态的选项,因此您需要过滤返回的匹配项以获得所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.