Как разделить отдельные предложения с помощью nltk?

#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)]