DF это число документов коллекции, в которых встретился термин. IDF это обратная величина, показывающая редкость термина, обычно через логарифм.
idf(t) = ln((N + 1) / (df(t) + 1)) + 1где N это общее число документов в коллекции, df(t) это число документов, содержащих термин t.
Возьмем сто описаний приложений одной ниши. Слово «приложение» встречается в девяноста восьми из них: DF равен 98, IDF близок к нулю, различительная сила почти нулевая. Слово «эквалайзер» встречается в трех: DF равен 3, IDF высокий, и его появление сильно сужает круг подходящих документов.
Логарифм здесь нужен, чтобы редкость не росла взрывным образом и чтобы произведения вероятностей превращались в суммы весов. IDF считается по конкретной коллекции. Меняете коллекцию, страну, язык или категорию, и все веса становятся другими. Именно поэтому нельзя взять чужую таблицу весов и применить к своей нише.
Читать: Introduction to Information Retrieval, глава 6; Speech and Language Processing; TfidfVectorizer в scikit-learn