Как избежать расчета всех расстояний в кластере, чтобы получить большинство связанных сообщений в кластеризации текста? - PullRequest
0 голосов
/ 01 ноября 2018

В кластеризации k-средних

У меня есть большое количество выборок в каждом кластере, поэтому, когда у меня есть новая выборка, и я хочу получить к ней 10 ближайших сообщений, я должен рассчитать расстояние, используя евклидово или косинусное выражение, или что-то еще, для вычисления которых требуется много времени это большое количество образцов в кластере. Есть ли способ установить радиоприемники и использовать новый образец в качестве центра и получить только значения в этих радиоприемниках?

with open('Clustring4m.pkl', 'wb') as fid:
    pickle.dump(km, fid)



new_post_label = km.predict(new_post_vec)[0]

similar_indices = (km.labels_==new_post_label).nonzero()[0]
similar = []
for i in similar_indices:
    #print(i)
    dist = sp.linalg.norm((new_post_vec - X_train[i]).toarray())
    similar.append((dist, df_train[i]))

1 Ответ

0 голосов
/ 04 ноября 2018

Рассматривали ли вы использование библиотеки для поиска сходства ?

Они содержат структуру индекса для ускорения поиска соседей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...