自然语言处理入门(6)——基于LDA的文章主题生成

来源:互联网 发布:云计算与人工智能 编辑:程序博客网 时间:2024/06/08 13:53

1. LDA概述

LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含主题文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布

LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布

LDA模型推导过程包括多项式分布Dirichlet分布Gibbs抽样等。具体来说,主要在以下几个方面有广泛的应用:
(1)通过Dirichlet分布取样获得生成文档的主题分布生成主题的词语分布
(2)通过主题的多项式分布取样,得到当前文档的对应词语的主题
(3)通过词语的多项式分布采样,得到生成的词语

2. 基于LDA的文章主题生成

本文使用python下的lda库获取语料库计算文章主题

实现代码如下所示:

# -*- coding: utf-8 -*-"""Created on Sun Aug 27 20:51:15 2017@author: Administrator"""import numpy as npimport ldaimport lda.datasets'''1.导入数据源'''#通过LDA库自带的API接口调用路透社的数据titles = lda.datasets.load_reuters_titles()for i in range(395):    print(titles[i])'''2.求解P(词语|主题),得到每个主题所包含的单词的分布'''X = lda.datasets.load_reuters()vocab = lda.datasets.load_reuters_vocab()titles = lda.datasets.load_reuters_titles()#设置主题数目为20个,每个主题包含8个词语,模型迭代次数为1500次model = lda.LDA(n_topics=20,n_iter=1500,random_state=1)model.fit(X)topic_word = model.topic_word_n_top_words = 8for i,topic_dist in enumerate(topic_word):    topic_words = np.array(vocab)[np.argsort(topic_dist)][:-(n_top_words+1):-1]    #输出每个主题所包含的单词的分布    print('Topic{}:{}'.format(i,''.join(topic_words)))'''3.求解P(主题|文档),得到文章所对应的主题'''doc_topic = model.doc_topic_for i in range(20):    #输出文章所对应的主题    print("{} (top topic:{})".format(titles[i],doc_topic[i].argmax()))

运行结果如下图所示:

这里写图片描述

由上图可知,调用的数据集文章数为395文章单词个数为84010文章主题数为20个部分文章的标题如下图所示:

这里写图片描述

每个主题所包含的单词的分布如下图所示:

这里写图片描述

文章所对应的主题如下图所示(部分,取前20篇文章):

这里写图片描述

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 运行广联达卡住怎么办 马桶被粪便(大便)堵了怎么办 子宫壁厚12mm怎么办 管子太多每次洗澡都是冷水怎么办 热水冷水装反了怎么办 大树被高锰酸钾灌溉了怎么办会死吗 防盗门门被锁了怎么办 门被里面反锁了怎么办 门里面被锁了怎么办 被锁在门里怎么办 门锁住了没钥匙怎么办 车被别人锁住了怎么办 汽车轱辘被锁了怎么办 小车轮胎被锁了怎么办 国防光缆无明显标识被挖断怎么办 临工210挖掘机柴油进气怎么办 汽车抛光蜡干了怎么办 洗碗铁丝球吃了怎么办 牙套铁丝吃肚子怎么办 小铁丝吃到肚子怎么办 绿色抛光膏干了怎么办 不锈钢被盐酸弄黑了怎么办 不锈钢被草酸洗了怎么办 不锈钢洗菜盆被草酸腐蚀了怎么办 汽油发电机加了柴油怎么办 装载机发动机加入齿轮油怎么办 印尼的FromE错了怎么办 寄快递被弄坏了怎么办 福田口岸手表被扣怎么办? 网页显示与服务器连接失败怎么办 唯品会中发货无法清关怎么办 国际快递被海关扣了怎么办 我想开一家物流公司手续怎么办? 物流公司把我的货弄丢了怎么办 物流公司压司机工资怎么办 立元增压泵不出水怎么办 高浊度pac不沉怎么办 集水池中沉积大量污泥怎么办 电脑qq截图不好使怎么办 捡了个手机需要指纹怎么办 手机锁屏锁住了怎么办