特征工程(六)lsa和lda

本文介绍如何使用LSA(潜在语义分析)和LDA(潜在狄利克雷分配)对TF-IDF和CountVectorizer特征进行降维处理,通过Python的sklearn库实现,并将降维后的特征保存至本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lsa

"""
将tfidf(word)特征降维为lsa特征,并将结果保存至本地,并将结果保存到本地

tfidf(article)可做类似处理

"""
from sklearn.decomposition import TruncatedSVD
import pickle
import time

t_start = time.time()


"""=====================================================================================================================
0 读取tfidf特征
"""
with open('tfidf_word.pkl', 'rb') as f:
	x_train, y_train, x_test = pickle.load(f)

"""=====================================================================================================================
1 特征降维:lsa
"""
lsa = TruncatedSVD(n_components=200)
x_train = lsa.fit_transform(x_train)
x_test = lsa.transform(x_test)

"""=====================================================================================================================
2 将lsa特征保存至本地
"""
data = (x_train, y_train, x_test)
with open('lsa_tfidf(word).pkl', 'wb') as f:
	pickle.dump(data, f_data)

t_end = time.time()
print("共耗时:{}min".format((t_end-t_start)/60))

lda

"""
将countvector(word)特征降维为lda特征,并将结果保存至本地

"""
from sklearn.decomposition import LatentDirichletAllocation
import pickle
import time

t_start = time.time()

"""=====================================================================================================================
1 countvector(word)特征加载
"""
with open('countvector_word.pkl', 'rb') as f:
	x_train, y_train, x_test = pickle.load(f_tf)

"""=====================================================================================================================
2 特征降维:lda
"""
lda = LatentDirichletAllocation(n_components=200)
x_train = lda.fit_transform(x_train)
x_test = lda.transform(x_test)

"""=====================================================================================================================
3 将lda特征保存至本地
"""
data = (x_train, y_train, x_test)
with open('lda_countvector(word).pkl', 'wb') as f:
	pickle.dump(data, f)

t_end = time.time()
print("共耗时:{}min".format((t_end-t_start)/60))
论文题目 «基于贝叶斯算法的微博文本情感分析与热点检测» 大体思路: 1、已有原始的微博文本数据(包括训练集测试集)。 2、对文本数据进行清洗,然后进行中文分词。 3、从预处理后的文本中提取特征,将特征用于训练贝叶斯模型。 4、利用训练好的贝叶斯模型对新的微博文本进行情感分析,并判断其情感倾向。同时,构建对比实验模型:随机森林模型,采用随机森林算法进行情感分析,与贝叶斯算法的结果进行对比,评估其在分类准确性、训练时间预测效率等方面的表现。 5、应用主题模型LDA技术从文本中提取热点话题,分析话题的热度趋势。同时,构建对比实验模型:LSA模型,采用LSA进行主题提取,比较LDALSA在热点话题检测的效果。 请根据下面的建议完善上面的内容。上面的大体内容还需要加一下对比实验,比如找一个模型贝叶斯比,证明贝叶斯的效果更好。找一个模型LDA比,证明LDA的效果更好 graph TD; A[微博数据爬取] --> B[数据清洗]; B --> C[中文分词]; C --> D[特征提取]; D --> E[贝叶斯模型训练]; D --> F[随机森林模型训练]; E --> G[贝叶斯情感分析]; F --> H[随机森林情感分析]; C --> I[LDA主题提取]; C --> J[LSA主题提取]; G --> K[结果对比评估]; H --> K; I --> L[热点话题分析(LDA)]; J --> M[热点话题分析(LSA)]; L --> N[效果对比]; M --> N; N --> O[结论]; A[微博文本数据]:微博正文、评论等内容。 B[数据清洗]:对爬取到的微博文本数据进行清洗操作,去除其中的无用字符、特殊符号、广告信息等噪声数据,提高数据质量。 C[中文分词]:采用合适的中文分词工具对清洗后的文本进行分词处理,将连续的文本分割成一个个独立的词语,为后续特征提取做准备。 D[特征提取]:从分词后的文本中提取出能够有效表征文本内容的特征,如词频、词性、TF-IDF 值等,这些特征将用于模型训练。 E[贝叶斯模型训练]:使用提取的特征对贝叶斯算法模型进行训练,通过不断调整模型参数,使其能够准确地对微博文本的情感进行分类。 F[随机森林模型训练]:同样利用提取的特征对随机森林算法模型进行训练,作为与贝叶斯模型对比的实验模型。 G[贝叶斯情感分析]:将训练好的贝叶斯模型应用于新的微博文本数据,对其进行情感分析,判断文本的情感倾向是积极、消极还是中性等。 H[随机森林情感分析]:利用训练好的随机森林模型对新的微博文本进行情感分析,与贝叶斯模型的分析结果进行对比。 I[LDA主题提取]:应用潜在狄利克雷分配(LDA)技术对分词后的微博文本进行主题提取,挖掘文本中的潜在主题信息。 J[LSA主题提取]:采用潜在语义分析(LSA)方法对微博文本进行主题提取,与 LDA 方法进行对比实验。 L[热点话题分析(LDA)]:基于 LDA 提取的主题信息,对微博文本中的热点话题进行分析,包括话题的热度、趋势等方面的研究。 M[热点话题分析(LSA)]:根据 LSA 提取的主题信息进行热点话题分析,与 LDA 的分析结果进行比较。 N[效果对比]:对贝叶斯模型随机森林模型在情感分析方面的准确性、训练时间预测效率等指标进行对比评估,同时比较 LDA LSA 在热点话题检测方面的效果。 O[结论]:根据对比评估的结果,总结不同模型的优缺点适用场景,为微博文本情感分析热点检测提供有效的方法建议。写出完整的python代码
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值