【问题标题】:Retrieving vocabulary from HashingVectorizer从 HashingVectorizer 中检索词汇
【发布时间】:2019-01-23 08:31:59
【问题描述】:

我使用tfidfVectorizer 使用 tfidf 值作为权重来将我的词向量转换为句子向量。由于遇到内存错误,我决定改用HashingVectorizer。有没有办法像 tfidf_vectorizer.vocabulary_[word] 一样在这个设置中获取给定单词的向量?

【问题讨论】:

    标签: python-3.x scikit-learn nlp tfidfvectorizer


    【解决方案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) 步骤
    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 2020-10-08
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多