在 gensim 中使用潜在狄利克雷分配算法进行聚类
是否可以使用 LDA 在 gensim 中对给定的一组输入进行聚类?我该怎么办呢?
Is it possible to do clustering in gensim for a given set of inputs using LDA? How can I go about it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
LDA 生成语料库中文档的低维表示。对于这种低维表示,您可以应用聚类算法,例如 k-means。由于每个轴对应一个主题,因此更简单的方法是将每个文档分配给其投影最大的主题。
LDA produces a lower dimensional representation of the documents in a corpus. To this low-d representation you could apply a clustering algorithm, e.g. k-means. Since each axis corresponds to a topic, a simpler approach would be assigning each document to the topic onto which its projection is largest.
是的,你可以。这是一个教程:http://nlp.fi。 muni.cz/projekty/gensim/wiki.html#latent-dirichlet-allocation
首先加载你的语料库,然后调用:
Yes you can. Here is a tutorial: http://nlp.fi.muni.cz/projekty/gensim/wiki.html#latent-dirichlet-allocation
First load you corpus, then call:
这是一个例子。
您需要首先从gensim复制matutils.py和utils.py,以及目录
应该喜欢图片打击。
下面的代码应该在 doc_similar.py 中。
然后只需将您的 data_file 移动到目录 data 并更改 main 函数中的 fname 即可。
This is an example.
You need copy matutils.py and utils.py from gensim first, and the directory
should like the pic blow.
The code blow should be in doc_similar.py.
Then just move your data_file into directory data and change fname in function main.
这里要理解的基本一点是,聚类要求您的数据以某种格式呈现,而不关心您如何获得数据。因此,无论您在术语文档矩阵还是降维(LDA 输出矩阵)上应用聚类,聚类都会起作用。
不过,只要做好其他事情,数据格式中的小错误可能会花费您大量的研究时间。
The basic thing to understand here is that clustering requires your data to be present in a format and is not concerned with how did you arrive at your data. So, whether you apply clustering on the term-document matrix or on the reduced-dimension (LDA output matrix), clustering will work irrespective of that.
Just do the other things right though, small mistakes in data formats can cost you a lot of time of research.