Я пытаюсь изолировать первые слова в серии предложений, используя Python/NLTK.Как выбрать первые элементы каждого списка в списке списков?
создал несущественную серию предложений (the_text), и хотя я могу разделить это на токенизированные предложения, я не могу успешно отделить только первые слова каждого предложения в списке (first_words).
[['Здесь', 'is', 'some', 'text', '.'], ['There', 'is', 'a', 'a', 'person', 'on ',' ',' газон ','. '], [' I ',' am ',' confused ','. '], [' There ',' is ',' more ','. '] , ['Здесь', 'is', 'some', 'more', '.'], ['I', 'do', 'not', 'know', 'anything', '.'] , ['I', 'should', 'add', 'more', '.'], ['Look', ',', 'here', 'is', 'more', 'text', '. '], [' как», 'большой', 'есть', 'что', '?']]
the_text="Here is some text. There is a a person on the lawn. I am confused. "
the_text= (the_text + "There is more. Here is some more. I don't know anything. ")
the_text= (the_text + "I should add more. Look, here is more text. How great is that?")
sents_tok=nltk.sent_tokenize(the_text)
sents_words=[nltk.word_tokenize(sent) for sent in sents_tok]
number_sents=len(sents_words)
print (number_sents)
print(sents_words)
for i in sents_words:
first_words=[]
first_words.append(sents_words (i,0))
print(first_words)
Спасибо за помощь!
Вы пробовали 'i [0]' вместо 'sents_words (i, 0)'? Кроме того, поставьте 'first_words = []' перед циклом или очистите его с каждой итерацией. – TigerhawkT3
Вы ищете этот список - «Здесь», «Там», «Я», «Там», «Здесь», «Я», «Я», «Смотри», «Как»)? Просто используйте 'firstwords = [i [0] для i в вашем_list]' – letsc
Это основная задача python, не существует никаких специфических для nltk аспектов. Сделайте так, как @letsc говорит в комментарии выше, и обратите внимание на круглые или квадратные скобки в целом. – alexis