Как разделить отдельные предложения с помощью nltk? - PullRequest
0 голосов
/ 07 апреля 2019

Программирование Noob, пытаясь использовать sent_tokenize для разделения текста на отдельные предложения.Пока он работает (в консоли, делая каждое предложение отдельным элементом списка), когда я добавляю его в пустой список, я получаю список (ну, список списков из синтаксиса) len 1, что я не могу перебрать.По сути, я хочу быть в состоянии извлечь каждое отдельное предложение, чтобы я мог сравнить его с чем-то, то есть строкой «Лето - это здорово».Может быть, есть лучший способ сделать это, но, пожалуйста, попробуйте дать мне простое решение, потому что Noob.Я полагаю, что в конце каждого предложения есть флаг, который я мог бы использовать для добавления предложений по одному, поэтому достаточно указать мне на это.

Я просмотрел документацию и попытался добавить следующий код, но все равно в итоге мой список имеет длину 1, а не разбит на отдельные предложения.

import nltk nltk.download ('punkt')

from nltk import sent_tokenize, word_tokenize

listz = []

s = "Good muffins cost $3.88\nin New York.  Please buy me two of 
them.\n\nThanks."

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 Ответ

1 голос
/ 07 апреля 2019

Вы должны использовать extend:

listz.extend([word_tokenize(t) for t in sent_tokenize(s)])

Но в этом случае простое назначение работает:

listz = [word_tokenize(t) for t in sent_tokenize(s)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...