НЛТК, как дать несколько разделенных предложений - PullRequest
0 голосов
/ 02 октября 2018

У меня есть список предложений (каждое предложение представляет собой список) на английском языке, и я хотел бы получить ngrams.Например:

sentences = [['this', 'is', 'sentence', 'one'], ['hello','again']]

Для запуска

nltk.utils.ngram

Мне нужно выровнять список по адресу:

sentences = ['this','is','sentence','one','hello','again']

Но тогда я получаю ошибку bgram в

('one', 'hello')

.Как лучше всего с этим справиться?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы также можете использовать список понимания

f = []
[f.extend(_l) for _l in sentences]

f = ['this', 'is', 'sentence', 'one', 'hello', 'again']
0 голосов
/ 02 октября 2018

Попробуйте:

from itertools import chain

sentences = list(chain(*sentences))

chain вернуть объект цепочки, чей метод .__next__() возвращает элементы из первой итерации до ее исчерпания, затем элементы из следующей итерации до всех итераций

или вы можете сделать:

 sentences = [i for s in sentences for i in s]
...