当前位置:   article > 正文

python金融分析小知识(19)——NLP初探之LDA话题建模_python nlp lda

python nlp lda

Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!

让机器帮助我们在海量的文本中快速找到关键信息,这种技术称为——话题建模(topic modeling)。话题建模的方法有许多种,潜在语义索引(LSI),概率潜在语义分析(pLSA),潜狄利克雷分布(LDA)等等方法。

在我们进行话题建模之前先准备好一段文字,这部分内容在我前面几篇NLP初探的文章中有讲到:

'今年前五个月我国制造业新增贷款同比增长10.1%银保监会最新统计,今年以来我国贷款投向结构进一步优化,今年前5个月,新增贷款的一半投向了基础设施建设、制造业、批发零售业和服务业等领域。其中制造业新增贷款1.4万亿元,同比增长10.1%,制造业中长期贷款和信用贷款增长明显加快。对湖北等地免费线上技能培训延长至8月底人力资源社会保障部日前表示,“国家人事人才培训网”等6家线上培训平台面向湖北、“三区三州”深度贫困地区等地的免费线上技能培训课程和直播活动将延长至8月底。线下人力资源社会保障部还将组织“技能大师扶贫组”深入贫困地区对口帮扶。安徽261个重点项目集中开工总投资超1200亿元今天(6月20日),安徽省261个重大项目集中开工,总投资超过1200亿元。新开工项目覆盖安徽16个市,涉及智能家电、新能源电池、餐厨油烟监测等战略性新兴产业以及传统产业升级改造。湖南省2020年抗洪抢险应急演练举行今天,国家综合性消防救援队伍、驻湘部队、医疗救援社会救援力量等共计1800多人,在湖南长沙进行了2020年抗洪抢险应急演练。演练过程中,直升机、冲锋舟、无人机等特种救援装备齐上阵,实战化检验抗洪抢险应急能力。精彩日环食天象明日在全球多地上演天文预报显示,6月21日,精彩的日环食天象将在全球多地上演。在我国,西藏、四川、重庆、贵州、湖南、江西、福建、台湾等地的部分地区将自西向东先后出现日环食景观,全国其他地区的人们可以看到日偏食。'

在经过结巴分词以及停用词的筛选后,变成如下:

  1. import jieba
  2. message = "今年前五个月我国制造业新增贷款同比增长10.1%银保监会最新统计,今年以来我国贷款投向结构进一步优化,今年前5个月,新增贷款的一半投向了基础设施建设、制造业、批发零售业和服务业等领域。其中制造业新增贷款1.4万亿元,同比增长10.1%,制造业中长期贷款和信用贷款增长明显加快。对湖北等地免费线上技能培训延长至8月底人力资源社会保障部日前表示,“国家人事人才培训网”等6家线上培训平台面向湖北、“三区三州”深度贫困地区等地的免费线上技能培训课程和直播活动将延长至8月底。线下人力资源社会保障部还将组织“技能大师扶贫组”深入贫困地区对口帮扶。安徽261个重点项目集中开工总投资超1200亿元今天(6月20日),安徽省261个重大项目集中开工,总投资超过1200亿元。新开工项目覆盖安徽16个市,涉及智能家电、新能源电池、餐厨油烟监测等战略性新兴产业以及传统产业升级改造。湖南省2020年抗洪抢险应急演练举行今天,国家综合性消防救援队伍、驻湘部队、医疗救援社会救援力量等共计1800多人,在湖南长沙进行了2020年抗洪抢险应急演练。演练过程中,直升机、冲锋舟、无人机等特种救援装备齐上阵,实战化检验抗洪抢险应急能力。精彩日环食天象明日在全球多地上演天文预报显示,6月21日,精彩的日环食天象将在全球多地上演。在我国,西藏、四川、重庆、贵州、湖南、江西、福建、台湾等地的部分地区将自西向东先后出现日环食景观,全国其他地区的人们可以看到日偏食。"
  3. word = ' '.join(jieba.cut(message))
  4. words = ''
  5. stopwords = [line.strip() for line in open('stopwords.txt',encoding='UTF-8').readlines()]
  6. for w in word:
  7. if w not in stopwords:
  8. words = words + w
  9. words

 

'年 前  月 国 制造业 新增 贷款  增长  银 保监 新 统计  年 国 贷款 投 结构 进步 优化  年 前   月  新增 贷款   投  基础设施 建设  制造业  批发 售业  服务业  领域  中 制造业 新增 贷款  万亿元   增长   制造业 中 长期贷款  信贷款 增长 明显 加   湖北   免费 线 技 培训 延长   月底 力资源 社保障部 日前 表示   国家 事  培训网    家线  培训 平台 面 湖北   区 州  深度 贫困区    免费 线 技 培训 课程  直播 动  延长   月底  线 力资源 社保障部   组织  技 师 扶贫 组  深入 贫困区 口 帮扶  安徽   重点项目 集中 开工 总 投资 超  亿元 天   月  日   安徽省   重项目 集中 开工  总 投资 超  亿元  新开工 项目 覆盖 安徽  市  涉 智 家电  新源 电池  餐厨 油烟 监测  战性 新兴产业  统产业 升级 改造  湖南省  年 抗洪抢险 应急 演练 举行 天  国家 综合性 消防 救援 队伍  驻湘 部队  医疗 救援 社 救援 力量  计     湖南 长沙 进行   年 抗洪抢险 应急 演练  演练 程 中  直升机  锋舟  机  特 救援 装备  阵  实战 化 检验 抗洪抢险 应急 力  精彩 日环食 天象 明日  全球  演 天文 预报 显示   月  日  精彩  日环食 天象   全球  演   国  西藏  川  重庆  贵州  湖南  江西  福建  台湾    部分 区   西东 先 现 日环食 景观  全国  区     日偏食 '

下面我们来进行话题建模:

1.需要先进行文本向量化

  1. from sklearn.decomposition import LatentDirichletAllocation
  2. from sklearn.feature_extraction.text import TfidfVectorizer
  3. ## 文本向量化
  4. with open('message.txt','w') as f:
  5. f.write(words) #将上一步的分好词的文本保存为一个TXT文档
  6. f = open('message.txt','r')
  7. tf = TfidfVectorizer(ngram_range=(1,1))
  8. x_train = tf.fit_transform(f)
  9. x_train.toarray()

2.使用LDA模型进行话题建模 

接下来我们通过LDA模型来让机器从文档中提取出指定数量的话题,并且告诉我们每个话题包含的高频词有哪些:

  1. ## 定义一个打印话题建模的函数
  2. def print_topics(model, feature_names, n_top_words):
  3. for topic_idx, topic in enumerate(model.components_):
  4. message = 'topic #%d' % topic_idx
  5. message = message + ' '.join([feature_names[i] for i in topic.argsort()[:-n_top_words-1:-1]])
  6. print(message)
  1. lda = LatentDirichletAllocation(n_components=10)
  2. lda.fit(x_train)
  3. n_top_words = 10
  4. ## 调用打印函数
  5. print_topics(lda,tf.get_feature_names(),n_top_words)

最后我们来看看结果,一共打印了10个话题,每个话题有10个高频词:

topic #0制造业 救援 贷款 新增 开工 国家 增长 演练 应急 湖南
topic #1售业 覆盖 检验 福建 统产业 监测 演练 医疗 培训网 集中
topic #2明日 天象 湖南省 景观 西藏 月底 重点项目 驻湘 精彩 优化
topic #3贫困区 消防 实战 日前 台湾 力资源 新兴产业 直升机 福建 保监
topic #4日前 装备 锋舟 直升机 天文 投资 服务业 万亿元 培训网 进步
topic #5贵州 领域 预报 电池 批发 救援 队伍 直升机 力资源 深度
topic #6表示 日环食 领域 国家 救援 抗洪抢险 消防 湖北 驻湘 结构
topic #7重点项目 部分 结构 监测 平台 扶贫 湖北 全球 基础设施 显示
topic #8重点项目 景观 增长 平台 进行 进步 统计 表示 医疗 扶贫
topic #9天象 预报 深入 月底 战性 安徽 保监 直播 明日 信贷款

好啦,今天的文章就分享到这里啦! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/347592?site
推荐阅读
相关标签
  

闽ICP备14008679号