LDA主题抽取浅析

最近在搞文本主题相关的东西,所以花了很多时间研究LDA主题模型。个人感觉这个模型应用广泛,但是数学原理相对复杂,涉及到的数学公式比较多。下面总结一下。

传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的。

相对于文本相似,文本相似主要是根据字符串的匹配程度进行判断的,并没有加入语义的成分。而LDA主题模型,依据文档-主题,主题-词项,文档-词项的相对分布,实现了浅析语义的主题模型。

        举个例子,有两个句子分别如下:

                “乔布斯离我们而去了。”

                “苹果价格会不会降?”

        可以看到上面这两个句子没有共同出现的单词,但这两个句子是相似的,如果按传统的方法判断这两个句子肯定不相似,所以在判断文档相关性的时候需要考虑到文档的语义,而语义挖掘的利器是主题模型,LDA就是其中一种比较有效的模型。

        在主题模型中,主题表示一个概念、一个方面,表现为一系列相关的单词,是这些单词的条件概率。形象来说,主题就是一个桶,里面装了出现概率较高的单词,这些单词与这个主题有很强的相关性。

        怎样才能生成主题?对文章的主题应该怎么分析?这是主题模型要解决的问题。

        首先,可以用生成模型来看文档和主题这两件事。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的。那么,如果我们要生成一篇文档,它里面的每个词语出现的概率为:

091111_WaYh_2354614.png

 这个概率公式可以用矩阵表示:

091220_u06i_2354614.png

 其中”文档-词语”矩阵表示每个文档中每个单词的词频,即出现的概率;”主题-词语”矩阵表示每个主题中每个单词的出现概率;”文档-主题”矩阵表示每个文档中每个主题出现的概率。

根据数据实时传输的需要,我们无法依据训练数据,得到模型,然后依据获得主题模型,做聚类分析。

因此,我们将语料库中的每篇文档依次作为LDA 的输入,分别输出每篇文档主题。然后根据不同文档的主题之间的相似度计算不同文本是否相关。

当然在这个过程中,为了提高正例样本之间的相似度,拉开与干扰样本之间的相似度值。我们分别尝试使用文本关键词提取、文本摘要抽取、等方法。根据最终数据分析,准确率和召回率可以得到有效提升。

implementation of Gibbs Sampling of LDA Java代码,参考:

https://github.com/yangliuy/LDAGibbsSampling

 

转载于:https://my.oschina.net/u/2354614/blog/1079090

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值