我需要从 Python 中的句子(给定字符串)中删除给定的单词向量。
问题是我想精确删除单词,但不删除子字符串或子单词。
注意:我不能假设单词之前或之后有空格
我尝试了 .replace(word,"")
函数,但不起作用
示例:s =“我在家,我将通过网络摄像头通话工作”
当我这样做时s.replace("am","")
输出:我在家,我将通过网络调用工作
也许可以帮助标记化?
最佳答案
您可以使用正则表达式 re.sub
带有单词边界 \b
字符:
>>> import re
>>> s = "I'am at home and i will work by webcam call"
>>> re.sub(r"\bam\b", "", s)
"I' at home and i will work by webcam call"
对于单词列表,您可以使用循环,或使用 |
从多个单词构建析取,例如“am|和|i”
。可以选择使用 re.I
标志来忽略大写/小写:
>>> words = ["am", "and", "i"]
>>> re.sub(r"\b(%s)\b" % "|".join(words), "", s, flags=re.I)
"' at home will work by webcam call"
关于python - 在Python中从句子中删除单词但不删除子词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56732964/