plsa集成主题建模

enstop的Python项目详细描述


enstop提供了一种基于集成的主题建模方法。它使 使用基于numba的高性能plsa实现运行多个 并行引导主题模型,然后将结果输出集群到 确定一组稳定的主题。然后它可以根据 这些主题将文档嵌入到稳定的主题空间中。

为什么使用恩斯托普?

使用集成方法进行主题建模有许多优点。 最明显的是它产生了更好更稳定的话题。很快, 但是,通过使用hdbscan对主题进行集群,它可以学习 “自然”主题数。也就是说,当用户需要指定 主题的数量,actual生成的主题的数量将取决于 许多稳定的主题是通过许多引导运行产生的。实际上这个可以 或者比估计的主题数目多,或者少。

尽管有这些额外的功能,集成主题方法仍然是非常 高效,特别是在多核环境中(由于 合奏的性质)。一次规模合理的合奏可以在 大约在同一时间,它可能需要适合一个lda模型,并通常产生优于 质量结果。

除此之外,Enstop还提供了一个可使用的PLSA实现 独立的(不是合奏的一部分)。所以如果你所失去的只是 快速plsa实现(其运行速度比许多lda快得多 实现)那么enstop就是你的库。

如何使用enstop

enstop遵循sklearn api(并继承自sklearn基类),因此如果 使用sklearn进行lda或nmf,那么您已经知道如何使用enstop。一般用法是 非常直截了当。下面的示例使用enstop从 经典的20个新闻组数据集,使用sklearn的countvector生成 必需的计数矩阵。

fromsklearn.datasetsimportfetch_20newsgroupsfromsklearn.feature_extraction.textimportCountVectorizerfromenstopimportEnsembleTopicsnews=fetch_20newsgroups(subset='all')data=CountVectorizer().fit_transform(news.data)model=EnsembleTopics(n_components=20).fit(data)topics=model.components_doc_vectors=model.embedding_

如何使用PLSA

enstop还提供了一个简单易用但快速有效的plsa实现 在盒子里。与集成主题建模器一样,它遵循sklearn api和用法 非常相似。

fromsklearn.datasetsimportfetch_20newsgroupsfromsklearn.feature_extraction.textimportCountVectorizerfromenstopimportPLSAnews=fetch_20newsgroups(subset='all')data=CountVectorizer().fit_transform(news.data)model=PLSA(n_components=20).fit(data)topics=model.components_doc_vectors=model.embedding_

安装

安装enstop的最简单方法是通过pip

pip install enstop

要手动安装此软件包:

wget https://github.com/lmcinnes/enstop/archive/master.zip
unzip master.zip
rm master.zip
cd enstop-master
python setup.py install

帮助和支持

一些基本的示例笔记本可以使用here

文件来了。这个项目还很年轻。如果你需要帮助,或者 问题请open an issue 我会尽力提供帮助和指导。请同时检查 代码上的docstrings,它提供了一些参数的描述。

许可证

enstop软件包是2条款bsd许可的。

贡献

我们非常欢迎您的贡献!有很多机会 对于潜在的项目,如果您愿意,请与我们联系 救命啊。从代码到笔记本到 示例和文档都是同等价值的所以请不要觉得 你不能贡献。请fork the project做出更改并 提交请求。我们将尽最大努力解决 然后将代码合并到主分支中。

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

推荐PyPI第三方库


热门话题
从数组返回类类型的java   关于Executor服务的java澄清   java在Eclipse中找不到快捷菜单   如何在java中只打印时间?   创建不可由GC收集的java类   java有向边图的逆   java Dijital海洋空间列表对象不工作   java Play 1.2.4 findByID不适用于复合Id   如何在Java中使用switch语句添加两个整数   我的log4jjava问题。lang.ClassNotFoundException:=org。阿帕奇。log4j。滚动文件   Springboot 2.4.0RC1和SpringCloud配置(Illford)java。lang.VerifyError:无法从最终类继承   java如何使方法线程安全   使用自定义SSL配置的java启动WebLogic服务器   java缺少右括号   如何在Java中使用Rally Rest API获取测试集ID?