tf-idf: я правильно понимаю? - PullRequest
4 голосов
/ 29 марта 2010

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

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

Ответы [ 3 ]

4 голосов
/ 02 апреля 2010

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

Чтобы заставить его работать с документами:

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

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

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

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

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

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

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

4 голосов
/ 29 марта 2010

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

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

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

1 голос
/ 02 апреля 2010

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

...