автоматическое определение тематики - вопрос

Cyrox
На сайте с 17.12.2006
Offline
86
1881

Мне нужен скрипт, который будет определять тематику сайта (на нескольких языках). Сильно сомневаюсь, что есть готовые решения. А, может, есть? :)

Вот как я думаю реализовать эту штуку:

Условия на входе:

а) проверка тематики для нескольких языков

б) количество определяемых тематик =4

в) проверяемый сайт посвящен только одной теме

Решение:

1. Берем несколько (штук 5) сайтов по соответстующей тематике.

2. Берем текста с выбранных вручную страниц (страниц берем штук по 50 с сайта). Сливаем все текста в один и анализируем плотность слов/словосочетаний для текста, который получился на выходе. Получаем связки - ключ - плотность. Убираем маленькие слова (до 3-4 символов). Анализируем так пачки текста для каждой темы. Оставляем только ключи, которые встречаются с определенной плотностью - плотность подберем потом.

3. Потом удаляем пересекающиесмя ключи для всех 4-х тем (то есть отсеем общеупотребительные слова/словосочетания). На выходе, по идее остаются слова/словочетания, характерные для данной темы с плотностью.

Это получился фильтр для определения темы.

Когда чекаем тему конкретного сайта нам останется проанализировать плотность слов/словосочетаний для нескольких страниц, удалить общеупотребительные ключи. Потом сверяем слова с их плотностью с фильтрами и, если она в среднем равна (с погрешностью допустимой) или больше, то метим, что данный сайт - соответствующей тематики.

Хотелось бы узнать ваше мнение по поводу данного алгоритму. Может, есть идеи, как сделать определение тематики проще?

Спасибо всем, кто прочитал эту простыню и откоментит. :)

Bor-ka
На сайте с 16.11.2004
Offline
256
#1

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

Cyrox
На сайте с 17.12.2006
Offline
86
#2

Вопрос в том, можно ли как-то ее решить при приемлимом соотношении уровня сложности/затрат и надежности. Мне кажется, что данный алгоритм будет давать приемлимую мне вероятность определения - 50-80%. Но я не уверен. :)

Может, кто-то что-то слышал или сам делал?

SJ
На сайте с 16.03.2008
Offline
78
#3

Пробовать все надо :)

А то оказывается потом что пересекающихся ключей - слишком много.

Может просто считать цифру на основании ключей в тексте* их коэф. в тематике? А потом выбрать самую подходящую...

Любимый хостинг (http://beget.ru?id=2902) How can we grow old when the soundtrack of our lives is rock-n-roll?
Bor-ka
На сайте с 16.11.2004
Offline
256
#4

Я думаю, что готового варианта нет. Начать нужно с того, что для текста нет вообще однозначного значения тематики.

Потом эмпирическим путем делать, разочаровываться, анализировать, делать и так по циклу, пока не получите приемлемый результат.

K
На сайте с 31.01.2001
Offline
737
#5

Семантическое зеркало для русского языка - демка.

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
Cyrox
На сайте с 17.12.2006
Offline
86
#6
Получив адрес страницы, модуль «Семантического зеркала» анализирует текст страницы, взвешивает частоты слов и семантические связи между словами, выделяет из текста страницы самые важные термины (слова и словосочетания) и по ним определяет набор нескольких наиболее вероятных тем страницы.

Не понял что за семантические связи и зачем они нужны. :o

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

В общем, примерно так я и собирался делать. Только категорий на порядок меньше у меня будет.

malls
На сайте с 08.08.2005
Offline
255
#7
Kost:
Семантическое зеркало для русского языка - демка.

Кстати рульная вещь - торкает!

По сабжу:

сам раздумываю над этой проблемой (в другом правда контексте). мое ИМХО начинать надо с упрощения, т.е. пытаться сначала понять к какому типу относиться текст: новости, научный, развлекательный и т.п. А потом подразделять на основе каких-то таблиц заточенных под указанные рубрики.

Хотя приведенный Kost-ом пример - работает неплохо.

Cyrox
На сайте с 17.12.2006
Offline
86
#8

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

Спасибо всем, кто участвовал в дискуссии.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий