快速向量空间建模的python框架
gensim的Python项目详细描述
GeNSIM是一个Python库,用于^ {EM1} $主题建模
功能
- 所有算法都是独立于内存的w.r.t.语料库大小(可以处理大于ram的输入、流式、核外),
- 直观界面
- 易于插入您自己的输入语料库/数据流(简单的流式api)
- 易于用其他向量空间算法进行扩展(平凡的转换api)
- 流行算法的高效多核实现,例如在线潜在语义分析(lsa/lsi/svd), 潜在dirichlet分配(lda),随机投影(rp),分层dirichlet进程(hdp)或word2vec深度学习。
- 分布式计算:可以在计算机群集上运行潜在语义分析和潜在dirichlet分配。
- 广泛的documentation and Jupyter Notebook tutorials。
如果这个功能列表让你抓狂,你可以先在维基百科上阅读更多关于Vector Space Model和unsupervised document analysis的内容。
安装
这个软件依赖于NumPy and Scipy,两个用于科学计算的python包。 在安装gensim之前,必须先安装它们。
还建议在安装numpy之前安装fast blas库。这是可选的,但是使用优化的blas(如ATLAS或OpenBLAS)可以将性能提高一个数量级。在OSX上,Numpy会自动获取随附的BLAS,因此不需要做任何特殊的事情。
安装gensim的简单方法是:
pip install -U gensim
或者,如果您下载并解压缩了source tar.gz包, 你会跑:
python setup.py test python setup.py install
对于其他安装模式(没有根权限,开发 安装,可选安装功能),请参见install documentation。
这个版本已经在Python2.7、3.5和3.6下进行了测试。gensim 1.0.0中不再支持python 2.6、3.3和3.4。如果必须使用python 2.6、3.3或3.4,请安装gensim 0.13.4。在gensim 0.10.0中放弃了对python 2.5的支持;如果必须使用python2.5,请安装gensim0.9.1)。gensim的github repo在每次提交push和pull请求时都与Travis CI for automated testing挂钩。
为什么Gensim这么快而且内存效率很高?这不是纯粹的Python吗,Python不是又慢又贪吗?
许多科学算法可以用大矩阵运算来表示(见上面的blas注释)。gensim通过对numpy的依赖来利用这些低级的blas库。因此,虽然gensim的顶层代码是纯python,但它实际上是在后台执行高度优化的fortran/c,包括多线程(如果您的blas是这样配置的)。
在内存方面,gensim大量使用python的内置生成器和迭代器进行流式数据处理。记忆效率是gensim的design goals之一,并且是gensim的一个中心特性,而不是作为一个事后思考而固定下来的东西。
引用gensim
当citing gensim in academic papers and theses时,请使用此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 license下发布的开源软件。 版权所有(c)2009 Now Radim Rehurek