Idf оценка неизвестного слова?

Моя задача - извлечь ключевые слова из текста. Я сделал следующее:

Я использую tf-idf "алгоритм". Для части idf я сканирую статьи в Википедии, извлекаю фразы из существительных (opennlp) и сохраняю их в базе данных.

Поэтому, когда я анализирую текст, мне просто нужно вычислить часть tf и получить часть idf из базы данных.

Результаты пока очень привлекательны. Моя единственная проблема -> так как тексты, которые я должен проанализировать, отличаются от корпуса википедии, некоторые слова имеют высокое значение tf, но не имеют значения idf (оно не было найдено в корпусе вики). Но иногда эти слова по-прежнему очень важны (примером для этого может служить новая компания, которой пока нет в википедии).

Что я должен взять в качестве значения IDF, если оно не было найдено в БД? (средний IDF, вероятно, не очень хорошая идея)

1 ответ

Решение

Как рассчитывается IDF?

Если у вас есть что-то вроде IDF = log_e(# of documents / # of documents with term) ты мог бы сделать log_e(# of documents +1 / 1), т.е. рассматривать документ как новый документ в корпусе.

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