Более быстрый способ расчета показателей сходства Жаккара для больших наборов данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Более быстрый способ расчета показателей сходства Жаккара для больших наборов данных

Сообщение Anonymous »

Я пытаюсь сопоставить два разных набора данных, которые довольно велики. (У одного из них около 1 миллиона названий компаний, а у другого около 30 тысяч).
Я хочу рассчитать показатель сходства на основе сходства Жаккара на n-граммах.
Вот что я реализовал на данный момент: это очень наивный подход, который просто просматривает каждую строку набора данных, вычисляя оценки сходства один за другим.

Код: Выделить всё

# Initial match with Jaccard similarity > 0.5
matches = []
for idx_a, row_a in data_b.iterrows():
for idx_b, row_b in df_new.iterrows():
ngrams_a = ngrams(row_a['name_std'], n=5)
ngrams_b = ngrams(row_b['name_std'], n=5)
score = jaccard_similarity(ngrams_a, ngrams_b)
matches.append({
'permno_adj': row_a['permno_adj'],
'firm_name': row_b['name_std'],
'rec_name': row_a['name_std'],
'rec_id': row_b['rec_id'],
'similarity_score': score
})
matches_df = pd.DataFrame(matches)
matches_df.sort_values(by=['firm_name', 'similarity_score'], ascending=False, inplace=True)
Я просто запускаю цикл с выбора строки из набора данных 1, затем вычисляю показатель сходства между этой строкой и остальными строками в наборе данных 2 и сохраняю результаты.По понятным причинам этот процесс занимает слишком много времени. Судя по текущей скорости, я ожидаю, что это продлится неделю или две. Я ищу, есть ли возможность это исправить.
Я ищу любые подсказки/отзывы. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-datasets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»