问题标签 [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 - 大型文档语料库上的 Sklearn TFIDF
在实习项目的背景下,我必须对大量文件(~18000)进行 tfidf 分析。我正在尝试使用 sklearn 中的 TFIDF 矢量化器,但我面临以下问题:如何避免一次将所有文件加载到内存中?根据我在其他帖子上阅读的内容,使用可迭代对象似乎是可行的,但如果我使用例如 [open(file) for file in os.listdir(path)] 作为 fit_transform() 函数的raw_documents输入,我收到“打开的文件太多”错误。提前感谢您的建议!干杯!保罗
python - 在 pandas 的新文章中存储 Tf-idf 矩阵并更新现有矩阵
我有一个熊猫数据框,其列text
由news articles
. 给定为:-
我将文章的 Tf-IDF 值计算为:-
由于我的数据框会不时更新。因此,假设在将 of-if 计算为 matrix_1 之后,我的数据框得到了更多文章的更新。就像是:
因为我有数百万篇文章,所以我想存储上一篇文章的 tf-IDF 矩阵,并用新文章的 tf-IDF 分数更新它。一次又一次地为所有文章运行 of-IDF 代码会消耗内存。有什么办法可以做到这一点?
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
参数)
谢谢!
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 分数?
python-3.x - 如何使用 TF-IDF 向量选择前 1000 个单词?
我有一个包含 5000 条评论的文档。我在该文件上应用了 tf-idf。这里sample_data包含 5000 条评论。我在 sample_data 上应用 tf-idf 矢量化器,范围为一克。现在我想从 sample_data 中获取tf-idf 值最高的前 1000 个单词。谁能告诉我如何获得热门词?
python-3.x - 从 HashingVectorizer 中检索词汇
我曾经tfidfVectorizer
使用 tfidf 值作为权重来将我的词向量转换为句子向量。由于我遇到了内存错误,我决定HashingVectorizer
改用。有没有办法像 with 一样在这个设置中获取给定单词的向量tfidf_vectorizer.vocabulary_[word]
?
android - 我可以在 android 上使用 tfidf 矢量化器吗
我想在 Android 应用程序中使用 tf idf 矢量化器,因为我想识别某些句子的主题,有没有在没有云机器学习的情况下这样做
python - scikit 学习逻辑回归模型 tfidfvectorizer
我正在尝试使用 scikit learn 和下面的代码创建逻辑回归模型。我使用 9 列作为特征 (X) 和 1 列作为标签 (Y)。尝试拟合时出现错误“ValueError:找到具有不一致样本数的输入变量:[9, 560000]”即使以前 X 和 Y 的长度相同,如果我使用 x.transpose() 我得到一个不同的错误“AttributeError:'int'对象没有属性'lower'”。我假设这可能与 tfidfvectorizer 有关,我这样做是因为 3 列包含单个单词并且不起作用。这是这样做的正确方法还是应该分别转换列中的单词然后使用train_test_split?如果不是,为什么我会收到错误,我怎么能找到它们。
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 个新闻组):
谁能帮我解决这个错误,如果我实施错误,请告诉我。
我的代码如下所示:
先感谢您!