#python #nltk
#python #nltk
Вопрос:
Программирующий новичок, пытающийся использовать sent_tokenize для разделения текста на отдельные предложения. Хотя кажется, что это работает (в консоли, делая каждое предложение отдельным элементом списка), когда я добавляю его в пустой список, я получаю список (ну, список списков списков из синтаксиса) len 1, который я не могу перебрать. В принципе, я хочу иметь возможность извлекать каждое отдельное предложение, чтобы я мог сравнить его с чем-то, например, со строкой «Лето отличное». Может быть лучший способ добиться этого, но, пожалуйста, попробуйте дать мне простое решение, потому что Noob. Я полагаю, что в конце каждого предложения есть флаг, который я мог бы использовать для добавления предложений по одному, поэтому указания мне на это может быть достаточно.
Я просмотрел документацию и попытался добавить следующий код, но в итоге мой listz имеет длину 1, а не разбит на отдельные предложения.
импортировать nltk nltk.download(‘punkt’)
from nltk import sent_tokenize, word_tokenize
listz = []
s = "Good muffins cost $3.88nin New York. Please buy me two of
them.nnThanks."
listz.append([word_tokenize(t) for t in sent_tokenize(s)])
print(listz)
---
// Expenced output listz = [["Good muffins cost $3.88 in New York."],
["Please buy me two of them."], ["Thanks."]]
Ответ №1:
Вы должны использовать extend
:
listz.extend([word_tokenize(t) for t in sent_tokenize(s)])
Но в этом случае работает простое присвоение:
listz = [word_tokenize(t) for t in sent_tokenize(s)]