Получение двух разных объектов при разбиении данных NLTK на два списка - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь разделить список NLTK, но разделенные списки разделяются на два разных типа. Первый список возвращает класс «nltk.collections.LazySubsequence», а второй список возвращает класс «список». Я хотел бы, чтобы оба списка были списком типа, как бы я это сделал? Кроме того, почему первый список превращается в объект 'nltk.collections.LazySubSequency "?

import nltk

def novel10(words):
    first_list = words[:int(len(words)*.90)]
    second_list = words[int(len(words)*.90):]
    print(type(first_list))
    print(type(second_list))

words = nltk.corpus.udhr.words("English-Latin1")

novel10(words)

1 Ответ

0 голосов
/ 04 ноября 2018

Проблема в том, что слова на самом деле nltk.corpus.reader.util.StreamBackedCorpusView. Вы хотите сначала преобразовать это в список, а затем выполнить нарезку. Вот пересмотренный код ..

import nltk
def novel10(corp_view):
    words = list(corp_view)
    split = int(len(words)*.9)
    first_list = words[:split]
    second_list = words[split:]
    print(type(first_list),  len(first_list),  first_list[:4],  '..')
    print(type(second_list), len(second_list), second_list[:4], '..')

corp_view = nltk.corpus.udhr.words("English-Latin1")
novel10(corp_view)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...