Выбор подсписка из списка списков после использования Sentence Tokenizer

Итак, у меня есть несколько предложений в списке, например:

some_list = ['Joe is travelling via train.' 
             'Joe waited for the train, but the train was late.'
             'Even after an hour, there was no sign of the 
              train. Joe then went to talk to station master about the 
              train's situation.']

Затем я использовал токенизатор предложений nltk, потому что я хочу анализировать каждое предложение в полном предложении по отдельности. Итак, теперь O/P выглядит примерно так в формате списков списков:

sent_tokenize_list = [['Joe is travelling via train.'],
                      ['Joe waited for the train,',
                       'but the train was late.'],
                      ['Even after an hour,',
                       'there was no sign of the 
                        train.',
                       'Joe then went to talk to station master about 
                        the train's situation.']]    

Теперь из этого списка списков, как я могу выбрать только списки, которые содержат более 1 предложения, то есть 2-й и 3-й списки в моем примере, и иметь их только в формате списка как отдельные списки. сильный>

т.е. O/P должен быть

['Joe waited for the train,','but the train was late.'] 
['Even after an hour,','there was no sign of the train.',
 'Joe then went to talk to station master about the train's situation.']         

person explorer_x    schedule 19.07.2018    source источник
comment
с помощью простого кода Python вы можете сделать что-то вроде этого [элемент для элемента в sent_tokenize_list, если len (элемент) › 1]   -  person Mr. J    schedule 19.07.2018


Ответы (1)


Вы можете использовать len, чтобы проверить номер предложения в списке.

Пример:

sent_tokenize_list = [['Joe is travelling via train.'],
                      ['Joe waited for the train,',
                       'but the train was late.'],
                      ['Even after an hour,','there was no sign of the train.',"Joe then went to talk to station master about the train's situation."]]


print([i for i in sent_tokenize_list if len(i) >= 2]) 

Вывод:

[['Joe waited for the train,', 'but the train was late.'], ['Even after an hour,', 'there was no sign of the train.', "Joe then went to talk to station master about the train's situation."]]
person Rakesh    schedule 19.07.2018
comment
Этот вывод находится в формате списков списков. Как я могу получить их в отдельных отдельных списках? См. мой O/P в Ques. Спасибо! - person explorer_x; 19.07.2018
comment
на данный момент мне нужно взять: output_list[1:2], чтобы получить второе предложение, а затем преобразовать его только в список, аналогично для 3-го предложения. Так что придется делать этот процесс индивидуально для каждого предложения. есть ли другой способ, которым мы можем сделать это автоматически? - person explorer_x; 19.07.2018