ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《学术小白的学习之路 07》自然语言处理之 LDA主题模型

2021-09-12 21:02:07  阅读:209  来源: 互联网

标签:LDA 文本 07 fit 模型 主题 2.1 自然语言


本文主要是学习参考杨秀璋老师的博客,笔记总结与记忆。
原文链接

文章目录


书山有路勤为径,学海无涯苦作舟(行行代码要手敲)

在这里插入图片描述


零、吃水不忘挖井人

原文链接

一、LDA主题模型

1.1简介

LDA(文档主题生成模型)通常由包含词、主题和文档三层结构组成。

LDA模型属于无监督学习,它是将一篇文档的每个词都以一定概率分布在某个主题上,并从这个主题中选择某个词语。

文档到主题的过程是服从多项分布的,主题到词的过程也是服从多项分布的。

文档主题生成模型(又称为盘子表示法(Plate Notation),下图是模型的标示图,其中双圆圈表示可测变量,单圆圈表示潜在变量,箭头表示两个变量之间的依赖关系,矩形框表示重复抽样,对应的重复次数在矩形框的右下角显示。LDA模型的具体实现步骤如下:

  • 从每篇网页D对应的多项分布θ中抽取每个单词对应的一个主题z。
  • 从主题z对应的多项分布φ中抽取一个单词w。

重复步骤(1)(2),共计Nd次,直至遍历网页中每一个单词。

在这里插入图片描述

1.2安装

二、LDA主题识别

Python的LDA主题模型分布可以进行多种操作,常见的包括:

  • 输出每个数据集的高频词TOP-N
  • 输出文章中每个词对应的权重及文章所属的主题
  • 输出文章与主题的分布概率,文本一行表示一篇文章,概率表示文章属于该类主题的概率;
  • 输出特征词与主题的分布概率,这是一个K*M的矩阵,K为设置分类的个数,M为所有文章词的总数。

2.1前期操作

2.1.1生成TF-IDF文本权重矩阵

先要对文本数据进行分词和数据的清洗操作,对清洗完的数据进行生成文本的权重矩阵。

#coding=utf-8
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer  
  
#读取语料
corpus = []  
for line in open('test.txt', 'r').readlines():  
    corpus.append(line.strip())
    
#将文本中的词语转换为词频矩阵
vectorizer = CountVectorizer()  
X = vectorizer.fit_transform(corpus)  #计算个词语出现的次数  
word = vectorizer.get_feature_names() #获取词袋中所有文本关键词

#计算TF-IDF值
transformer = TfidfTransformer()  
tfidf = transformer.fit_transform(X) #将词频矩阵X统计成TF-IDF值

#查看数据结构 输出tf-idf权重
print(tfidf.toarray())
weight = tfidf.toarray()

2.1.2 调用LDA模型

model = lda.LDA(n_topics=3, n_iter=500, random_state=1)  
model.fit(X)          
#model.fit_transform(X) 

参数n_topics表示设置3个主题,n_iter表示设置迭代次数500次,并调用fit(X)或fit_transform(X)函数填充训练数据.

标签:LDA,文本,07,fit,模型,主题,2.1,自然语言
来源: https://blog.csdn.net/qq_44951759/article/details/120255291

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有