用于快速向量空间建模的 Python 框架
项目描述
Gensim 是一个 Python 库,用于主题建模、文档索引和大型语料库的相似性检索。目标受众是自然语言处理(NLP) 和信息检索(IR) 社区。
特征
所有算法都与语料库大小无关(可以处理大于 RAM、流式传输、核外的输入)
直观的界面
易于插入您自己的输入语料库/数据流(简单的流 API)
易于使用其他向量空间算法进行扩展(简单转换 API)
流行算法的高效多核实现,例如在线潜在语义分析 (LSA/LSI/SVD)、 潜在狄利克雷分配 (LDA)、随机投影 (RP)、分层狄利克雷过程 (HDP)或word2vec 深度学习。
分布式计算:可以在计算机集群上运行潜在语义分析和潜在狄利克雷分配。
安装
该软件依赖于NumPy 和 Scipy,这两个用于科学计算的 Python 包。您必须在安装gensim之前安装它们。
还建议您在安装 NumPy 之前安装一个快速的 BLAS 库。这是可选的,但已知使用优化的 BLAS(如 MKL、ATLAS或OpenBLAS)可以将性能提高一个数量级。在 OSX 上,NumPy 会自动获取它的 vecLib BLAS,所以你不需要做任何特别的事情。
安装最新版本的 gensim:
pip install --upgrade gensim
或者,如果您已经下载并解压缩了源 tar.gz包:
python setup.py install
有关其他安装模式,请参阅文档。
Gensim 正在所有受支持的 Python 版本下不断进行测试。在 gensim 4.0.0 中放弃了对 Python 2.7 的支持——如果必须使用 Python 2.7,请安装 gensim 3.8.3。
为什么 gensim 如此快速且内存高效?不就是纯 Python,Python 不是又慢又贪婪吗?
许多科学算法可以用大矩阵运算来表示(参见上面的 BLAS 注释)。Gensim 通过对 NumPy 的依赖利用了这些低级 BLAS 库。因此,虽然 gensim-the-top-level-code 是纯 Python,但它实际上在后台执行高度优化的 Fortran/C,包括多线程(如果您的 BLAS 配置如此)。
在内存方面,gensim 大量使用 Python 的内置生成器和迭代器进行流式数据处理。内存效率是 gensim 的设计目标之一,也是 gensim 的核心特性,而不是事后才添加的东西。
文档
引用gensim
在学术论文和论文中引用 gensim 时,请使用此 BibTeX 条目:
@inproceedings{rehurek_lrec, title = {{Software Framework for Topic Modelling with Large Corpora}}, author = {Radim {\v R}eh{\r u}{\v r}ek and Petr Sojka}, booktitle = {{Proceedings of the LREC 2010 Workshop on New Challenges for NLP Frameworks}}, pages = {45--50}, year = 2010, month = May, day = 22, publisher = {ELRA}, address = {Valletta, Malta}, language={English} }
Gensim 是在GNU LGPLv2.1 许可下发布的开源软件。版权所有 (c) 2009 年至今 Radim Rehurek