python - 在Python中从句子中删除单词但不删除子词

标签 python string machine-learning nlp recurrent-neural-network

我需要从 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/

相关文章:

python - python中的链表和递归

c - 输入字符串时程序不打印字符

machine-learning - 多类分类的 sklearn 指标

python - 如何正确使用vgg模型的中间层

python - 将结果写入 Excel

python - 初始化 django 模型从那一刻捕获派生属性

c# - 反转字符串中的任何一组数字

c - 为什么程序不读取第二个参数文件?

machine-learning - 将复值图像输入神经网络( tensorflow )

python - 将字典转储为 json 文件作为 UTF-8