我正在尝试构建一个文本挖掘问题的向量器。使用的词汇表应与给定的文件相匹配。但是,构建字典vocabulary_的文件数量相对较多(例如10^5)。有一种简单的方法来并行化吗?
更新:据我所知,有一种“手册”的方式.不幸的是,它只适用于min_df=1 --让我示例性地描述我为两个核所做的事情:将输入分成两个块。培训向量器(比如vec1和vec2),每个都在一个核心上,在一个数据块上(我使用了multiprocessing.Pool)。然后,
# Use sets to dedupe token
vocab = set(vec1.vocabulary_) | set(vec2.vocabulary_)
# Create final vectorizer with given vocabulary
final_vec = CountVectorizer(vocabulary=vocab)
# Create the dictionary final_vec.vocabulary_
final_vec._validate_vocabulary()会做好这份工作。
发布于 2017-09-04 14:59:27
您可以使用mllib,apache-spark wchich中包含的机器学习库将处理分布交叉节点。
这里有一个关于如何使用它进行特征提取的教程。
您还可以查看关于的sklearn文档--如何为 这里优化以获得一些灵感。
https://stackoverflow.com/questions/46039590
复制相似问题