Python 如何删除字母之间的所有空格?
我的文本中有这样的词:a n a l I z e,c l a s等等,但也有正常的词。我需要删除单词字母之间的所有空格Python 如何删除字母之间的所有空格?,python,regex,python-3.x,Python,Regex,Python 3.x,我的文本中有这样的词:a n a l I z e,c l a s等等,但也有正常的词。我需要删除单词字母之间的所有空格 reg_let=re.compile('\s[А-Яа-аa-zA-Z](\s'),re.DOTALL) text='this正是我所需要的 text=re.sub(reg_let',text) 文本 输出: “Tiis exactlyhtneeded”(虽然我需要-“这正是我所需要的)据我所知,没有简单的方法可以做到这一点,因为你最大的问题是区分有意义的单词,换句话说,你需
reg_let=re.compile('\s[А-Яа-аa-zA-Z](\s'),re.DOTALL)
text='this正是我所需要的
text=re.sub(reg_let',text)
文本
输出:
“Tiis exactlyhtneeded”(虽然我需要-“这正是我所需要的)据我所知,没有简单的方法可以做到这一点,因为你最大的问题是区分有意义的单词,换句话说,你需要一些语义引擎来告诉你哪个单词对句子有意义 我唯一能想到的是一个单词嵌入模型,没有任何类似的东西,你可以清除任意多的空格,但你不能区分单词,这意味着你永远不知道哪些空格不能删除
如果有一个我不知道的更简单的方法,我希望有人能帮我解决问题。据我所知,没有简单的方法可以做到这一点,因为你最大的问题是区分有意义的单词,换句话说,你需要一些语义引擎来告诉你哪个单词对句子有意义 我唯一能想到的是一个单词嵌入模型,没有任何类似的东西,你可以清除任意多的空格,但你不能区分单词,这意味着你永远不知道哪些空格不能删除
如果有一个我不知道的更简单的方法,我希望有人能帮我解决这个问题。这个问题没有简单的解决办法 我能想到的唯一解决办法是用字典检查单词是否正确(出现在英语字典中) 但即使这样做,你也会得到很多误报。例如,如果我得到文本: a n n a s 文字:
- a
- 一个
- 作为
机器学习可能是一种方法,但没有完美的解决方案。这个问题没有简单的解决方案 我能想到的唯一解决办法是用字典检查单词是否正确(出现在英语字典中) 但即使这样做,你也会得到很多误报。例如,如果我得到文本: a n n a s 文字:
- a
- 一个
- 作为
机器学习可能是一种方法,但没有完美的解决方案。不是答案,但带空格的单词看起来像是过程中某个地方出现编码错误的结果,例如从UTF-8返回ASCII。我想不出一个简单的方法来完成你在这里提出的建议。Wy不应该是
吗?这是完全必要的?问题的标题是“如何删除字母之间的所有空格?”但从你的输出来看,你不被允许删除字母之间的所有空格。我甚至不知道这是否可能。假设输入是I w a n t o e a a n d w I c h
-您的脚本如何知道sandwich
是一个单词而asandwich
不是?或者是oeatasa
?我认为你可能必须硬编码有问题的单词,例如,CLAS
->class
。否则逻辑会变得非常疯狂。最好添加更多具有预期输出的示例。不是答案,但带空格的单词看起来像是过程中某个地方发生的编码错误的结果,例如从UTF-8返回ASCII。我想不出一个简单的方法来完成你在这里提出的建议。Wy不应该是吗?这是完全必要的?问题的标题是“如何删除字母之间的所有空格?”但从你的输出来看,你不被允许删除字母之间的所有空格。我甚至不知道这是否可能。假设输入是I w a n t o e a a n d w I c h
-您的脚本如何知道sandwich
是一个单词而asandwich
不是?或者是oeatasa
?我认为你可能必须硬编码有问题的单词,例如,CLAS
->class
。否则逻辑会变得非常疯狂。最好添加更多具有预期输出的示例。你是对的。OP可能会使用\b
来检测单词边界,但是没有(regex)方法来区分单词“I”和单个字母(没有单词)。你是对的。OP可能会使用\b
来检测单词边界,但没有(regex)方法来区分单词“I”和单个字母(无单词)