Nlp 查找一组相关维基百科文章的共同主题。

Nlp 查找一组相关维基百科文章的共同主题。,nlp,text-analysis,topic-modeling,unsupervised-learning,categorization,Nlp,Text Analysis,Topic Modeling,Unsupervised Learning,Categorization,我有一个由数千篇维基百科文章组成的未标记数据集。 这些文章被分为一组内容密切相关的文章。 给定其中一个集合,我想确定它的所有文章所属的公共主题 示例: 按标题列出以下一组相关文章: {微积分,矩阵,数论} 我可以确定一个共同的话题是数学 有没有一种简单的方法可以通过分析每篇文章的文本以编程方式实现这一点? 它不需要非常精确。 如果这是不可能的,一个最准确地表示相关文章集的单词列表就足够了。分配聚类标签的标准方法是根据这些文章中的术语的tf idf分数对它们进行排序(降序),然后将前三个作为该聚类

我有一个由数千篇维基百科文章组成的未标记数据集。
这些文章被分为一组内容密切相关的文章。
给定其中一个集合,我想确定它的所有文章所属的公共主题

示例:
按标题列出以下一组相关文章:

{微积分,矩阵,数论}

我可以确定一个共同的话题是数学

有没有一种简单的方法可以通过分析每篇文章的文本以编程方式实现这一点?
它不需要非常精确。

如果这是不可能的,一个最准确地表示相关文章集的单词列表就足够了。

分配聚类标签的标准方法是根据这些文章中的术语的tf idf分数对它们进行排序(降序),然后将前三个作为该聚类最可能的描述性单词进行报告

更准确地说,您可以使用以下tf idf术语得分,其中tf(t,C)是簇“C”中术语“t”的权重

score(t, C) = log (1 + \lambda/(1-\lambda) * tf(t, C)/\sum_{t' in C} tf(t', C) * cs/cf(t))
这里,tf(t,C)/\sum{t'in C}tf(t',C)简单地表示从簇C中采样项t的最大可能性,cs/cf(t)表示集合大小与项“t”的集合频率的比率(注意,如果t在其他簇中相对不常见,则该值较高,因为cf(t)较低)

因此,一个术语在该集群中出现的频率越高(可能“数学”在示例集群的所有文档中都很常见),而该术语在其他集群中越不常见(术语“数学”在其他集群中可能很少),该术语可能被选作集群标签的代表性术语


您可以使用lambda来控制可能要与术语频率分量关联的相对重要性;lambda的一个好选择是0.6

有一个很好的教程,题为《在更广泛的范围内解决同样的问题》。它提供了一个使用gensim和Python的解决方案。本教程将介绍获取所有维基百科文章、创建语料库以及使用潜在语义分析(LSA)和潜在Dirichlet分配(LDA)生成主题的整个过程。

显然,tf idf需要在内存中存储文档术语矩阵。我可以将相关文档合并到一个文档中,从而将文档数量减少到几百个,但wiki中的术语数量可能达到数十亿。有没有办法对术语进行预处理以减少矩阵中所需的数量?不要担心术语的数量。。。重要的是词汇量(独特术语)。。。而且应该在一百万以内。。。如果您发现这个数字太高,您可能会删除收集频率太低(可能有噪音的术语)或频率太高(可能没有信息的术语)的术语。。。删除stopwords也是必须的…使用tf idf和不使用库是否可以完成此任务?