使用Python库来提取文本的主要主题

时间:2016-04-01 14:19:30

标签: python scikit-learn nltk

我想使用Python获取文本的主要主题(或一组主要主题)。

到目前为止,我查看了nltkscikit-learn的API,看看是否有这样的方法。 然而,我发现的最好的事情是这个解释http://www.nltk.org/book/ch07.html,它没有提到如何提取主题。

是否有提供此功能的Python库?

1 个答案:

答案 0 :(得分:1)

您正在寻找与scikit-learn捆绑在一起的Latent Dirichlet Allocation,但请注意,没有'主要主题'一个文本 - 一个句子可以是关于多个主题。

Here是对LDA的一个很好的介绍。 LDA将文档建模为主题分布的混合,从中以一定概率生成单词。没有必要事先指定可能遇到的各种主题 - LDA会自动为您完成。

引自我链接到的博文:

  

更详细地说,LDA将文档表示为以某些概率吐出单词的主题混合。它假设文件是   以下列方式制作:在编写每个文档时,你

     
      
  • 决定文件的字数N(比如说   到泊松分布)。

  •   
  • 为文档选择一个主题混合(根据一组固定的K主题上的Dirichlet分布)。例如,假设我们有上面两个食物和可爱的动物主题,你可以选择由1/3食物和2/3组成   可爱的动物。

  •   
  • 通过以下方式生成文档中的每个单词w_i:

  •   
    •   
    • 首先采摘   一个主题(根据您采样的多项分布)   以上;例如,您可能以1/3的概率选择食物主题   和2/3概率的可爱动物话题)。
    •   
  •   
    •   
    • 使用主题   生成单词本身(根据主题的多项式)   分配)。例如,如果我们选择食物主题,我们可能会   以30%的概率生成“西兰花”这个词,“香蕉”含15%   概率,等等。
    •   
  •   
     

假设这个生成模型为   收集文件,然后LDA试图从中回溯   用于查找可能已生成的一组主题的文档   集合。