​「Python大数据」LDA主题分析模型

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 使用Python进行文本聚类,流程包括读取VOC数据、jieba分词、去除停用词,应用LDA模型(n_components=5)进行主题分析,并通过pyLDAvis生成可视化HTML。关键代码涉及数据预处理、CountVectorizer、LatentDirichletAllocation以及HTML文件的本地化处理。停用词和业务术语列表用于优化分词效果。

前言

本文主要介绍通过python实现数据聚类、脚本开发、办公自动化。读取voc数据,聚类voc数据。

一、业务逻辑

  • 读取voc数据采集的数据
  • 批处理,使用jieba进行分词,去除停用词
  • LDA模型计算词汇和每个词的频率
  • 将可视化结果保存到HTML文件中

    二、具体产出

    在这里插入图片描述

三、执行脚本

python lda.py

四、关键代码

# LDA主题分析模型
import pandas as pd
import jieba
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation
import pyLDAvis

fileName = "100005785591" # 文件名

# 加载停用词
with open('stopwordsfull', 'r', encoding='utf-8') as f:
    stopwords = set([line.strip() for line in f])

# 加载业务域名词
with open('luyouqi.txt', 'r', encoding='utf-8') as f:
    business_terms = set([line.strip() for line in f])

# 为jieba分词库增加业务名词
for term in business_terms:
    jieba.add_word(term)

# 对评论进行分词
def tokenize(text):
    words = jieba.cut(text)
    filtered_words = [word for word in words if word not in stopwords]
    return ' '.join(filtered_words)

# 从xlsx文件加载评论数据
data = pd.read_excel('clean/cleaned_voc'+fileName+'.xlsx')
comments = data['content'].tolist()

# 对每个评论进行分词并且形成新的评论列表
tokenized_comments = [tokenize(comment) for comment in comments]

# 使用CountVectorizer来获取词频
vectorizer = CountVectorizer(max_df=0.85, min_df=2, max_features=1000)
X = vectorizer.fit_transform(tokenized_comments)

# LDA模型
lda = LatentDirichletAllocation(n_components=5, random_state=42)
lda.fit(X)

# 计算词汇和每个词的频率
vocab = vectorizer.get_feature_names_out()
term_frequency = X.sum(axis=0).tolist()[0]

# 获取文档-主题分布和文档长度
doc_topic_dists = lda.transform(X)
doc_lengths = [len(doc.split()) for doc in comments]

# 使用pyLDAvis.prepare方法进行可视化
lda_display = pyLDAvis.prepare(
    topic_term_dists=lda.components_,
    doc_topic_dists=doc_topic_dists,
    doc_lengths=doc_lengths,
    vocab=vocab,
    term_frequency=term_frequency
)

# 将可视化结果保存到HTML文件中
output_file_path = 'lda/'+fileName+'.html'
pyLDAvis.save_html(lda_display, output_file_path)

# 读取生成的HTML文件并替换CDN链接为本地路径
with open(output_file_path, 'r', encoding='utf-8') as file:
    file_contents = file.read()

file_contents = file_contents.replace(
    'https://cdn.jsdelivr.net/gh/bmabey/pyLDAvis@3.4.0/pyLDAvis/js/ldavis.v1.0.0.js',
    'ldavis.v1.0.0.js'
)
file_contents = file_contents.replace(
    'https://cdn.jsdelivr.net/gh/bmabey/pyLDAvis@3.4.0/pyLDAvis/js/ldavis.v1.0.0.css',
    'ldavis.v1.0.0.css'
)

# 保存修改后的HTML文件
with open(output_file_path, 'w', encoding='utf-8') as file:
    file.write(file_contents)

五、关键文件

luyouqi.text 分词字典(片段)

2.4G
2.5G口
软路由
2.5G
WiFi
WiFi5
WiFi6
WiFi4

stopwordsfull 停用词(片段)

客户
层面
菜鸟
滑丝
换货
三思
固记
厂商
吸引力
体会

六、LDA话题权重优先级参考

https://www.bilibili.com/video/BV1Sr4y1C7Xc/?spm_id_from=333.337.search-card.all.click

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3天前
|
数据采集 数据可视化 索引
【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】
【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】
|
1天前
|
存储 JSON 数据可视化
用Python分析S11决赛EDGvsDK,教你怎么硬核吹EDG
用Python分析S11决赛EDGvsDK,教你怎么硬核吹EDG
11 4
用Python分析S11决赛EDGvsDK,教你怎么硬核吹EDG
|
2天前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现深度学习模型:智能人力资源管理与招聘
【8月更文挑战第12天】 使用Python实现深度学习模型:智能人力资源管理与招聘
15 2
|
2天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能环境监测与预警
【8月更文挑战第11天】 使用Python实现深度学习模型:智能环境监测与预警
12 2
|
2天前
|
数据采集 数据可视化 Python
【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】
【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】
【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】
|
3天前
|
机器学习/深度学习 数据采集 算法
【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】
【python】python基于微博互动数据的用户类型预测(随机森林与支持向量机的比较分析)(源码+数据集+课程论文)【独一无二】
|
2天前
|
存储 数据可视化 数据挖掘
【python】Python考研分数 线性回归模型预测(源码+论文)【独一无二】
【python】Python考研分数 线性回归模型预测(源码+论文)【独一无二】
|
7天前
|
机器学习/深度学习 人工智能 分布式计算
理解并利用大数据的力量:解锁数据背后的价值
【8月更文挑战第7天】大数据已成为推动社会进步和经济发展的重要力量。通过理解并利用大数据的力量,企业可以解锁数据背后的价值,优化业务流程、提升决策效率和创新能力。然而,大数据应用也面临着诸多挑战和风险,需要企业不断学习和实践以应对。相信在未来的发展中,大数据将为我们带来更多的惊喜和机遇。
|
7天前
|
数据采集 数据挖掘 Python
python爬虫去哪儿网上爬取旅游景点14万条,可以做大数据分析的数据基础
本文介绍了使用Python编写的爬虫程序,成功从去哪儿网上爬取了14万条旅游景点信息,为大数据分析提供了数据基础。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 下一篇
    云函数