我有一组评论,每条评论讨论一个主题。我想找出这些评论中讨论最多的前m个主题。另外,这些评论是以在线方式接收的(即我不是一次性收到所有评论,而是需要逐条处理这些评论)。我考虑使用Word2Vec进行特征提取,然后应用某种聚类算法,如k-means(聚类将对应一个主题),然后我可以从前m个聚类中(这些聚类包含最多的点)得到答案。但问题是我不知道聚类的数量,而且在任何时间点,不同的主题(聚类)数量都不是固定的,因为一条新评论可能会讨论一个新主题(所以,这个问题不能通过应用不同k值的k-means来解决)。那么,我应该使用其他聚类算法(如DBSCAN)吗?在这种情况下应该采取什么方法?还是应该使用完全不同的方法?
回答:
你为什么不尝试一下简单的LDA,从一个大的主题数量开始,然后逐步缩小范围呢? https://radimrehurek.com/gensim/models/ldamodel.html
在这个思路上,你可以看看sense2vec,他们使用Reddit评论来构建主题模型 https://explosion.ai/blog/sense2vec-with-spacy