拆分包含unicode字符的单词

时间:2016-02-29 03:03:59

标签: python regex python-3.x unicode

我正在制作一个涉及表情符号中的表情符号的NLP项目。

这里给出了推文的一个例子:
"sometimes i wish i wa an octopus so i could slap 8 people at once"

我的问题是once被认为是一个单词,所以我想将这个独特的单词分成两个,这样我的推文就像这样:
"sometimes i wish i wa an octopus so i could slap 8 people at once "

请注意,我已经有包含每个emojis的已编译的regexp!

我正在寻找一种有效的方法,因为我有数十万条推文,但我无法弄清楚从哪里开始。

谢谢

2 个答案:

答案 0 :(得分:2)

你不能做这样的事情:

>>> import re
>>> s = "sometimes i wish i wa an octopus so i could slap 8 people at once"
>>> re.findall("(\w+|[^\w ]+)",s)
['sometimes', 'i', 'wish', 'i', 'wa', 'an', 'octopus', 'so', 'i', 'could', 'slap', '8', 'people', 'at', 'once', '']

如果您再次需要它们作为单个空格分隔的字符串,只需加入它们:

>>> " ".join(re.findall("(\w+|[^\w ]+)",s))
'sometimes i wish i wa an octopus so i could slap 8 people at once '

编辑:修复。

答案 1 :(得分:1)

您可以使用int来引入空格:

str.Length - 3

示例:

re.sub