我正在寻找一种比scikit-learn的CountVectorizer
更高效的n-gram计数向量化实现。我已经确定CountVectorizer.transform()
调用是软件中一个巨大的瓶颈,如果我们能够使管道的这一部分更高效,将显著提高模型的吞吐量。拟合时间不重要,我们只关注变换时间。最终输出必须是scipy.sparse
向量。如果有人有任何关于潜在替代方案的建议,将不胜感激。
回答:
你试过HashingVectorizer
吗?它稍微快一些(如果我记得没错的话,最多可达2倍)。下一步是分析代码,去掉CountVectorizer
或HashingVectorizer
中你不使用的功能,并在再次分析后用优化的Cython代码重写剩余部分。
Vowpal Wabbit的基本特征处理默认使用哈希技巧,可能会给你一些关于可实现目标的提示。