我想要制作一个二维二进制数组(n_samples,n_features),其中每个示例都是一个文本字符串,每个特性都是一个单词(Unigram)。
问题是样本数为350000,特征数为40000,但我的内存大小仅为4GB。
发布于 2014-04-04 16:25:42
partial_fit()。发布于 2016-12-12 21:26:06
要获取HashingVectorizer的特征名,您可以获取文档的随机样本,为它们计算散列,并通过这种方式了解哪个哈希对应于哪个标记。这并不完美,因为可以有与给定列对应的其他标记,并且可能会发生冲突,但这通常足以检查向量化结果(或者使用散列特征的线性分类器的系数)。
一个无耻的即插即用https://github.com/TeamHG-Memex/eli5包实现了以下功能:
from eli5.sklearn import InvertableHashingVectorizer
# vec should be a HashingVectorizer instance
ivec = InvertableHashingVectorizer(vec)
ivec.fit(docs_sample) # e.g. each 10-th or 100-th document
names = ivec.get_feature_names()还请参阅:调试散列向量器文档中的eli5部分。
https://stackoverflow.com/questions/22855297
复制相似问题