[英]What is an easy way of removing a list of words from a list of sentences?
我有一个停止词列表,我想从包含句子的列表中的每个字符串中删除。 我写了一段简短的代码,用空字符串替换任何出现的停用词,但很明显,这会删除字符串出现的任何地方 ,即使它位于单词的中间。
# Remove stop words from sentenceList
for i in sentenceList:
for word in stopWords:
i = i.replace(word.rstrip("\n"), "")
我已经搜索了一段时间,但找不到明显的解决方案。
只有当它们被空格包围或者之后有句号或其他标点符号时,最简单的方法是删除字符串?
您可以使用re.sub
和word边界。 字边界将确保仅在单词字符(大致从z到0,从0到9和下划线)和非单词字符(之前未提及的所有内容)之间发生匹配。
i = re.sub(r"\b" + re.escape(word.rstrip("\n")) + r"\b", "", i)
我正在使用re.escape
,以防你的单词中有正则表达式元字符,但如果你的单词只有字母,那就不太可能了,但更好的是安全而不是抱歉。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.