@vante_scribaxxi

Как подобрать статьи к 1000 кейвордам?

Есть 1000 ключевых фраз, максимум 5-6 слов. Есть так-же 20 тысяч статей, в которых эти фразы разбавлены. Нужно каждой фразе подобрать пару, т.е. ту статью, которая более всех остальных использует эту фразу.
Написал функцию, которая сначала разбивает все фразы на слова, удаляет дубликаты и заносит в dict в таком формате - {фраза:ключ.слова}. Далее поочередно берется каждая статься, разбивается на слова и методом левинштейна рассчитывает схожесть каждого ключ.слова с словом из статьи, общее кол-во суммируется и складывается в список, а когда все тексты обработаны выбирается тот, что набрал макс. кол-во очков и таким образом находится пара.
Эта функция работает слишком медленно - я ставил обработку текстов в multiproccecing.pool и выходило максимум 3-4 статьи в секунду. А мне нужно всего обработать 20к * 1000 = 20млн раз, и это минут за 15 максимум.
Помогите пожалуйста.
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
действуй кувалдой, потом тюнингуй

кувалдой может быть
1) Sphinxsearch (и аналоги типа Эластика) + SPH_MATCH_ALL
2) Полнотекстовый поиск в MySQL/PostgreSQL

сторого говоря, правильно настроенный (1) может и тюнинг сделать ненужным
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы