繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM