Понимание np.zeros в кластеризации

tfidf_vector = TfidfVectorizer () tfidf_matrix = tfidf_vector . fit_transform ( файл ) # и / или count_vector = CountVectorizer () count_matrix = count_vector . fit_transform ( файл ) # и здесь file_size = Len ( файл ) х = нп . zeros (( file_size , file_size )) #, и здесь используются методы сходства, такие как cosine_similarity, jaccard ... для elm in range ( file_size ): x [ elm ] = cosine_similarity ( tfidf_matrix [ i : i + 1 ], tfidf_matrix ) y = np . вычесть ( пр . из них (( FILE_SIZE , размер_файла ), DTYPE = пр . плавать ), х ) new_file = np . asarray ( y ) w = new_file . reshape (( 1 , file_size , file_size )) Изучение кластеризации, и я видел в нескольких учебниках что-то, что я не совсем понимаю в части мер сходства:

i

Зачем нам np.zeros? Не достаточно ли tfidf_matrix / count_matrix для мер сходства?

python,python-3.x,vector,cluster-analysis,similarity,

1

Ответов: 1


1 принят

этот код делает то же самое (я изменил iего, elmпоскольку он выглядит как опечатка)

x = []
for elm in range(file_size):
    x.append(cosine_similarity(tfidf_matrix[elm:elm+1], tfidf_matrix)
x = np.asarray(x)

Вы также можете заменить np.zeros на np.empty. Создание массива заранее, а затем заполнение каждого элемента массива несколько более эффективно, чем добавление к списку, а затем преобразование его в массив numpy. Многие другие языки программирования требуют, чтобы массивы были предварительно распределены так же, как это делает numpy, поэтому многие люди предпочитают заполнять массив таким образом.

Однако, поскольку это python, вы должны делать все, что считаете самым простым для себя и других, чтобы читать.

Python, Python-3.й, вектор, кластерный анализ, сходство,
Похожие вопросы