问题标签 [countvectorizer]

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 投票
3 回答
406 浏览

python - 在xgboost python中预测测试数据时出错

我正在使用 xgboost python 来执行文本分类

下面是我正在考虑的火车

我正在使用 Sckit learn 的 counvectorizer 构建描述的文档术语矩阵,它使用下面的代码生成 scipy 矩阵(因为我有 110 万的大量数据,我正在使用稀疏表示来降低空间复杂度)

之后,我将使用上述矩阵应用特征选择

我正在使用 xgboost 分类器来训练模型

以下是我正在考虑的测试集

我正在为测试集构建单独的矩阵,就像我使用下面的代码为训练集做的那样

虽然预测测试集 Xgboost 期望训练集的所有特征都在测试集中,但这是不可能的(稀疏矩阵仅表示非零条目)

我无法将训练集和测试集组合成单个数据集,因为我只需要为训练集进行特征选择

谁能告诉我如何进一步接近?

0 投票
2 回答
10122 浏览

pandas - CountVectorizer 方法 get_feature_names() 生成代码但不生成单词

我正在尝试使用 sklearn CountVectorizer 对一些文本进行矢量化。之后,我想看看生成矢量化器的特征。但相反,我得到了一个代码列表,而不是单词。这是什么意思以及如何处理这个问题?这是我的代码:

我得到以下输出:

等等。

我需要真实的特征名称(单词),而不是这些代码。有人可以帮我吗?

更新:我设法解决了这个问题,但是现在当我想查看我的单词时,我看到许多实际上不是单词的单词,而是无意义的字母集(见附件截图)。在我使用 CountVectorizer 之前,有人知道如何过滤这个词吗?

截屏

data.head() 的屏幕截图

0 投票
2 回答
18412 浏览

python - Sklearn:将 lemmatizer 添加到 CountVectorizer

我在我的 countvectorizer 中添加了词形还原,正如这个Sklearn 页面中所解释的那样。

但是,在使用 创建dtmfit_transform,我收到以下错误(我无法理解)。在将词形还原添加到我的矢量化器之前,dtm 代码始终有效。我更深入地阅读了手册,并尝试了一些代码,但找不到任何解决方案。

更新:

在遵循以下@MaxU 的建议后,代码运行没有错误,但是我的输出中没有省略数字和标点符号。我运行单独的测试以查看哪些其他功能在LemmaTokenizer()执行后哪些功能不起作用。结果如下:

显然,它只是token_pattern变得不活跃。这是没有更新和工作的代码token_pattern(我只需要先安装“punkt”和“wordnet”包):

对于那些想要删除少于 3 个字符的数字、标点符号和单词(但不知道如何删除)的人,这是在使用 Pandas 数据框时为我完成的一种方法

0 投票
1 回答
249 浏览

scikit-learn - 错误:9 拟合 sklearn.naive_bayes.MultinomialNB()

在使用 TfidfCountvectorizer 拟合多项式朴素贝叶斯分类器时,我被杀了:9 错误

这里,train 大小为 409MB,vector 大小为 20.3GB。

我正在使用 MacBook Pro-13 2017、8GB RAM、256 GB SSD。

0 投票
4 回答
8961 浏览

python - 将 CountVectorizer 应用于 Python 中包含行中单词列表的列

我为文本分析做了一个预处理部分,在删除了停用词和词干之后,如下所示:

我有一列包含“清理过的单词”列表。这是一列中的 3 行:

我现在想将 CountVectorizer 应用于此列

但我得到一个错误:

从列表创建字符串并再次由 CountVectorizer 分隔会有点奇怪。

0 投票
1 回答
533 浏览

python - CountVectorizer 变换后出现意外的稀疏矩阵

我是 NLTK 的新手,无法为评论创建分类器。 在此处输入图像描述

当作为输入传递的数据的形状为 (10000,1) 时,我无法理解转换后的数据的形状如何是 1*1 稀疏矩阵。我对原始评论数据进行了一些处理。就像删除停用词、词干和删除标点符号一样。

我需要关于哪里出错的帮助,如果需要更多详细信息来查找问题,请告诉我。

0 投票
1 回答
6156 浏览

python - 在 Python 中结合 CountVectorizer 和 ngram

有一个任务是使用 ngram 对男性和女性的名字进行分类。所以,有一个像这样的数据框:

具体要求是使用

对于这个任务,创建 ngrams (n=2,3,4)

我列出了一个名字,然后使用了 ngram:

现在我需要以某种方式将所有这些向量化以用于分类,我尝试

收到:

我知道这里的列表是错误的输入类型,有人可以解释一下我应该怎么做,所以我以后可以使用 MultinomialNB,例如。我这样做是对的吗?提前致谢!

0 投票
1 回答
466 浏览

python-3.x - 无需每次调用​​ .fit_transform() 即可访问文档术语矩阵

如果我已经调用过vectorizer.fit_transform(corpus),那么以后打印文档术语矩阵以vectorizer.fit_transform(corpus)再次调用的唯一方法是什么?

我的理解是通过上述操作,我现在已将术语保存到vectorizer对象中。我假设这是因为我现在可以调用而无需再次vectorizer.vocabulary_传入。corpus

所以我想知道为什么没有类似的方法.document_term_matrix

corpus如果数据现在已经存储在vectorizer对象中,我必须再次传入似乎很奇怪。但根据文档,只有.fit, .transform, 和.fit_transform返回矩阵。

文档: http ://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html#sklearn.feature_extraction.text.CountVectorizer.fit

其他信息:

我正在使用 Anaconda 和 Jupyter Notebook。

0 投票
0 回答
359 浏览

pandas - 多项式NB中系数的作用

我的 MultinomialNB 分类器在矢量化的假/真新闻文章上进行了实例化和训练,现在我正试图理解系数背后的含义。

结果是:

假[(-6.2632792078858461,'sanders'),(-6.2426599206831099,'house'),(-6.1832365002123097,'senate') , '共和党人'),...]

我了解较高的系数 (-5.9) 意味着令牌比 -6.2 具有更高的预测性。但我不确定关系在哪里。这是否意味着令牌“共和党人”与假新闻或真实新闻高度相关。

0 投票
4 回答
84 浏览

python - 从元素列表中提取文本计数

我有一个包含文本元素的列表。

我需要计算“=”之前存在的文本。我使用了 CountVectorizer 和一个令牌模式,但它没有给出预期的结果

输出如下

但预期的输出应该是

我还需要删除“。” 从“1”。这样我的输出将是

有什么办法可以做到吗?