问题标签 [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 投票
2 回答
10955 浏览

python - 根据文本语料库中的出现列出词汇表中的单词,使用 Scikit-Learn CountVectorizer

我已经CountVectorizerscikit-learn. 我想在文本语料库中查看所有术语及其对应的频率,以便选择停用词。例如

是否有任何内置功能?

0 投票
2 回答
19022 浏览

python - CountVectorizer 不打印词汇表

我已经安装了 python 2.7、numpy 1.9.0、scipy 0.15.1 和 scikit-learn 0.15.2。现在,当我在 python 中执行以下操作时:

实际上它应该打印以下内容:

以上代码来自博客: http ://blog.christianperone.com/?p=1589

你能帮我解释一下为什么会出现这样的错误。由于词汇表没有正确索引,我无法继续理解 TF-IDF 的概念。我是 python 的新手,所以任何帮助将不胜感激。

弧。

0 投票
1 回答
5132 浏览

python - 如何在 Scikit-Learn 文本 CountVectorizer 或 TfidfVectorizer 中保留标点符号?

我有什么方法可以使用scikit-learn 中的文本CountVectorizer或参数从我的文本文档中保留标点符号 !、?、" 和 ' ?TfidfVectorizer

0 投票
0 回答
189 浏览

regex - Sklearn CountVectorizer 词汇不全

考虑以下示例:

得到的词汇是:

词汇表中缺少一些单词,例如ETH, FirstHourDay_22, Anomaly_True.

为什么是这样?我怎样才能拥有完整的词汇量?

编辑:错误可能是由于token_patternCountVectorizer 中的值

编辑:我建议重新考虑以下变量的问题:

all_docs=['ETH0x0000 0017A4779C04 09002B000005 0 PortA Unknown 755 0 45300 FirstHourDay21 LastHourDay23 duration6911 ThreatScorenan ThreatCategorynan False AnomalyFalse', 'ETH0x0000 0017A4779C04 09002B000005 2 PortC Unknown 774 0 46440 FirstHourDay21 LastHourDay23 duration6911 ThreatScorenan ThreatCategorynan False AnomalyFalse', 'ETH0x0000 0017A4779C0A 09002B000005 0 PortA Unknown 752 0 45120 FirstHourDay21 LastHourDay23 duration6913 ThreatScorenan ThreatCategorynan False AnomalyFalse', 'ICMP 10.6.224.1 71.6.165.200 0 PortA 192 IP-ICMP 1 1 70 FirstHourDay22 LastHourDay22 duration0 ThreatScore122,127 ThreatCategory21,23 True AnomalyTrue', 'ICMP 10.6.224.1 71.6.165.200 2 PortC 192 IP-ICMP 1 1 70 FirstHourDay22 LastHourDay22 duration0 ThreatScore122,127 ThreatCategory21,23 True AnomalyTrue', 'ICMP 10.6.224.1 185.93.185.239 0 PortA 192 IP-ICMP 1 1 70 FirstHourDay22 LastHourDay22 duration0 ThreatScore127 ThreatCategory23 True AnomalyTrue']

0 投票
1 回答
1435 浏览

python - Sklearn:'str'对象没有属性'read'

我想使用 Sklearn 在一个大的 csv 文件中对我的数据进行矢量化,我使用了以下代码:

第一次尝试:

但我得到了这个错误:

AttributeError:“str”对象没有属性“read”

第二次尝试,但仍然出现错误:

第三次尝试:这个确实有效,但由于内存不足而被杀死。

如何在 Sklearn 中使用 fit_transform 处理大型 CSV 文件?

0 投票
1 回答
3600 浏览

python - Pyspark - 对多个稀疏向量求和(CountVectorizer 输出)

我有一个数据集,其中包含约 30k 个唯一文档,这些文档被标记,因为它们中有特定的关键字。数据集中的一些关键字段是文档标题、文件大小、关键字和摘录(关键字周围 50 个单词)。这些约 30k 独特文档中的每一个都有多个关键字,并且每个文档在数据集中每个关键字都有一行(因此,每个文档都有多行)。以下是原始数据集中关键字段的示例:

原始数据示例

我的目标是建立一个模型来为某些事件(孩子抱怨作业等)标记文档,因此我需要对关键字和摘录字段进行矢量化,然后将它们压缩,以便每个唯一文档都有一行。

仅使用关键字作为我正在尝试做的示例 - 我应用了 Tokenizer、StopWordsRemover 和 CountVectorizer,然后它们将输出一个带有计数矢量化结果的稀疏矩阵。一个稀疏向量可能看起来像: sparseVector(158, {7: 1.0, 65: 1.0, 78: 2.0, 110: 1.0, 155: 3.0})

我想做两件事之一:

  1. 将稀疏向量转换为密集向量,然后我可以按 docID 分组并对每一列求和(一列 = 一个标记)
  2. 直接对稀疏向量求和(按 docID 分组)

为了让您了解我的意思 - 下图左侧是 CountVectorizer 输出的所需密集向量表示,左侧是我想要的最终数据集。

CountVectorizer 输出和所需数据集

0 投票
1 回答
703 浏览

scikit-learn - CountVectorizer 的 sklearn 部分拟合

是否CountVectorizer支持部分拟合?

我想训练CountVectorizer使用不同批次的数据。

0 投票
1 回答
1087 浏览

python - 添加停用词后,CountVectorizer 在 fit_transform 上引发错误

我有两段代码。一种有效,一种无效。

以下代码按预期运行,没有错误:(注意:postrain、、、和是前面定义的字符串列表。)negtrainpostestnegtest

但是,此代码会引发错误:

错误:

添加停用词是如何导致错误的?

0 投票
1 回答
5001 浏览

python - np.nan 是 CountVectorizer 中的无效文档、预期字节或 unicode 字符串

我正在尝试为每个非数字属性创建依赖列,并从 UCI 中消除成人数据集中的那些非数字属性。我正在使用 sklearn.feature_extraction.text 库中的 CountVectorizer。但是我卡在我的程序说的地方,np.nan 是一个无效的文档,预期的字节或 unicode 字符串。”

我只是想了解为什么会出现该错误。谁能帮帮我,谢谢。

这是我的代码,

错误是这样的

回溯(最后一次调用):文件“/home/amey/prog/pd.py”,第 41 行,在 X_dtm = pd.DataFrame(vect.fit_transform(temp).toarray(), columns = vect.get_feature_names() )

文件“/usr/lib/python2.7/dist-packages/sklearn/feature_extraction/text.py”,第 817 行,在 fit_transform self.fixed_vocabulary_ 中)

_count_vocab 中的文件“/usr/lib/python2.7/dist-packages/sklearn/feature_extraction/text.py”,第 752 行,用于分析(doc)中的功能:

文件“/usr/lib/python2.7/dist-packages/sklearn/feature_extraction/text.py”,第 238 行,在 tokenize(preprocess(self.decode(doc))), stop_words)

解码中的文件“/usr/lib/python2.7/dist-packages/sklearn/feature_extraction/text.py”,第 118 行

ValueError:np.nan 是无效的文档、预期的字节或 unicode 字符串。

[在 3.3 秒内完成,退出代码为 1]

0 投票
0 回答
231 浏览

python-3.x - 在 scikitlearn 中为 tfidfTransformer 添加功能

我尝试添加功能以对文档进行分类。但我的问题是,如果我的矩阵大小与样本数量不对应,如何添加特征。这是我的估算器

但在我的结果中,我没有打印所有内容......

我不明白 (323, 3000) 和 (163, 3000) 是什么意思???

通常我有 486 个文件(文件)。如果我想在我的变换方法中添加一些特征,我只需要将第一个管道 tdfIdfVectorizer 给出的数组(我理解为 (486, 3000) )连接到我的具有这种形状的新特征数组(486,我的特征)。目前,我无法个性化我的转换方法,因为此时我的行维度不兼容。提前感谢您的帮助。