tf-idf: я правильно понимаю?

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

Если я не ошибаюсь, TF-IDF особенно используется для оценки релевантности документа по заданному запросу. Если у меня нет конкретного запроса, как я могу применить tf-idf для кластеризации?

3 ответа

Для кластеризации документов. Наилучший подход - использовать алгоритм k-средних. Если вы знаете, сколько типов документов у вас есть, вы знаете, что такое k.

Чтобы это работало с документами:

а) скажем, выбрать начальные k документов наугад.

б) Назначьте каждый документ cluser, используя минимальное расстояние для документа с кластером.

c) После того, как документы назначены кластеру, создайте K новых документов как кластер, взяв центр тяжести каждого кластера.

Теперь вопрос

а) Как рассчитать расстояние между двумя документами: ничто иное, как косинус сходства терминов документов с исходным кластером. Термины здесь - не что иное, как TF-IDF(рассчитывается ранее для каждого документа)

б) Центроид должен быть: сумма TF-IDF данного термина / нет. документов. Делайте это для всех возможных терминов в кластере. это даст вам еще один n-мерных документов.

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

Не совсем так: tf-idf дает вам релевантность термина в данном документе.
Таким образом, вы можете идеально использовать его для кластеризации, вычисляя близость, которая была бы чем-то вроде

proximity(document_i, document_j) = sum(tf_idf(t,i) * tf_idf(t,j))

для каждого термина t как в документах i, так и в документах j.

TF-IDF служит для другой цели; если вы не собираетесь изобретать велосипед, лучше использовать такой инструмент, как Carrot. Поиск в Google для кластеризации документов может дать вам множество алгоритмов, если вы захотите реализовать их самостоятельно.

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