【发布时间】:2016-03-29 21:02:56
【问题描述】:
我想确保我了解属性 use_idf 和 sublinear_tf 在 TfidfVectorizer 对象中的作用。这几天我一直在研究这个。我正在尝试对不同长度的文档进行分类,并使用当前的 tf-idf 进行特征选择。
我相信,当use_idf=true 算法将针对固有问题(使用 TF)的偏见正常化时,频率 X 倍的术语不应该是 X 倍重要。
使用tf*idf 公式。然后sublinear_tf = true 灌输1+log(tf) 使其规范化对长文档与短文档的偏见。
我正在处理对冗长文档(大多数属于一个类)的固有偏见,这种规范化真的会减少偏见吗?
如何确保语料库中的文档长度没有集成到模型中?
我正在尝试验证模型中是否应用了规范化。我正在尝试提取语料库的归一化向量,所以我假设我可以总结 Tfidfvectorizer 矩阵的每一行。但是总和大于 1,我认为标准化的语料库会将所有文档转换为 0-1 之间的范围。
vect = TfidfVectorizer(max_features=20000, strip_accents='unicode',
stop_words=stopwords,analyzer='word', use_idf=True, tokenizer=tokenizer, ngram_range=(1,2),sublinear_tf= True , norm='l2')
tfidf = vect.fit_transform(X_train)
# sum norm l2 documents
vect_sum = tfidf.sum(axis=1)
【问题讨论】:
标签: python scikit-learn normalization tf-idf