Я работаю над проектом, в котором я хочу прочитать большой текстовый файл, случайным образом выбрать полное предложение из этого файла. Если это предложение файла меньше 280 символов или меньше, распечатайте этот файл. если нет, выберите другое предложение, пока оно не найдет предложение длиной менее 280 символов. Используя nltk, я могу разбить текст на отдельные предложения, выбрать одно случайным образом и посчитать символы.
import nltk.data
import random
tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
fp = open("test.txt")
data = fp.read()
tok = tokenizer.tokenize(data); #breaks into sentences
newTok = random.choice(tok) #selects random sentence
length = len(newTok) #gives amount of characters in random sentence
Сейчас я пытаюсь создать цикл while
, который проверит, будет ли предложение меньше 280 символов для его печати, и, если это не так, выберет другое предложение случайным образом для проверки
while length < 280: # while length of sentence is less than 280
print "length of sentence = ", length # do this
print newTok # do this
break #stops loop
else:
print length, " is too long"
но это дает мне неверную синтаксическую ошибку в else, но я также думаю, что не буду повторяться снова, чтобы найти другое предложение.
Любые предложения будут хороши.