我有一个停用词列表,我想从包含句子的列表中的每个字符串中删除这些停用词。我编写了一小段代码,用空白字符串替换任何出现的停用词,但是,显然,这会删除它出现的任何地方的字符串,即使它位于单词的中间。
# Remove stop words from sentenceList
for i in sentenceList:
for word in stopWords:
i = i.replace(word.rstrip("\n"), "")
我已经搜索了一段时间,但找不到明显的解决方案。
仅当字符串被空格包围或后面有句号或其他标点符号时删除字符串的最简单方法是什么?
最佳答案
您可以使用re.sub
和单词边界。单词边界将确保匹配仅发生在单词字符(大致为 a 到 z、0 到 9 和下划线)和非单词字符(之前未提及的所有内容)之间。
i = re.sub(r"\b" + re.escape(word.rstrip("\n")) + r"\b", "", i)
如果您的单词中包含正则表达式元字符,我将使用 re.escape
,尽管如果您的单词仅包含字母,则不太可能,但最好还是小心谨慎。
关于python - 从句子列表中删除单词列表的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780880/