Назад к вопросам
JuniorТеорияЧасто
Что выведет эта программа?
from sklearn.feature_extraction.text import TfidfVectorizer
texts = ["the good day", "the bad day", "the good night"]
vec = TfidfVectorizer().fit(texts)
idf = vec.idf_
voc = vec.vocabulary_
print(round(idf[voc["the"]], 2), round(idf[voc["bad"]], 2))1.0 1.69
- Ждать
0.0 1.69: scikit-learn прибавляет к логарифму 1, поэтому слово из каждого текста получает наименьший вес1.0, а не ноль. - Ждать
1.0 3.0: IDF — это логарифмln((1 + n) / (1 + df)) + 1, а не простое отношениеn / df, поэтому уbadвыходитln(2) + 1.
- Зачем TF-IDF после взвешивания приводит каждую строку к длине 1?
- Какие слова уберёт параметр стоп-слов
stop_words="english"и чем это отличается от низкого IDF?