抽取文档主题之gensim实现

示例代码:

import jieba
import pandas as pd
from gensim import corpora, models
from gensim.models.ldamodel import LdaModelraw = pd.read_table('./金庸-射雕英雄传txt精校版.txt', names=['txt'], encoding="GBK")#  章节判断用变量预处理
def m_head(tmpstr):return tmpstr[:1]def m_mid(tmpstr):return tmpstr.find("回 ")raw['head'] = raw.txt.apply(m_head)
raw['mid'] = raw.txt.apply(m_mid)
raw['len'] = raw.txt.apply(len)#  章节判断
chapnum = 0
for i in range(len(raw)):if raw['head'][i] == "第" and raw['mid'][i] > 0 and raw['len'][i] < 30:chapnum += 1if chapnum >= 40 and raw['txt'][i] == "附录一:成吉思汗家族":chapnum = 0raw.loc[i, 'chap'] = chapnum#  删除临时变量
del raw['head']
del raw['mid']
del raw['len']rawgrp = raw.groupby('chap')
chapter = rawgrp.agg(sum)  # 只有字符串的情况下,sum函数自动转为合并字符串
chapter = chapter[chapter.index != 0]
# print(chapter)#  设定分词及请理停用词函数
stop_list = list(pd.read_csv('./停用词.txt', names=['w'], sep='aaa', encoding='utf-8').w)
# print(stop_list)#  jeiba分词
def m_cut(intxt):return [w for w in jieba.cut(intxt) if w not in stop_list and len(w) > 1]#  文档预处理,提取主题词
chap_list = [m_cut(w) for w in chapter.txt]#  生成文档对应的字典和bow稀疏向量
dictionary = corpora.Dictionary(chap_list)
corpus = [dictionary.doc2bow(text) for text in chap_list]  # 仍为list in listtfidf_model = models.TfidfModel(corpus)  # 建立TF-IDF模型
corpus_tfidf = tfidf_model[corpus]  # 对所需文档计算TF-IDFldamodel = LdaModel(corpus_tfidf, id2word=dictionary, num_topics=10, passes=5)#  列出最重要的前若干个主题
a = ldamodel.print_topic(6)
print(a)#  计算各语料的LDA模型值
corpus_lda = ldamodel[corpus_tfidf]  # 此处应当使用和模型训练时相同类型的矩阵for doc in corpus_lda:print(doc)b = ldamodel.get_topics()
print(b)#  检索和文本内容最接近的主题
query = chapter.txt[1]  # 检索和第一章最解近的主题
query_bow = dictionary.doc2bow(m_cut(query))  # 频数向量
query_tfidf = tfidf_model[query_bow]  # TF-IDF向量
print('转换后:', query_tfidf[:10])c = ldamodel.get_document_topics(query_tfidf)  # 需要输入和文档对应的bow向量
print(c)#  检索和文本内容最接近的主题
d = ldamodel[query_tfidf]
print(d)

代码存在一点小问题,精度达不到。

抽取文档主题之gensim实现相关推荐

  1. 抽取文档主题之sklearn实现

    抽取文档主题之sklearn实现 示例代码: import pandas as pd raw = pd.read_table('../data/金庸-射雕英雄传txt精校版.txt', names=[ ...

  2. LDA模型,获取所有的文档-主题分布(即得到文档对于每个主题的概率分布)并保存

    前言:写小论文用到lda主题模型,需要得到所有的文档-主题分布.现有的只是为文档输出前几个概率大的主题 代码: import numpy as np from gensim.models import ...

  3. 【NLP】文档集数据处理 gensim corpora.Dictionary 的简单使用

    [NLP]文档集数据处理 gensim corpora.Dictionary 1. corpora 和 dictionary 2. 词典操作 3. 存储 4. 其他操作 5. 分批处理和分布式计算 6 ...

  4. 自然语言处理--文档集数据处理 gensim corpora.Dictionary

    corpora基本概念: corpora是gensim中的一个基本概念,是文档集的表现形式,也是后续进一步处理的基础.从本质上来说,corpora其实是一种格式或者说约定,其实就是一个二维矩阵.在实际 ...

  5. 文档集数据处理 gensim corpora.Dictionary

    gensim是一个python的自然语言处理库,能够将文档根据TF-IDF, LDA, LSI 等模型转化成向量模式,以便进行进一步的处理.此外,gensim还实现了word2vec功能,能够将单词转 ...

  6. Manim文档及源码笔记-CE文档-主题化指南3渲染文本和公式

    Rendering Text and Formulas 渲染文本和公式 有两种不同的方式可以在视频中渲染文本: 1.使用Pango(text_mobject) 2.使用乳胶(tex_mobject) ...

  7. Pseudo-document-based Topic Model(基于伪文档的主题模型)的理解以及源码解读

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 论文来源 Zuo Y, Wu J, Zhang H, e ...

  8. 使用深度学习阅读和分类扫描文档

    作者|小白 来源|小白学视觉 收集数据 首先,我们要做的第一件事是创建一个简单的数据集,这样我们就可以测试我们工作流程的每一部分.理想情况下,我们的数据集将包含各种易读性和时间段的扫描文档,以及每个文 ...

  9. 【深度学习】使用深度学习阅读和分类扫描文档

    收集数据 首先,我们要做的第一件事是创建一个简单的数据集,这样我们就可以测试我们工作流程的每一部分.理想情况下,我们的数据集将包含各种易读性和时间段的扫描文档,以及每个文档所属的高级主题.我找不到具有 ...

最新文章

  1. DNS Tunneling及相关实现——总之,你发起攻击都需要一个DNS server,下载一些工具作为client发起数据,server收集数据并响应...
  2. linux:scp从入门到刚入门
  3. java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()'
  4. linux tcp 断线检测,CentOS下TCP断线监测
  5. python3线程gil_python3爬虫GIL修改多线程实例讲解
  6. honeywell扫码枪取消回车_霍尼韦尔条码扫描器常见问题与解决方法
  7. 项目中配置Babel转码器的详细教程
  8. css 倒三角_【推荐收藏】10 个最佳实践来改良你的 CSS
  9. 攻防世界-music-高手进阶区-miscmisc
  10. 【翻译】Fast Patch-based Style Transfer of Arbitrary Style
  11. 十大品牌去除甲醛净化器 哪个品牌好
  12. c语言从入门到放弃(初识)
  13. 采样频率和带宽的关系_真正专业DSP的灵魂3——采样率
  14. 硬盘SMART检测参数详解[转]
  15. 806管理学原理考研复习资料
  16. 如何使得一个div在页面居中显示
  17. 大学计算机基础清华大学出版社 山东省高等学校教学改革项目,清华大学出版社-图书详情-《大学计算机基础(第2版)》...
  18. 【Cocos2dx】飘字特效与碰撞检测
  19. jqurey常用知识点 (非常重要!)
  20. matlab遍历矩阵(读取矩阵每一个数据)

热门文章

  1. 离不开深度学习的自动驾驶
  2. 360数科发布2020全年财报:全年收入上涨47.1%,科技为运营效率提供第一动力
  3. ​炸了!程序员现在没有这点技能都还不能就业了?
  4. 21个必须知道的机器学习开源工具!
  5. 基于RNN的NLP机器翻译深度学习课程 | 附实战代码
  6. @程序员,别再自己闷头学了
  7. Decoders对于语义分割的重要性 | CVPR 2019
  8. Google经典面试题解析
  9. python语音识别终极指南
  10. Stack Overflow被收购了,以后要付费“抄代码”?