我从StackOverflow获得了一个用于删除停用词的正则表达式:
def killStopWords(stringsList):
pattern = re.compile("\\b(a|y|o|un|una|unas|unos|que|k|d|el|la|los|les|las|pq|xq|en|como|me|con|de)\\W", re.I)
return [pattern.sub("", aString) for aString in stringsList]
但是我注意到它在某些情况下无法正常工作,例如:
test = killStopWords(['alegría es un amor', 'la papelería afición con ilusión'])
for k in test:
print k
将打印:
alegríes amor
papeleríafición ilusión
和不:
alegría, es, amor, papelería, afición, ilusión
应该
看起来它删除了包含重音符号
的字符答案 0 :(得分:2)
看起来你想要将整个单词与你的模式匹配而不是单词的一部分是否正确?
如果是这样,那么您可以使用以'字边界开头和结尾的模式'即\ b。
类似的东西:
pattern = re.compile(r'\b(un|una)\b')
答案 1 :(得分:0)
剥离空格,加入,
。
print ", ".join(k.strip() for k in (l.split() for l in test))