问题标签 [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.

0 投票
1 回答
3290 浏览

python - 大型文档语料库上的 Sklearn TFIDF

在实习项目的背景下,我必须对大量文件(~18000)进行 tfidf 分析。我正在尝试使用 sklearn 中的 TFIDF 矢量化器,但我面临以下问题:如何避免一次将所有文件加载到内存中?根据我在其他帖子上阅读的内容,使用可迭代对象似乎是可行的,但如果我使用例如 [open(file) for file in os.listdir(path)] 作为 fit_transform() 函数的raw_documents输入,我收到“打开的文件太多”错误。提前感谢您的建议!干杯!保罗

0 投票
1 回答
725 浏览

python - 在 pandas 的新文章中存储 Tf-idf 矩阵并更新现有矩阵

我有一个熊猫数据框,其列textnews articles. 给定为:-

我将文章的 Tf-IDF 值计算为:-

由于我的数据框会不时更新。因此,假设在将 of-if 计算为 matrix_1 之后,我的数据框得到了更多文章的更新。就像是:

因为我有数百万篇文章,所以我想存储上一篇文章的 tf-IDF 矩阵,并用新文章的 tf-IDF 分数更新它。一次又一次地为所有文章运行 of-IDF 代码会消耗内存。有什么办法可以做到这一点?

0 投票
1 回答
2956 浏览

regex - 如何让 TfidfVectorizer 只学习字母字符作为词汇表的一部分(不包括数字)

我正在尝试使用 SkLearn 的 TfidfVectorizer 提取 unigrams、bigrams 和 trigrams 的词汇表。这是我当前的代码:

但是,我想避免包含数字的数字和单词,并且当前输出包含诸如“0 101 110 12 15th 16th 180c 180d 18th 190 1900 1960s 197 1980 1b 20 200 200a 2d 3d 416 4th 50 7a 7b”之类的术语

我尝试使用token_pattern带有以下正则表达式的参数仅包含带有字母字符的单词:

但这会返回:ValueError: empty vocabulary; perhaps the documents only contain stop words

我也试过只删除数字,但我仍然得到同样的错误。

我的正则表达式不正确吗?还是我使用TfidfVectorizer不正确?(我也尝试过删除max_features参数)

谢谢!

0 投票
3 回答
3907 浏览

python - 计算熊猫的 Tf-Idf 分数?

我想从下面的文档中分别计算 tf 和 idf 。我正在使用python和熊猫。

我想使用不使用 Sklearn 库的 Tf-Idf 公式计算。

标记化后,我将其用于 TF 计算:

但这给了我一个计数,但我想要(count/total number of words).

对于 IDF: df[df['sent'] > 0] / (1 + len(df['sent'])

但它似乎不起作用。我想要 Tf 和 Idf 作为熊猫系列格式。

编辑

对于我使用的标记化,df['sent'] = df['sent'].apply(word_tokenize) 我得到了 idf 分数:

如何分别获得 tf 分数?

0 投票
1 回答
5600 浏览

python-3.x - 如何使用 TF-IDF 向量选择前 1000 个单词?

我有一个包含 5000 条评论的文档。我在该文件上应用了 tf-idf。这里sample_data包含 5000 条评论。我在 sample_data 上应用 tf-idf 矢量化器,范围为一克。现在我想从 sample_data 中获取tf-idf 值最高的前 1000 个单词。谁能告诉我如何获得热门词?

0 投票
1 回答
172 浏览

python-3.x - 从 HashingVectorizer 中检索词汇

我曾经tfidfVectorizer使用 tfidf 值作为权重来将我的词向量转换为句子向量。由于我遇到了内存错误,我决定HashingVectorizer改用。有没有办法像 with 一样在这个设置中获取给定单词的向量tfidf_vectorizer.vocabulary_[word]

0 投票
0 回答
80 浏览

android - 我可以在 android 上使用 tfidf 矢量化器吗

我想在 Android 应用程序中使用 tf idf 矢量化器,因为我想识别某些句子的主题,有没有在没有云机器学习的情况下这样做

0 投票
1 回答
1632 浏览

python - scikit 学习逻辑回归模型 tfidfvectorizer

我正在尝试使用 scikit learn 和下面的代码创建逻辑回归模型。我使用 9 列作为特征 (X) 和 1 列作为标签 (Y)。尝试拟合时出现错误“ValueError:找到具有不一致样本数的输入变量:[9, 560000]”即使以前 X 和 Y 的长度相同,如果我使用 x.transpose() 我得到一个不同的错误“AttributeError:'int'对象没有属性'lower'”。我假设这可能与 tfidfvectorizer 有关,我这样做是因为 3 列包含单个单词并且不起作用。这是这样做的正确方法还是应该分别转换列中的单词然后使用train_test_split?如果不是,为什么我会收到错误,我怎么能找到它们。

0 投票
1 回答
1276 浏览

python-3.x - ValueError: Passive Aggressive Classifier 中类标签的数量必须大于 1

我正在尝试使用 scikit learn 中的“被动攻击分类器”和 20 个新闻组数据集来实现一个在线分类器。我对此很陌生,因此我不确定我是否正确实施了这一点。话虽如此,我开发了一个小代码,但是当我执行它时,我不断收到错误消息:

回溯(最后一次调用):文件“/home/suleka/Documents/RNN models/passiveagressive.py”,第 100 行,在 clf.fit(X, y) 文件“/home/suleka/anaconda3/lib/python3. 6/site-packages/sklearn/linear_model/passive_aggressive.py”,第 225 行,适合 coef_init=coef_init,intercept_init=intercept_init) 文件“/home/suleka/anaconda3/lib/python3.6/site-packages/sklearn/linear_model /stochastic_gradient.py”,第 444 行,在 _fit 类中,sample_weight、coef_init、intercept_init) 文件“/home/suleka/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/stochastic_gradient.py”,第 407 行, in _partial_fit raise ValueError("类标签的数量必须是" ValueError: 类标签的数量必须大于一。

我检查了 stackoverflow 中的大多数帖子,他们建议必须只有一个唯一的类。所以我做了np.unique(labels),它显示了 20 个(20 个新闻组):

谁能帮我解决这个错误,如果我实施错误,请告诉我。

我的代码如下所示:

先感谢您!

0 投票
1 回答
138 浏览

tensorflow - 如何将特征(稀疏矩阵)和标签(数组矩阵)存储到 TFRecordDataset - Tensorflow

应用 TF-IDF 并将每个文档转换为 1*2000(特征),所以我的文档总数为 10824,稀疏矩阵为 10824 * 2000,相关标签的形状为 10824 * 35(35 个标签中的每个 0 或 1 个)

谁能帮助我,如何将它们存储到 TFRecordDataset(特征和标签)中?

在此处输入图像描述