将TfidfVectorizer的fit_transform变量转换为数组(.toarray())后所有值变为零?

我在使用一个样本数据集进行tfidf实验时,一切正常,直到我将fit-transform变量转换为数组。我试图在使用tfidf后查看我的“特征”,当我打印这些值时,它们是有意义的。然而,当我以数组形式打印时,所有值不知为何都变成了零。

打印语句的最后一行的结果是这样的:

(0, 6433)   0.1354882591295125  (0, 18430)    0.057506963357173674  (0, 16902)    0.0887002305355381  (0, 17540)    0.46335455366392575  (0, 19175)    0.2159334960329325  (0, 16590)    0.15130364285967984(0, 9104)   0.15285500637985408  (0, 16595)    0.1890315464705662  : :(24455, 14202)  0.17695626302265938  (24455, 6699) 0.2309569171857742  (24455, 10308)    0.2279428326498053  (24455, 16678)    0.2343740044032419  (24455, 12122)    0.23831874209561996  (24455, 18919)    0.23831874209561996

上面的数字是有意义的,但是当我更改代码行以数组格式打印时 print(features.toarray()),我得到的是这样的结果:

[[0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] ... [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.] [0. 0. 0. ... 0. 0. 0.]]

我确实检查了每个值,例如 features.toarray()[3][10],它们都是 0.0


回答:

我发现我的测试方法是错误的,了解更多关于tf-idf矩阵的信息后,我发现实际上还是有一些值的,每个词都有自己的列,因此只有在文档中独特的词会在矩阵中有值,它们并不是全为零。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注