#python #string #split #nlp #token
Вопрос:
У меня есть общие операции, которые либо позволяют пользователю использовать «слово» или «символ» в качестве единицы измерения, и я делал это как таковое:
def split(s, unit):
return s.split() if unit == 'word' else list(s)
Использование:
>>> foo = "this is a foo bar sentence"
>>> split(foo, 'word')
['this', 'is', 'a', 'foo', 'bar', 'sentence']
>>> split(foo, 'char')
['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 'f', 'o', 'o', ' ', 'b', 'a', 'r', ' ', 's', 'e', 'n', 't', 'e', 'n', 'c', 'e']
Есть ли простой/лучший способ создать функцию, которая разбивает входные строки в соответствии со словами (определяемыми str.split
) и символами?
Ответ №1:
Это зависит от того, что вы пытаетесь сделать. Я предполагаю, что вам нужна функция, которая разбивает ввод на слова, если в нем несколько слов, и на символы в противном случае:
def split(s):
l = s.split()
return l if len(l) > 1 else list(s)
Дайте мне знать, если у вас есть что-то еще на уме.