Python: кластеризация ключевых слов для поиска - PullRequest
3 голосов
/ 27 января 2020

У меня есть много «ключевых слов для поиска» для каждого продукта в наборе данных. Я пытаюсь кластеризовать продукты в соответствии с их «ключевыми словами поиска».

Я собираюсь сгруппировать эти ключевые слова в кластеры «аналогичного значения» и создать иерархию кластеров (структурированных в порядке общее количество поисков в кластере).

Пример кластера - "женская одежда" - в идеале должен содержать ключевые слова по следующим направлениям: женская одежда, 1000 женской одежды, 300 женской одежды, 50 женской одежды, 6 женщин износ, 2.

Я новичок в НЛП. Есть ли у вас какие-либо предложения техники НЛП для этой задачи? Любая помощь будет высоко оценена: -)

1 Ответ

3 голосов
/ 27 января 2020

Я предлагаю использовать некоторые предварительно подготовленные векторы слов, например, fastText , чтобы вам не приходилось беспокоиться о данных обучения и тренировок. Что вам нужно будет сделать:

  • Предварительно подготовить ваши ярлыки: токенизировать ваши ярлыки: women's clothing -> ["women's", "clothing"]. см. Здесь
  • Лемматизация: ["women's", "clothing"] -> ["woman", "clothing"] см. Здесь
  • Рассчитать вектор для каждого слова: vec1 = model.get_word_vector("woman")
  • Среднее все векторы для данной метки: avg= (vec1 + vec2)/2 Эти средние векторы должны представлять вашу метку. Средние векторы woman и clothing должны находиться в том же регионе, что и средние значения woman и wear. с другой стороны, средний вектор man и clothing должен находиться в другой области в векторном пространстве, поэтому ваш предпочтительный алгоритм кластеризации его поймает.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...