Package: gensim
Gensim is a Python library fortopic modelling,document indexingandsimilarity retrievalwith large corpora.
Target audience is thenatural language processing(NLP) andinformation retrieval(IR) community.FeaturesAll algorithms arememory-independentw.r.t. the corpus size (can process input larger than RAM, streamed, out-of-core)Intuitive interfaceseasy to plug in your own input corpus/datastream (simple streaming API)easy to extend with other Vector Space algorithms (simple transformation API)Efficient multicore implementations of popular algorithms, such as onlineLatent Semantic Analysis (LSA/LSI/SVD),Latent Dirichlet Allocation (LDA),Random Projections (RP),Hierarchical Dirichlet Process (HDP)orword2vec deep learning.Distributed computing: can runLatent Semantic AnalysisandLatent Dirichlet Allocationon a cluster of computers.Extensivedocumentation and Jupyter Notebook tutorials.If this feature list left you scratching your head, you can first read more about theVector
Space Modelandunsupervised
document analysison Wikipedia.InstallationThis software depends onNumPy and Scipy, two Python packages for scientific computing.
You must have them installed prior to installinggensim.It is also recommended you install a fast BLAS library before installing NumPy. This is optional, but using an optimized BLAS such as MKL,ATLASorOpenBLASis known to improve performance by as much as an order of magnitude. On OSX, NumPy picks up its vecLib BLAS automatically, so you don’t need to do anything special.Install the latest version of gensim:pip install --upgrade gensimOr, if you have instead downloaded and unzipped thesource tar.gzpackage:python setup.py installFor alternative modes of installation, see thedocumentation.Gensim is beingcontinuously testedunder allsupported Python versions.
Support for Python 2.7 was dropped in gensim 4.0.0 – install gensim 3.8.3 if you must use Python 2.7.How come gensim is so fast and memory efficient? Isn’t it pure Python, and isn’t Python slow and greedy?Many scientific algorithms can be expressed in terms of large matrix operations (see the BLAS note above). Gensim taps into these low-level BLAS libraries, by means of its dependency on NumPy. So while gensim-the-top-level-code is pure Python, it actually executes highly optimized Fortran/C under the hood, including multithreading (if your BLAS is so configured).Memory-wise, gensim makes heavy use of Python’s built-in generators and iterators for streamed data processing. Memory efficiency was one of gensim’sdesign goals, and is a central feature of gensim, rather than something bolted on as an afterthought.DocumentationQuickStartTutorialsTutorial VideosOfficial Documentation and WalkthroughCiting gensimWhenciting gensim in academic papers and theses, please use this BibTeX entry:@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 is open source software released under theGNU LGPLv2.1 license.
Copyright (c) 2009-now Radim Rehurek