【发布时间】:2018-02-11 20:41:25
【问题描述】:
我遇到过这个应该标记给定句子的函数
def basic_tokenizer(sentence):
words = []
for space_separated_fragment in sentence.strip().split():
words.extend(re.split(" ", space_separated_fragment))
return [w for w in words if w]
在我看来, sentence.strip().split() 应该已经足够了,但随后使用了 re.split(),然后在返回中甚至 [w for w in words if w]
我想知道这可能是什么原因?一个通过所有三个都不同的例子将不胜感激
【问题讨论】:
-
如果是
re.split(" ")进行实际拆分,或者如果 for 循环结束.split(" ")而不仅仅是.split(),那么[w for w in words if w]将是有意义的,因为可能存在words中的空字符串。仅供参考。 -
@NathanVērzemnieks 多个连续空格都被str.split()视为一个空格
-
是的,如果你在没有参数的情况下分割 - 但如果你只在“”上分割,则不会。
标签: python python-3.x split