Mon*_*eck 7 python tf-idf scikit-learn
我正在使用Python 2.7中sklearn包中的TfidfTransformer。
当我对参数感到满意时,我对变得有些困惑use_idf,例如:
TfidfVectorizer(use_idf=False).fit_transform(<corpus goes here>)
究竟是什么use_idf做的时候或真或假?
由于我们正在生成一个稀疏的Tfidf矩阵,因此没有理由选择一个稀疏的Tfidif矩阵。这似乎是多余的。
这篇文章很有趣,但似乎没有提到。
该文档仅说Enable inverse-document-frequency reweighting,这不是很有启发性。
任何意见表示赞赏。
编辑
我想我想通了。这非常简单:
文本->计数
Counts-> TF,这意味着我们只有原始计数或Counts-> TFIDF,这意味着我们拥有加权计数。
令我感到困惑的是……因为他们叫它,TfidfVectorizer只有当您选择它作为TFIDF时,我才意识到这是真的。您也可以使用它来创建TF。
通常,tf-idf 权重由两项组成:第一项计算归一化的词频 (TF),也就是。单词在文档中出现的次数除以该文档中的单词总数;第二项是逆文档频率(IDF),计算为语料库中文档数量除以特定术语出现的文档数量的对数。
TF:词频,衡量一个词在文档中出现的频率。 TF(t) =(术语 t 在文档中出现的次数)/(文档中术语的总数)
IDF:逆文档频率,用于衡量术语的重要性。在计算 TF 时,所有术语都被视为同等重要。然而,众所周知,某些术语,例如“is”、“of”和“that”,可能会出现很多次但并不重要。因此,我们需要通过计算以下内容来降低频繁项的权重,同时扩大稀有项:
IDF(t) = log_e(文档总数/其中包含术语 t 的文档数)。
如果您提供 use_idf=False,您将仅使用 TF 进行评分。
在词频 (TF) 计算中,所有术语都被视为同等重要。即使某些对于确定相关性并不重要的术语也会在计算中被考虑。
降低收集频率高的术语的权重有助于计算。逆文档频率将术语的 TF 权重降低一个因子,该因子随其收集频率而增长。因此该术语的文档频率DF用于衡量其权重。
| 归档时间: |
|
| 查看次数: |
2385 次 |
| 最近记录: |