如何在Spacy中标记不包含特定符号‘/’的词语?
在Spacy中使用正则标记不含斜杠的目标词语
要实现标记包含"word"但任意位置不含"/"的词语,你需要调整正则表达式,同时满足两个核心条件:一是词语必须包含目标子串"word",二是整个词语中不能出现斜杠"/"。
原正则^.*(word).*?未对斜杠做限制,所以无法排除带"/"的词语。修改后的正则表达式如下:
^[^/]*word[^/]*$
正则逻辑说明:
^和$锁定匹配范围为整个词语,避免部分匹配[^/]*匹配任意数量的非斜杠字符,从根本上排除词语中出现"/"的可能word指定必须包含的目标子串
对应的Spacy匹配规则代码修改为:
[{"lower": {"regex": "^[^/]*word[^/]*$"}}]
验证你的示例场景:
- 'subwordw':不含斜杠且包含"word",符合正则规则,会被标记
- 'subword/w':包含斜杠,不满足
[^/]*的限制,不会被标记
内容的提问来源于stack exchange,提问作者Barbara
相关产品推荐
相关产品推荐

