问题标签 [tfidfvectorizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - nlp 多标签分类 tf vs tfidf
我正在尝试解决 NLP 多标签分类问题。我有大量的文件,应该分为 29 类。
我解决问题的方法是,在清理文本、删除停用词、标记化等之后,执行以下操作:
为了创建特征矩阵,我查看了每个文档的词条的频率分布,然后创建了这些词条的表格(其中重复的词条被删除),然后我计算了相应文本中每个词的词条频率(tf
)。所以,最终我在每个文档中得到了大约 1000 个术语和它们受人尊敬的频率。
然后我将selectKbest
它们缩小到 490 左右。在缩放它们之后,我使用 OneVsRestClassifier( SVC
) 进行分类。
我得到了一个F1 score
周围,0.58
但它根本没有改善,我需要得到0.62
。
我是否正确处理问题?
我需要使用tfidf vectorizer
而不是tf
,以及如何使用?
我对 NLP 很陌生,我完全不确定下一步该做什么以及如何提高分数。
在这个主题上的任何帮助都是无价的。
谢谢
python - 用于多标签分类问题的 tf-idf 矢量化器
我有一个针对大量文本的多标签分类项目。我在文本(train_v['doc_text'])上使用了 tf-Idf 矢量化器,如下所示:
现在,我需要在一组特征(test_v['doc_text'])上使用相同的矢量化器来预测标签。但是,当我使用以下
我收到一条错误消息
关于如何处理这个问题的任何想法?
谢谢。
python - tfidf vectorizer 和 tfidf 转换器有什么区别
我知道公式tfidf vectorizer
是
我看到 scikit learn 中有 tfidf 转换器,我只是想区分它们。我找不到任何有用的东西。
python - scikit learn tfidf 的实现不同于手动实现
我尝试使用公式手动计算值,但得到的结果与使用scikit-learn实现tfidf
时得到的结果不同。
我尝试手动计算tfidf
文档,但结果与TfidfVectorizer.fit_transform
.
我应该得到的是
python - 用作 TfidfTransformer 输入的 CountVectorizer 输出与 TfidfTransformer()
最近,我开始阅读更多关于 NLP 的内容并关注 Python 教程,以了解有关该主题的更多信息。在遵循其中一个教程时,我观察到他们使用每条推文中的字数稀疏矩阵(使用 CountVectorizer 创建)作为 TfidfTransformer 的输入,TfidfTransformer 处理数据并将其提供给分类器进行训练和预测。
由于没有提供任何解释,我无法理解这背后的思考过程……不就是一个普通的词袋吗?这不能通过仅使用其中一个函数来完成,例如,只使用 Tfidf 吗?
任何澄清将不胜感激。
python - sklearn 管道:在 GridSearchCV 中应用 TimeSeriesSplit 之前,在完整的训练集上运行 TfidfVectorizer?
我确定这是可能的,但我无法弄清楚。TimeSeriesSplit
使用with给出一个训练数据集num_split=5
,拆分如下所示:
问题在于前几遍,TfidfVectorizer
正在使用名义数量的词汇/特征,我想在拆分之前在整个训练集上运行它,以便所有拆分的特征大小保持相同。
然而,除此之外,有没有人知道在使用TimeSeriesSplit
时只通过系列中的最后两个拆分的方法?因此,而不是所有 5 个拆分,GridSearchCV
只使用这两个:
这将允许更好的矢量化拟合,即使它在通过之间不会相同 - 至少它在验证之前有更大的部分可以使用。
谢谢。
编辑:
我使用的管道本质上是 TfidfVectorizer,然后是分类器。但是对数据和特征进行一些检查,看起来数据集在被馈送到 TfidVectorizer() 之前被分割了。这是粗略的笔触:
nlp - 将 TF-IDF 与预训练的词嵌入相结合
我有一个网站元描述列表(128k 描述;每个描述平均有 20-30 个单词),并且正在尝试建立一个相似度排名器(如:向我展示与该站点元描述最相似的 5 个站点)
它与 TF-IDF uni- 和 bigram 一起工作得非常好,我认为我可以通过添加预训练的词嵌入来进一步改进它(准确地说是 spacy "en_core_web_lg")。情节转折:它根本不起作用。字面上没有得到一个好的猜测,它突然吐出完全随机的建议。
下面是我的代码。关于我可能出错的地方有什么想法吗?我在监督一些非常直观的事情吗?
我从这个 Github代表那里偷了部分代码/逻辑有人在这里看到任何简单的错误吗?非常感谢!!
python-2.7 - TFIDF 值是如何转换的
我是 NLP 新手,请澄清如何使用 fit_transform 转换 TFIDF 值。
下面计算 IDF 的公式工作正常,log(文档总数 + 1 / 术语出现次数 + 1)+ 1
EG:文档 1 中术语“This”的 IDF 值(“this is a string”为 1.91629073
应用 fit_transform 后,所有项的值都发生了变化,用于转换的公式\逻辑是什么
TFID = TF * IDF
EG:文档 1(“this is a string”)中术语“This”的 TFIDF 值为 0.61366674
这个值是怎么来的,0.61366674?
machine-learning - 为什么使用多项朴素贝叶斯分类器对正类和负类进行几乎相同的前 10 个特征?
多次运行 MultinomialNB 后,我获得了 +ve 和 -ve 类 BoW、TfIdf 的相同功能。我什至在二元组和三元组上尝试过,这两个类的功能仍然相同。
这是获取文本数据 Tf-Idf 的正面和负面类别的前 10 个特征的代码。
feats_tfidf
包含分类、数字和文本数据的特征。
对于正类
输出:
对于负类
输出:
请帮助我,这是正确的做法。
python - Sklearn TfIdfVectorizer 删除包含所有停用词的文档
我正在使用sklearn
'sTfIdfVectorizer
来矢量化我的语料库。在我的分析中,有一些文档由于包含所有停用词而被过滤掉了所有术语。为了减少稀疏性问题,并且因为将它们包含在分析中没有意义,我想将其删除。
查看TfIdfVectorizer
文档,没有可以设置的参数来执行此操作。因此,我正在考虑在将语料库传递给矢量化器之前手动删除它。但是,这有一个潜在的问题,即我得到的停用词与矢量化器使用的列表不同,因为我也同时使用min_df
和max_df
选项来过滤掉术语。
有没有更好的方法来实现我正在寻找的东西(即删除/忽略包含所有停用词的文档)?
任何帮助将不胜感激。