Mahout - кластеризация - "именование" элементов кластера

Я провожу некоторые исследования и играю с Apache Mahout 0.6

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

Например: допустим, я собрал N документов, которые принадлежат 3 различным группам:

  • Политика
  • Мадонна (поп-звезда)
  • научная фантастика

Я не знаю, какой документ относится к какой категории, но я знаю, что каждый из моих N документов относится к одной из этих категорий (например, нет документов, скажем, о баскетболе среди этих N документов)

Итак, я пришел к следующей идее:

  • Примените кластеризацию mahout (например, k-mean с k=3 в этих документах). Это должно разделить N документов на 3 группы. Это должно быть своего рода моделью для изучения. Я до сих пор не знаю, какой документ действительно принадлежит к какой группе, но, по крайней мере, документы теперь группируются по группам.

  • Попросите пользователя найти в Интернете любой документ, который должен быть о "Мадонне" (я не могу показать пользователю ни один из моих N документов, это ограничение). Затем я хочу измерить "сходство" этого документа и каждой из 3 групп. Я ожидаю увидеть, что измерение сходства между user_doc и документами в группе Мадонны в модели будет выше, чем сходство между user_doc и документами о политике.

Мне удалось создать кластер документов, используя книгу "Mahout in Action". Но я не понимаю, как мне использовать Mahout для измерения сходства между "готовой" кластерной группой документа и одним данным документом.

Я подумал о перезапуске кластера с k=3 для N+1 документов с теми же центроидами (с точки зрения кластеризации по k-среднему значению) и посмотрел, куда попадает новый документ, но, может быть, есть какой-то другой способ сделать это?

Возможно ли это сделать с Mahout или моя идея концептуально неверна? (пример с точки зрения Mahout API был бы действительно хорош)

Большое спасибо и извините за длинный вопрос (лучше описать не могу)

Любая помощь высоко ценится

PS Это не домашний проект:)

1 ответ

Решение

Это могло бы быть возможным, но гораздо более простым решением (IMHO) было бы пометить вручную несколько документов из каждой категории, а затем использовать их для начальной загрузки k-средних. Т.е. вычислите центроиды документов политики / мадонны /scifi, помеченных вручную, и пусть k-means возьмет их оттуда.

(В причудливых терминах вы будете проводить классификацию ближайших центроидов в полуобслуживании.)

Другие вопросы по тегам