Как стать автором
Обновить

Комментарии 4

Отличная штука! Спасибо

Как вы заполняете базу слов рубрикатора? Как я вижу, важные ключевые слова здорово определяются даже на английском, но рубрикатор там не очень развит. Мне кажется, вы можете здорово улучшить рубрикатор с помощью Википедии или другого корпуса параллельных текстов:
— Классифицировать русскую статью (это получается хорошо)
— Вычислить ключевые слова в английской версии этой статьи
— Назначить найденные ключевые слова каждой из рубрик с очень низким весом
— Повторять вплоть до создания Google Translate, хоть и без грамматики
Для некоторых рубрик существуют ключевые слова-подсказки. Т.е. листья, которые служат только для уточнения привязки рубрики но никак не отображаются внешне. В эти дополнительные данные как раз и включаются английские слова, типовые опечатки, склонения, синонимы и т.п.
Насчёт Википедии не совсем понятно как именно её можно применить. Дополнительно я хочу попробовать посмотреть в сторону http://wordnet.ru/
Относительно расчета формулы — best practice считается использование метрики tf-idf(term frequency — inverse document frequency) для определения существенности того или иного слова.
В модели, построенной на графе, некоторые слова являются листьями (те, которые относятся только к одной теме), а некоторые — нет (на первых иллюстрациях это видно). Не будет ли лучшим решением при наличии заранее полученного множества тем, хранить наиболее релевантных для них слова с присвоенной им метрикой «важности» для данной темы? В качестве примера — для каждого слова хранить его распределение по темам, тогда достаточно будет «взвесить» слова в классифицируемом тексте и посчитать вероятности любым удобным вам способом (средневзвешенная вероятности принадлежности к топику Икс).
… некоторые слова являются листьями (те, которые относятся только к одной теме), а некоторые — нет ...
Не совсем корректно, так как если взять пример в котором для одной из верхних рубрик присутствуют все листья всех дочерних, то получится что каждый листик вносит свой вклад в возможное определение всех (вплоть до корня) вышестоящих рубрик, а не только одной, к которой он имеет непосредственное отношение.

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

Другой интересный вопрос — как быть с возможностью считать граф направленным. Когда Рубрика А имеет отношение к Б но не наоборот. (я пока не нашёл красивого примера для этого случая).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории