2011-01-06 2 views
5

Из Google Analytics У меня есть (длинный) список ключевых слов, которые люди использовали в поисковых системах, чтобы найти мой сайт. Я хочу, чтобы найти «основные ключевые слова», гипотетический пример:Как скопировать ключевые слова в поисковых системах?

java online training 
learning java 
scala training 
training for java 
online training java 
learn scala programming 

Идеальный результат был бы: «ява», «онлайн-обучение», «обучение», «Ла Скала» и «учиться».

Сложность, кажется, обнаруживает полные фразы, игнорируя общие слова (для) и вариации обработки (обучение).

Есть ли библиотека, которая может это сделать (желательно для JVM)? Или есть подходящий алгоритм, который я могу реализовать сам?

+0

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

+0

Что делать, если вы будете использовать результаты поиска Google для поиска хороших ключевых слов? Scala будет иметь меньше результатов, чем для -> лучшего слова. Вы можете выполнить поиск всех возможных фраз и записать количество результатов для каждой фразы, а затем найти диапазон, в котором существуют хорошие фразы. (Это была просто мысль, поэтому я не ставил ее в качестве ответа) –

ответ

3

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

Вы можете реализовать наивным решение по следующему алгоритму:

  • генерировать список ngrams в документе с длиной фразы, что вы хотите (выбрать произвольное ограничение длины фразы, как 3 или 4)
  • положить Ngram в Multiset
  • итерацию по записям в мультимножестве в порядке их степени или рассчитывать, возможно, с произвольной отсечкой

Как вы сказали, у этой проблемы будет проблема со стоп-словами. Вы можете сделать что-то простое, например, словарь словарей, или вы можете сделать что-то вроде Term Frequency-Inverse Document Frequency, которое поможет вам автоматически распознать очень частые термины. KEA сделает это за вас, лучше всего сначала изучить это.

Надеюсь, что это поможет!

Смежные вопросы