Як ви побачите в іншому місці, що обговорюється tf-idf, не існує загально узгодженої єдиної формули для обчислення tf-idf або навіть (як у вашому питанні) idf . Мета - досягти однієї з двох цілей: а) уникнути поділу на нуль , як, коли термін не відображається в жодних документах, навіть якщо це не відбудеться в суворому підході «мішок слів», або б) встановити нижню межу, щоб уникнути наведення терміну нульової ваги лише тому, що він відображений у всіх документах.+1
Я фактично ніколи не бачив формулювання , хоча ви згадуєте підручник. Але метою було б встановити нижню межу а не нуль, як ви правильно інтерпретуєте. Я бачив 1 + , який встановлює нижню межу 1. Найбільш часто використовуваним обчисленням видається , як у , Крістофер D, Prabhakar Raghavan, Hinrich Schütze (2008) Вступ до пошуку інформації , Cambridge University Press, p118 або Wikipedia (на основі подібних джерел).log(1+Nnt)log(2)log(Nnt)log(Nnt)
Не має безпосереднього відношення до вашого запиту, але верхня межа не , а скоріше де залежно від вашої формули вирівнювання. Це трапляється для термінів, які відображаються в документах 0 або 1 (знову ж, залежить від того, чи ви згладжуєте щоб визначити його для термінів з нульовою частотою документа - якщо ні, то максимальне значення виникає для термінів, які відображаються лише в одному документі). IDF коли і .∞k+log(N/s)k,s∈0,1s→∞1+nt=1N→∞