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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 使用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 
相关文章
|
4天前
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能土壤质量监测与管理
使用Python实现深度学习模型:智能土壤质量监测与管理
112 69
|
8天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1天前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现深度学习模型:智能野生动物保护与监测
使用Python实现深度学习模型:智能野生动物保护与监测
11 5
|
3天前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现智能生态系统监测与保护的深度学习模型
使用Python实现智能生态系统监测与保护的深度学习模型
19 4
|
1天前
|
人工智能 供应链 搜索推荐
大数据分析:解锁商业智能的秘密武器
【10月更文挑战第31天】在信息爆炸时代,大数据分析成为企业解锁商业智能的关键工具。本文探讨了大数据分析在客户洞察、风险管理、供应链优化、产品开发和决策支持等方面的应用,强调了明确分析目标、选择合适工具、培养专业人才和持续优化的重要性,并展望了未来的发展趋势。
|
4天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
12 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
5天前
|
数据采集 机器学习/深度学习 搜索推荐
Python自动化:关键词密度分析与搜索引擎优化
Python自动化:关键词密度分析与搜索引擎优化
|
6天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
21 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
4天前
|
数据采集 分布式计算 OLAP
最佳实践:AnalyticDB在企业级大数据分析中的应用案例
【10月更文挑战第22天】在数字化转型的大潮中,企业对数据的依赖程度越来越高。如何高效地处理和分析海量数据,从中提取有价值的洞察,成为企业竞争力的关键。作为阿里云推出的一款实时OLAP数据库服务,AnalyticDB(ADB)凭借其强大的数据处理能力和亚秒级的查询响应时间,已经在多个行业和业务场景中得到了广泛应用。本文将从个人的角度出发,分享多个成功案例,展示AnalyticDB如何助力企业在广告投放效果分析、用户行为追踪、财务报表生成等领域实现高效的数据处理与洞察发现。
18 0
|
5天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能废气排放监测与控制
使用Python实现深度学习模型:智能废气排放监测与控制
20 0

相关产品

  • 云原生大数据计算服务 MaxCompute