Как вычислить TF-IDF запроса?
Как вычислить tf-idf
для запроса? Я понимаю, как вычислить tf-idf для набора документов со следующими определениями:
Но я не понимаю, как это соотносится с запросами.Tf = вхождения в документе / общее количество слов в документе
Idf = log (#documents / #documents, где встречается термин
Например , я читаю ресурс , в котором указаны значения запроса "life learning
"
Life | tf = .5 / idf = 1.405507153 | tf_idf = 0.702753576
обучение | tf = .5 / idf = 1.405507153 / tf_idf = 0.702753576
Значения tf
я понимаю, каждый член появляется только один раз из двух возможных членов, таким образом 1/2, но я понятия не имею, откуда происходит idf
.
Я бы подумал, что #documents = 1 и occurrence = 1, log (1) = 0, поэтому idf
будет 0, но это, похоже, не так. Основано ли оно на тех документах, которыми вы пользуетесь? Как вы вычисляете tf-idf для запроса?
2 ответа:
Только tf (life) зависит от самого запроса. Однако idf запроса зависит от исходных документов, поэтому idf(life) = 1+ ln(3/2) ~= 1.405507153. Именно поэтому tf-idf определяется как умножение локальной составляющей (частоты термина) с глобальной составляющей (частотой обратного документа).
Предположим, что ваш запрослучшее страхование автомобиля , ваш общий словарь содержитавтомобиль, лучший, авто, страхование и у вас есть
N=1,000,000
документы. Поэтому ваш запрос выглядит примерно так:И одним из ваших документов может быть:
Теперь вычислитекосинусное подобие междуTF-IDF
вашегоQuery
иDocument
.