我有条短信
ADDRESS_ID NAME ADDRESS CATEGORY_ID FIRST_NAME DAILY_ACTIVE
我想找出代币
NAME ADDRESS FIRST_NAME
我想忽略所有带有“ID”,“ACTIVE”等的令牌。
所以我用了spacy-
rstrip()从一个文件中阅读所有允许的令牌。例如- Name,Address
newPattern = [{"LOWER": line.rstrip()}]
newPattern2 = [{"LOWER": {"NOT_IN":["ID"], "REGEX": "[_]{}".format(line.rstrip())}}]
newPattern3 = [{"LOWER": {"REGEX": "{}[_]".format(line.rstrip()), "NOT_IN":["ID"]}}]
它是这样发出的
ADDRESS_ID
NAME
ADDRESS
FIRST_NAME
但是我无法忽略带有ID的令牌。我如何才能实现这一点?
2条答案
按热度按时间f3temu5u1#
我不知道
spacy
,但我认为你可以尝试在你的正则表达式中使用word boundary。希望下面的片段可以给予你在spacy
中实现它的想法。参见演示here
x3naxklr2#
如果您的实际模式类似于
"ID"
:LOWER
将再次匹配输入标记的小写形式,因此您还需要在模式字符串中使用小写,例如{"LOWER": {"NOT_IN": ["id"]}}
。{"LOWER": {"NOT_IN": ["ID"]}}
将匹配每个标记,因为没有小写标记是"ID"
。