快速向量空间建模的python框架

gensim的Python项目详细描述


TravisWheel

GeNSIM是一个Python库,用于^ {EM1} $主题建模,^ {EM1}$文档索引和^ {EM1}$相似检索EME>大语料库。 目标受众是自然语言处理(nlp)和信息检索(ir)社区。

功能

  • 所有算法都是独立于内存的w.r.t.语料库大小(可以处理大于ram的输入、流式、核外),
  • 直观界面
    • 易于插入您自己的输入语料库/数据流(简单的流式api)
    • 易于用其他向量空间算法进行扩展(平凡的转换api)
  • 流行算法的高效多核实现,例如在线潜在语义分析(lsa/lsi/svd), 潜在dirichlet分配(lda)随机投影(rp)分层dirichlet进程(hdp)word2vec深度学习
  • 分布式计算:可以在计算机群集上运行潜在语义分析潜在dirichlet分配
  • 广泛的documentation and Jupyter Notebook tutorials

如果这个功能列表让你抓狂,你可以先在维基百科上阅读更多关于Vector Space Modelunsupervised document analysis的内容。

安装

这个软件依赖于NumPy and Scipy,两个用于科学计算的python包。 在安装gensim之前,必须先安装它们。

还建议在安装numpy之前安装fast blas库。这是可选的,但是使用优化的blas(如ATLASOpenBLAS)可以将性能提高一个数量级。在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

Analytics

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么数据库最类似于Map,每个用户/id存储无限多个“键”和“值”?   java仅使用super pom进行测试   内存不足如何解析java。OutOfMemoryError:Java堆空间在增加堆大小的情况下将意味着延迟OutOfMemoryError   来自另一个类的mysql和java jdbc调用[运行时应用程序]   java通过下拉菜单更改搜索框搜索的内容   JAVAlang.ClassNotFoundException:sun。jdbc。odbc。JdbcOdbcDriver   java Selenium点击链接   JavaSpringHibernate:从唯一值列表中获取对象列表   java Bing广告与桌面身份验证问题   java如何在没有任何外部SDK的情况下从安卓打印到收据打印机?   未调用java菜单片段类   java在IDEA和PyCharm中同时为同一个项目工作   java我们如何为同一个异常提供不同的海关信息   jakarta ee中是否预定义了“请求”和“响应”变量或值?   java更好地解决“之前和之后”难题?   尝试将数据从Excel添加到Java   发送电子邮件的Java代码只适用于一个电子邮件id?   java如何从资产解析XML?