Я пытаюсь сделать код для генерации некоторых 3-грамм, но если я запускаю этот код, он дает мне ошибку:список индексов вне диапазона в 3-х грамм
list index out of range
на линии в функция third_word
на линии next_word = word_list[x+2]
.
def third_word(key):
third = {}
next_word = word_list[x+2]
if next_word not in third:
third[next_word] = 1
elif next_word in third:
third[next_word] += 1
return third
x = 0
for word in word_list:
key = (word_list[x], word_list[x+1])
if key not in follow_ups:
follow_ups[key] = third_word(key)
x += 1
Что такое 'word_list'? –
'x' будет работать от' 0' до 'len (word_list) -1'. Если последний ключ не находится в 'follow_ups', вы попытаетесь проиндексировать с помощью' len (word_list) + 1', который даст ошибку. Аналогично для второго-последнего ключа, который будет использовать 'len (word_list)', который также выходит за рамки. Кроме того, 'third' ничего не делает, поскольку он не является глобальным и всегда пуст в' third_word'. –