python — Как разбить строку на список слов?
спросил
Изменено 4 месяца назад
Просмотрено 2,0 м раз
Как разделить предложение и сохранить каждое слово в списке? Например, учитывая строку вида "это слова"
, как мне получить список вроде ["это", "есть", "слова"]
?
- питон
- список
- разделение
- сегментация текста
2
Учитывая строку предложений
, это сохраняет каждое слово в списке с именем слов
:
слов = предложение.split()
Чтобы разделить строку text
на любые последовательные пробелы:
words = text. split()
Разделить строку текст
в пользовательском разделителе, таком как ","
:
слова = text.split(",")
Переменная words
будет списком
и будет содержать слова из текста
, разделенные разделителем.
0
Использовать str.split()
:
Возвращает список слов в строке, используя sep в качестве разделителя … Если sep не указан или равен None, применяется другой алгоритм разделения: последовательные пробелы рассматриваются как один разделитель, и результат не будет содержать пустых строк в начале или в конце, если строка имеет начальные или конечные пробел.
>>> line = "предложение с несколькими словами" >>> строка.split() ['а', 'предложение', 'с', 'а', 'несколько', 'слова']
3
В зависимости от того, что вы планируете делать со своим предложением как списком, вы можете взглянуть на комплект Natural Language Take Kit. Он имеет дело с обработкой и оценкой текста. Вы также можете использовать его для решения своей проблемы:import nltk слова = nltk.word_tokenize (raw_sentence)
Дополнительным преимуществом этого является разделение знаков препинания.
Пример:
>>> импорт nltk >>> s = "Лисиная лапка задела спящую собаку, разбудив ее." >>> слова = nltk.word_tokenize(s) >>> слова ['The', 'лиса', 'ы', 'нога', 'паслись', 'то', 'спящая', 'собака', ',', «бодрствование», «оно», «.»]
Это позволяет отфильтровывать ненужные знаки препинания и использовать только слова.
Обратите внимание, что другие решения, использующие string.split()
лучше, если вы не планируете выполнять какие-либо сложные манипуляции с предложением.
[Отредактировано]
3
Как насчет этого алгоритма? Разделите текст на пробелы, затем обрежьте знаки препинания. Это тщательно удаляет знаки препинания с края слов, не повреждая апострофы внутри таких слов, как we're
.
>>> текст «О, ничего не поделаешь, — сказал Кот, — мы все здесь сумасшедшие. Я сумасшедший. Ты сумасшедший». >>> text.split() [""О", "ты", "не можешь", "помоги", "это", "сказал", "тот", "Кот:", "мы", "все" , «сумасшедший», «здесь», «я», «сумасшедший», «ты», «сумасшедший»] >>> импортировать строку >>> [word.strip(string.punctuation) для слова в text.split()] ['О', 'ты', 'не могу', 'помочь', 'это', 'сказал', 'тот', 'кот', 'мы', 'все', 'сумасшедший', ' здесь', "я", "сумасшедший", "ты", "сумасшедший"]
2
Я хочу, чтобы моя функция Python разделяла предложение (ввод) и сохраняла каждое слово в списке
Метод str().split()
делает это, он берет строку, разбивает ее на список:
>>> the_string = "это предложение" >>> слова = the_string.split(" ") >>> печатать(слова) ['это', 'есть', 'а', 'предложение'] >>> введите (слова)# или в Python 3. 0
Если вы хотите, чтобы все символы слов/предложений были в списке, сделайте следующее:
print(list("word")) # ['слово'] print(список("некоторое предложение")) # ['s', 'o', 'm', 'e', ' ', 's', 'e', 'n', 't', 'e', 'n', 'c', ' е']
1
shlex имеет функцию .split()
. Он отличается от str.split()
тем, что не сохраняет кавычки и обрабатывает фразу в кавычках как одно слово:
>>> импорт шлекс >>> shlex.split("sudo echo 'foo && bar'") ['sudo', 'echo', 'foo && bar']
NB: это хорошо работает для Unix-подобных строк командной строки. Это не работает для обработки естественного языка.
1
Разбить слова без повреждения апострофов внутри слов Пожалуйста, найдите input_1 и input_2 закон Мура
def split_into_words(строка): импортировать повторно word_regex_improved = r"(\w[\w']*\w|\w)" word_matcher = перекомпилировать (word_regex_improved) вернуть word_matcher.