使用 Spacy 模式匹配器的复杂(重复)规则

Complex(repeating) rule using Spacy Pattern Matcher

我想使用 spaCy 的模式匹配器匹配重复模式。以下是我要匹配的模式: My account number is: 2893-26492-634-0924-63. Some more text here. 基本上,尝试匹配以下正则表达式:\d+(-\d+)*

matcher = Matcher(nlp.vocab)
matcher.add('NUMBER_MERGE', None, [ {'IS_DIGIT': True}, {'IS_PUNCT': True}, {'IS_DIGIT': True}, {'IS_SPACE':True}])

这与 342-234 Text 匹配,但与 342-234-958 Text 匹配。

我没有找到任何在一组运算符上应用量词的文档。任何帮助将不胜感激。

您可以直接使用正则表达式作为模式。

matcher.add('NUMBER_MERGE', None, [{"TEXT": {"REGEX": "\d+(-\d+)*"}}])