Рассмотрим следующее предложение как токены:
sentence = ["the","book","is","on","the","table"]
и рассмотрим window_size
из 3. Код, который строит window_sequences
, можно переформулировать так:
for ix in range(len(sentence)):
x = sentence[ix] #so this is the ix-th word of the sentence
from_index = max((ix-window_size) # this is the initial index of the window
to_index = (ix+window_size+1) # this is the final index of the windows (excluding itself)
window = sentence[from_index, to_index] # we pick the words of the sentence
Теперь давайте запустим этот код для некоторых ix
:
ix=0, x="the", from_index=0, to_index=4, window = ["the", "book", "is", "on"]
ix=3, x="on", from_index=0, to_index=7, window = ["the", "book", "is", "on", "the", "table"]
Как вы видите, он строит окна слов, и они представляют собой в точности части оригинальных предложений.
Проблема, с которой вы могли столкнутьсяПри анализе этого кода слова предложения заменяются числовым идентификатором таким образом, что чем чаще встречается слово, тем ниже его идентификатор.
Таким образом, предложение до этого будет выглядеть так:
sentence = [2,45,7,13,2,67]
Они не отсортированы по частоте, но они точно сохраняют порядок в предложении.Только их форма поверхности изменяется с string
на int
, но вы можете легко понять код строковой версии.