从 HashingVectorizer 中检索词汇
Posted
技术标签:
【中文标题】从 HashingVectorizer 中检索词汇【英文标题】:Retrieving vocabulary from HashingVectorizer 【发布时间】:2019-01-23 08:31:59 【问题描述】:我使用tfidfVectorizer
使用 tfidf 值作为权重来将我的词向量转换为句子向量。由于遇到内存错误,我决定改用HashingVectorizer
。有没有办法像 tfidf_vectorizer.vocabulary_[word]
一样在这个设置中获取给定单词的向量?
【问题讨论】:
【参考方案1】:HashingVectorizer
是一个无状态的转换器。如documentation of fit()
:
fit(X, y=None) Does nothing: this transformer is stateless.
fit()
方法只是为了与 scikit-learn 中的其他实用程序兼容。 HashingVectorizer
实际上什么都不记得了。所以没有词汇。它只是从提供的文档中获取标记,然后对其进行哈希处理以获取构造函数中n_features
定义的列:
n_features : integer, default=(2 ** 20)
输出矩阵中的特征(列)数。少量的特征可能会导致哈希冲突,但大 数字会导致线性学习器中的系数维度更大。
【讨论】:
感谢您的回答。您有什么建议可以在不遇到内存错误的情况下获取 TfIdf 并仍然获取词汇表? @grshankar 为此,我需要更多详细信息。您如何将词向量转换为句子向量?你什么时候遇到内存错误?您正在使用的代码等 我通过使用 tfidf 值对词向量(来自 Glove)进行加权来创建句子向量。当我尝试获取 tfidf 值时,内存错误发生在tfidf_vect.fit_transform(data)
步骤以上是关于从 HashingVectorizer 中检索词汇的主要内容,如果未能解决你的问题,请参考以下文章
Hashingvectorizer 和多项式朴素贝叶斯不能一起工作
不了解 sklearn 的 HashingVectorizer
scikit-learn - HashingVectorizer 上的 Tfidf