Как рассчитать TF * IDF для одного нового документа, который будет классифицирован?

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

Я с нетерпением жду возможности классифицировать новый документ в будущем. Но для того, чтобы классифицировать его, мне нужно сначала превратить документ в вектор-вектор документа, а вектор должен также состоять из значений TF * IDF.

Мой вопрос: как я мог рассчитать TFF TF * только с одним документом?

Насколько я понимаю, TF можно рассчитать на основе одного самого документа, но IDF можно рассчитать только с помощью коллекции документа. В моем текущем эксперименте я фактически вычисляю значение TFF TFF для коллекции документов целиком. И затем я использую некоторые документы в качестве набора для обучения и остальные как набор тестов.

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

ADD 1

Таким образом, на самом деле существуют 2 тонко разных сценария для классификации:

  • для классификации некоторых документов, содержимое которых известно, но ярлык не известно.
  • чтобы классифицировать некоторый полностью невидимый документ.

Для 1 мы можем объединить все документы, как с ярлыками, так и без них. И получите TF * IDF над всеми из них. Таким образом, даже мы используем только документы с ярлыками для обучения, результат обучения по-прежнему будет содержать влияние документов без ярлыков.

Но мой сценарий - 2.

Предположим, у меня есть следующая информация для термина T из резюме набора обучения:

  • количество документов для T в обучающем наборе n
  • общее количество учебных документов N

Должен ли я вычислять IDF для t для невидимого документа D ниже?

IDF (t, D) = log ((N + 1)/(n + 1))

ADD 2

А что, если я столкнулся с термином в новом документе , который не отображался в учебном корпусе до? Как рассчитать вес для него в векторе doc-term?

Ответ 1

TF-IDF не имеет смысла для одного документа, независимо от корпуса. Это в основном подчеркивает относительно редкие и содержательные слова.

Вам нужно сохранить сводную информацию о корпусе, чтобы вычислить вес TF-IDF. В частности, вам нужно количество документов для каждого термина и общее количество документов.

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

Ответ 2

TF, очевидно, зависит только от нового документа.

IDF, вы вычисляете только на своем учебном корпусе.

Вы можете добавить недействительный термин для вычисления IDF или настроить его, как вы предложили. Но для разумного набора тренировок постоянный +1 термин не будет иметь большого эффекта. AFAICT, в классическом поиске документов (думаю: поиск), вы этого не делаете. Часто они запрашивают документ, который не станет частью вашего корпуса, так почему он должен быть частью IDF?

Ответ 3

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

IDF = 1 + log(total documents / document frequency of a term)

Здесь нижняя граница для IDF равна 1. Поэтому, если слово не видно в учебном корпусе, его IDF равен 1. Так как нет единой универсальной формулы для вычисления tf-idf или даже idf, ваша формула для Расчет tf-idf также является разумным.

Обратите внимание, что во многих случаях невидимые термины игнорируются, если они не оказывают большого влияния на задачу классификации. Иногда люди заменяют невидимые маркеры специальным символом, таким как UNKNOWN_TOKEN, и выполняют их вычисления.

Альтернатива TF-IDF. Другим способом вычисления веса каждого термина документа является использование оценки максимального правдоподобия. При вычислении MLE вы можете сгладить, используя метод сглаживания добавок, который также известен как сглаживание Лапласа. MLE используется, если вы используете Generative models, как алгоритм Наивного Байеса для классификации документов.