【发布时间】:2021-12-02 04:51:52
【问题描述】:
要分割不带空格的文本,可以使用wordninja,请参阅How to split text without spaces into list of words。这是完成这项工作的代码。
sent = "Test12 to separate mergedwords butkeeprest asitis, say 1/2/2021 or 1.2.2021."
import wordninja
print(' '.join(wordninja.split(sent)))
output: Test 12 to separate merged words but keep rest as it is say 1 2 2021 or 1 2 2021
wordninja 看起来很棒,可以很好地分割那些合并的文本。我的问题是如何在没有空格的情况下拆分文本,但保持日期(和标点符号)不变。理想的输出是:
Test 12 to separate merged words but keep rest as it is, say 1/2/2021 or 1.2.2021
非常感谢您的帮助!
【问题讨论】:
-
如果没有某种词典/字典来了解实际单词是什么,您将无法真正做到这一点。
-
为什么不与
sent.split()或re.split(r"[\W,/]+", sent)进行基本拆分并从那里获取呢?这些是 Python 内置函数。 -
只是吐口水,但您也许可以使用正则表达式在原始字符串中找到日期的位置,在字符串的每个不是日期的部分上使用 wordninja,然后组合不同的段?
-
@Jens 我相信这里的想法是 OP 试图拆分的单词可以任意组合,因此将它们与内置函数拆分会......很痛苦