我有一个非常简单的用例,我需要在两个单词的序列中添加NER注释,其中第一个单词是可选的。
例如,我需要将“净收入”和“收入”短语都注释为相同的NE类型
使用普通的正则表达式,以下表达式可以工作:
([Nn]et\s)?[Ii]ncome
但是,在RegexNER中它不起作用。
上述正则表达式在RegexNER中的作用是“收入”一词在两个序列中都有注释,但“净”这个词没有在“净收入”序列中注释,这不是我需要的结果。
这是预期的,因为知道RegexNER在一系列标记上匹配一系列正则表达式,而不是在单个字符串上匹配单个正则表达式。
但是,以下语法也不起作用:
([Nn]et)? [Ii]ncome
这个表达式的效果是序列“净收入”完全注释,但只是“收入”根本没有注释。
这是意料之外的,因为这似乎是一个非常简单的用例
我尝试了不同的方法将初始令牌表示为一个组,并尝试了不同的量词 - 它仍然不起作用。
任何有关使第一个令牌成为可选项的帮助将不胜感激。
答案 0 :(得分:0)
让我回答我自己的问题。这不是一个直接的解决方案,而是一种解决方法。
以下表达式可以使用,但仅适用于 TokensRegex ,而不适用于RegexNER:
/[Nn]et/? /[Ii]ncome/
我不确定为什么会这样,也许RegexNER不支持令牌级别的量词,就像TokensRegex一样。