从句子列表中删除单词列表的简单方法是什么?

时间:2014-07-16 12:32:46

标签: python regex

我有一个停用词列表,我想从包含句子的列表中的每个字符串中删除。我写了一段简短的代码,用空字符串替换任何出现的停用词,但显然,这会删除字符串它出现的,即使它位于单词的中间。

# Remove stop words from sentenceList
for i in sentenceList:
    for word in stopWords:
        i = i.replace(word.rstrip("\n"), "")

我已经搜索了一段时间,找不到明显的解决方案。

当它们被空格包围或者之后有句号或其他标点符号时,删除字符串 的最简单方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用re.sub和字边界。字边界将确保仅在单词字符(大致从z到0,从0到9和下划线)和非单词字符(之前未提及的所有内容)之间发生匹配。

i = re.sub(r"\b" + re.escape(word.rstrip("\n")) + r"\b", "", i)

如果你的单词中有正则表达式元字符,我正在使用re.escape,但如果你的单词只有字母,那就不太可能了,但最好是安全而不是抱歉。