У меня есть пустой массив слова корпус, и я пытаюсь найти матрицу совместного использования с размером окна в качестве параметра, чтобы каждое слово от i-window_size до i + window_size, кроме самого слова, у меня былосчет, который добавлен. В настоящее время я использую для этого два цикла
words, num_words = distinct_words(array)
M = None
word2Ind = {}
M = np.zeros((num_words,num_words))
word2Ind = {word:words.index(word) for word in words}
for index,word in enumerate(array):
for i in range(index-window_size,index):
M[word2ind(array[index-i]),word2ind(array[index])] += 1
for index,word in enumerate(array):
for i in range(index+1,index+window_size+1):
M[word2ind(array[index+i]),word2ind(array[index])] += 1
Проблема также в том, что я не знаю, как беспрепятственно обрабатывать граничные случаи на границе, как для i в диапазоне (0, window_size) и диапазоне (len(массив), len (массив) -window_size, -1) у нас не будет всего диапазона. Просто хотел знать некоторые эффективные указатели, чтобы сделать это