Приоритетность текста на основе содержимого - PullRequest
3 голосов
/ 04 ноября 2011

Если у вас есть список текстов и человек, интересующийся определенными темами, каковы алгоритмы выбора наиболее подходящего текста для данного человека?

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

спасибо

Ответы [ 3 ]

2 голосов
/ 04 ноября 2011

Существует довольно много алгоритмов для этой задачи. По крайней мере, слишком много, чтобы упоминать их всех здесь. Сначала несколько отправных точек:

  • Обнаружение тем и рекомендации - две совершенно разные задачи, хотя они часто пересекаются. Если у вас стабильная база пользователей, вы можете дать очень хорошие рекомендации без какого-либо открытия темы.

  • Обнаружение тем и присвоение им имен - также две разные задачи. Это означает, что зачастую легче сказать, что текст A и текст B имеют схожую тему, чем явно указать, какой может быть эта общая тема. Давать названия темам лучше всего люди, например, если они помечают предметы.

Теперь несколько реальных примеров.

  • TF-IDF часто является хорошей отправной точкой, однако он также имеет серьезные недостатки. Например, он не сможет сказать, что «автомобиль» и «грузовик» в двух текстах означают, что эти два, вероятно, имеют общую тему.

  • http://websom.hut.fi/websom/ Карта Кохонена для автоматической кластеризации данных. Он изучает темы, а затем организует тексты по темам.

  • http://de.wikipedia.org/wiki/Latent_Semantic_Analysis Будет в состоянии повысить TF-IDF, обнаруживая семантическое сходство между различными словами. Также обратите внимание, что это запатентовано, поэтому вы не сможете его использовать.

  • Когда у вас есть набор тем, назначенных пользователями или экспертами, вы также можете попробовать практически любой метод машинного обучения (например, SVM) для сопоставления данных TF-IDF с темами.

1 голос
/ 04 ноября 2011

Проверьте Программирование Коллективного Разума , действительно хороший обзор различных методов в этом направлении.Также очень удобочитаем.

1 голос
/ 04 ноября 2011

Как инженер поисковой системы, я думаю, что эту проблему лучше всего решить, используя два метода в сочетании.

Технология 1, Поиск ( TF-IDF или другие алгоритмы)

Используйте поиск, чтобы создать базовую модель для контента, в котором у вас нет пользовательской статистики.Существует целый ряд технологий, но я думаю, что кодовая база Apache Lucene / Solr , безусловно, является наиболее зрелой и стабильной.

Технология 2, Рекомендации для пользователей ( k-ближайшая окрестность другие алгоритмы)

Когда вы начнете получать пользовательскую статистику, используйте ее для улучшения модели релевантности, используемой системой анализа текста.Быстро растущей базой кода для решения подобных проблем является проект Apache Mahout .

...