主题建模是一种用于找出文档集合中抽象“主题”的统计模型。LDA(Latent Dirichlet Allocation)是主题模型的一个示例,用于将文档中的文本分类为特定的主题。LDA算法为每一个文档构建出一个主题,再为每一个主题添加一些单词,该算法按照Dirichlet分布来建模。

那便开始吧!

数据

在这里将使用到的数据集是15年内发布的100多万条新闻标题的列表,可以从Kaggle下载。

先来看看数据。

1048575

图1

数据预处理

执行以下步骤:

标记化——将文本分成句子,将句子分成单词,把单词变为小写,去掉标点符号。

删除少于3个字符的单词。

删除所有的句号。

词形还原——将第三人称的单词改为第一人称,将过去和未来时态中的动词改为现在时。

词根化——将单词简化为词根形式。

加载gensim 和nltk库

[nltk_data] Downloading package wordnet to[nltk_data] C:\Users\SusanLi\AppData\Roaming\nltk_data…[nltk_data] Package wordnet is already up-to-date!True

编写一个函数,对数据集执行词形还原和词干预处理。

预处理之后选择要预览的文档。

源文件:[‘rain’, ‘helps’, ‘dampen’, ‘bushfires’]标记化和词形还原后的文件:[‘rain’, ‘help’, ‘dampen’, ‘bushfir’]成了!预处理标题文本,将结果保存为“processed_docs’

图2

数据集的词袋

由 “processed_docs”创建一个字典,其中包含单词出现在训练集中的次数。

0 broadcast1 communiti2 decid3 licenc4 awar5 defam6 wit7 call8 infrastructur9 protect10 summit

Gensim filter_extremes

过滤出以下几种情况下的单词:

在少于15个文档中出现(绝对数)或

在总语料库中占比分数超过0.5

以上两步之后,只保留前10万最频繁出现的单词。

Gensim doc2bow

为每个文档创建一个字典来报告单词和这些单词出现的次数,将其保存到“bow_corpus”,然后再次检查选定的文档。

[(76, 1), (112, 1), (483, 1), (3998, 1)]

预览样本预处理文件的词袋。

Word 76 (“bushfir”) appears 1 time.Word 112 (“help”) appears 1 time.Word 483 (“rain”) appears 1 time.Word 3998 (“dampen”) appears 1 time.

TF-IDF

利用models.TfidfModel模型,创建 ‘bow_corpus’的 tf-idf模型对象,并将其保存到“tfidf”。对整个语料库进行tfidf转换,并将其命名为“corpus_tfidf’。最后,预览第一份文件的TF-IDF分数值。

使用词袋运行LDA

使用gensim.models.LdaMulticore训练LDA模型并将其保存到“lda_model’

计算每个主题下出现的单词及其相对权重。

图3

你能用每个主题中的单词及其相应的权重来区分不同的主题吗?

利用TF-IDF 运行LDA

图4

现在,你能用每个主题中的单词及其相应的权重来区分不同的主题吗?

评估利用LDA词袋模型对样本文档进行分类的效果

检查将测试文件归为哪一类。

图5

测试文档被模型精确归类为可能性最大的那个主题,说明分类准确。

评估LDA TF-IDF模型对样本文档进行分类的效果

图6

测试文档被模型精确归类为可能性最大的那个主题,说明分类准确。

隐含文档上的测试模型

图7

源代码可以在GitHub上找到。期待听到您的反馈或问题。

参考资料:

python建模大赛算法_利用Python实现主题建模和LDA 算法(附链接)相关推荐

  1. python实现冒泡排序完整算法_利用python实现冒泡排序算法实例代码

    利用python实现冒泡排序算法实例代码 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数 ...

  2. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  3. python计算面积代码_利用Python求阴影部分的面积实例代码

    利用Python求阴影部分的面积实例代码 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  利用Python求阴影部分的面积实例代码.txt ] (友情提示:右键点 ...

  4. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...

  5. 基于python的系统构建_利用python构建一个简单的推荐系统

    摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...

  6. python实现邮件客户端_利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...

  7. python怎么重复程序_利用Python程序完成ABAQUS中的一些重复性操作

    对于建立过大型的ABAQUS分析模型的同学们,肯定会面对繁琐的重复性建模过程.比如对上百个点施加集中力,比如建立几百个耦合约束.这些重复性操作,如果使用cae操作的话,不仅费时,而且极其容易出错. 利 ...

  8. python黑科技脚本_利用Python实现FGO自动战斗脚本,再也不用爆肝啦~

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 利用Python实现FGO自动战斗脚本,再也不用爆 ...

  9. python图片文字合成视频_利用Python将多张图片合成视频的实现

    今天要做一个量子隧穿的的演示动画,在CSDN上看了很多大佬的文章,然而忙了接近半天才做好这件事.把踩过的坑记一下,同时这段代码也是值得记录的,因为以后也可能遇到类似的工作. 先上代码` import ...

最新文章

  1. led伏安特性实验误差分析_检测实验室误差分析知识汇编
  2. 智能实验室-杀马(Defendio) 4.16.0.840
  3. 【Android 应用开发】Android 平台 HTTP网速测试 案例 API 分析
  4. [.net 面向对象编程基础] (13) 面向对象三大特性——多态
  5. [leetcod] Clone Graph
  6. XP添加权限时提示:无法显示用户选项对话框的解决方法!
  7. 树莓派开机自动运行python程序的方法
  8. JPA学习(基于hibernate)
  9. sysfader iexplore 应用程序错误问题解决方法.
  10. linux 有道笔记,Linux笔记:manjaro_折腾笔记
  11. 北京大学计算机学院王锐,王锐-北京航空航天大学计算机学院
  12. 如何在uni-app中引入iconfont图标
  13. Krpano学习:全景图补天补地(PTGui + Photoshop)
  14. SparkConf 配置的概念和用法
  15. ROS机器人操作系统学习笔记(三)ROS通信架构
  16. C++栈和堆原理介绍
  17. 值得收藏的 5 款iPhone 数据恢复软件
  18. 20220215-CTF-MISC-BUUCTF-ningen--binwalk分析---dd命令分离--ARCHPR暴力破解
  19. 高级编程语言的发展历程(机器语言、汇编语言、高级语言)
  20. win10计算机本地连接属性在哪里,Win10系统打开本地连接属性的方法

热门文章

  1. 金庸群侠传 Windows版:用 Object Pascal 和 SDL 实现的 DOS 游戏《金庸群侠传》的重制版
  2. Maven安装配置全教程
  3. socket server 用telnet调试正常,用SocketTool工具不行
  4. redis php 书,PHP-redis中文文档
  5. windows 10系统下Nexus的下载安装
  6. 判断一个数是否是素数(Java版)
  7. Unity3D脚本手册
  8. 调用QQ/微信/新浪微博 实现登录
  9. ARM 官方文档下载地址
  10. OpenCore引导都支持哪些.efi文件