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 для кластеризации документов может дать вам множество алгоритмов, если вы захотите реализовать их самостоятельно.