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

python-3.x - 多标签分类器代码错误

我正在尝试训练分类器按类型标记电影。这部电影的情节可能属于不止一种类型。 这就是我的数据框的样子 ,当我试图弄清楚测试集中每种电影类型的准确度得分是多少时,我不断收到此错误消息。错误消息: TypeError:“FramePlotMethods”对象不可迭代

有人可以解释我做错了什么吗?

我从https://github.com/davidsbatista/text-classification/blob/master/movies_genres_en.csv.bz2获得了电影数据

这是一开始的代码

将数据拆分为训练集和测试集

当我运行最后一个代码块 TypeError: 'FramePlotMethods' object is not iterable时出现此错误

我在创建 df 时做错了什么?

0 投票
2 回答
6254 浏览

python - python中tfidfvectorizer sklearn中数字的令牌模式

我需要为几个句子计算 tfidf 矩阵。句子包括数字和单词。我正在使用下面的代码这样做

Tfidf 函数只考虑单词作为它的词汇,即

但我需要数字成为令牌的一部分

预期的

阅读TfidfVectorizer文档后,我知道必须更改token_patterntokenizer参数。但我不知道如何改变它来考虑数字和标点符号。

谁能告诉我如何更改参数。

0 投票
1 回答
2967 浏览

python - 如何为 TfidfVectorizer 使用列表列表或集合列表?

我正在使用sklearn TfidfVectorizer进行文本分类。

我知道这个矢量化器需要原始文本作为输入,但使用列表是有效的(参见 input1)。

但是,如果我想使用多个列表(或集合),我会收到以下属性错误。

有谁知道如何解决这个问题?提前致谢!

Traceback(最近一次调用最后一次):文件“”,第 1 行,在文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/feature_extraction/text.py”中,第 1381 行,在 fit_transform X = super(TfidfVectorizer, self).fit_transform(raw_documents) 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/feature_extraction/text.py ",第 869 行,在 fit_transform self.fixed_vocabulary_) 文件中 "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/feature_extraction/text.py",第 792 行,在 _count_vocab对于分析(doc)中的功能:文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/feature_extraction/text.py”,第266行,在标记化(预处理(self.decode(doc))),stop_words)文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/feature_extraction/text.py”,第 232 行,作为回报 lambda x: strip_accents(x.lower()) AttributeError: 'list' object has no attribute 'lower'

0 投票
0 回答
361 浏览

scikit-learn - 使用更多的 n-gram 顺序如何降低多项 NaiveBayes 分类器的准确性?

我正在使用 nltk 和 构建文本分类模型,并sklearn在 20newsgroups 数据集sklearn(每个文档大约 130 个单词)上对其进行训练。

我的预处理包括删除停用词和词形还原标记。

接下来,在我的管道中,我将它传递给tfidfVectorizer()并希望操纵矢量化器的一些输入参数以提高准确性。我读过n-grams(通常,n小于提高准确性,但是当我用分类器对矢量化器输出进行分类时,在tfidf中multinomialNB()使用ngram_range=(1,2)and ,它会降低准确性。有人可以帮忙解释为什么吗?ngram_range=(1,3)

编辑:这是请求的示例数据,其中包含我用来获取它并剥离标题的代码:

这是我的管道,运行代码来训练模型和打印精度:

0 投票
1 回答
883 浏览

python - 带有生成器的大型语料库上的 TfidfVectorizer

我将大型语料库拆分为 5K 个文件,我正在尝试使用 TF-IDF trasform 生成基于 IDF 的词汇表。

下面是代码:基本上我有一个迭代器,它循环遍历 .tsv 文件的目录,读取每个文件并生成。

这会产生以下错误:

我也试过这个:

并得到以下错误:

在大型语料库上使用 TFIDFVectorizer 的最佳方法是什么?我还尝试将一个常量字符串附加到每个产量字符串以避免第一个错误,但这也没有解决它。感谢任何帮助!

0 投票
0 回答
206 浏览

python - 成对余弦相似度 Python

计算 tf-idf 矩阵后,我必须计算成对余弦相似度,但出现内存错误!发现了类似的问题,但答案并没有解决我的问题。

目前我的代码是,

我找到的有希望的答案是这个,但我不确定该代码中的向量是什么?

0 投票
0 回答
37 浏览

scikit-learn - sklearn TtfidfVectorizer 停用词_

有没有办法获取 sklearn 的 TtfidfVectorizer 的 stopwords_ 属性(不是停用词)的 tf 和 idf?

它们已经被计算过了,所以模型应该有这些值,但是有没有人使用过它们?如果不是,我想我必须破解内部代码并自己获取它们,对吗?

[更新]

对于可能最终解决这个问题的任何人,作为更新,我最终做的是破解sklearn/feature_extraction/text.py并将单词和值导出为类 CountVectorizer 的元组,而不仅仅是单词。

0 投票
1 回答
739 浏览

python - 从 Tfidf Vectorizer 中仅选择前 n 个特征

从 tfidf Vectorizer 中选择前 100 个单词后,如何将维度更新为 100?

0 投票
1 回答
311 浏览

python - Inputting document-term frequency matrix in TfidfVectorizer()?

I am coming up with a made-up example of bag of words from three documents (I am demonstrating how tf-idf works given a document-term frequency matrix), and I want to transform my bow matrix into a tf-idf matrix. I don't actually have text data, just the number I made up in my example? How can I use that to produce tf-idf output? I am getting the error message "'numpy.ndarray' object has no attribute 'lower'" on the last line (and I am assuming it is because fit_transform is expecting text data. Is it possible to specify or override this somehow?

0 投票
0 回答
341 浏览

python-3.x - tfidf在python中使用余弦相似度进行句子相似度

我需要在源(输入)和目标(数据库记录)之间找到匹配对。我正在使用具有余弦相似度的 tf-idf 来计算匹配项。

但是,即使正确匹配对的常用词比其他词多,我得到的分数也更少,在其他少数情况下,我得到的余弦分数超过 10-12 对,这是所有分数中最高的

例如:

以下是我正在遵循的步骤

  1. 读取源和目标数据
  2. 预处理源数据和目标数据(小写,用单词去除标点符号)
  3. 对于每个源数据,我采用一个源数据并与目标数据连接。为源-目标语料库构建 tf-idf 矩阵,将源描述中的描述作为词汇表

下面是代码

在上面的代码中:数据:源-目标语料库

vocab:words 仅在源描述中

我得到的结果是

输出 1 : 对于源-目标对 :FEBCO 905532 1/2 - 1 860-AG 金属 目标:febco® 601-m 无铅气隙漏极,用于 860/lf860 860u/lf860u 系列 1/2 至 1 减压组件

我得到余弦分数 0.409562707 (这是正确的一对)

output2: 但我得到的最高余弦分数为0.5

来源:FEBCO 905532 1/2 - 1 860-AG METAL 目标:watts radiant™ 81008809 胶带垫,13 英尺 - 4 英寸 lx 3 英尺宽,40 平方英尺的覆盖面积,240 VAC 瓦特 radiant™ 胶带垫,3 英尺宽, 13 英尺 - 4 英寸长,40 平方英尺的覆盖范围,240 VAC,橙色

问题:是否有任何其他术语权重指标可以让我获得正确匹配对的最高余弦分数?