Python删除重复字符后匹配单词到单词列表

时间:2017-09-10 12:19:07

标签: python regex nlp

我有一个带有正面和负面情绪的单词列表,例如['happy', 'sad']

现在处理推文时,我正在删除这样的重复字符(只允许重复2次):

happpppyyy -> happyy

saaad -> saad

检查是否例如saad是单词列表的一部分现在应该返回True,因为它类似于sad

如何实现此行为?

1 个答案:

答案 0 :(得分:3)

我会构建动态转换单词的正则表达式:

happy

h+a+p+p+y+

将“快乐”字样列表传递给:

import re

re_list = [re.compile("".join(["{}+".format(c) for c in x])) for x in ['happy', 'glad']]

然后对其进行测试(如果有任何正常的正则表达式匹配,则使用any返回True

for w in ["haaappy","saad","glaad"]:
    print(w,any(re.match(x,w) for x in re_list))

结果:

haaappy True
saad False
glaad True