三,正式开始文本分析
1,代码跑gpt生成
从文本中“看”出主题分布:LDA模型原理、应用和实践_lda文本分析-CSDN博客
参考上述大佬的文本分析的解释,将代码喂到gpt里面让它帮忙码
import numpy as np
import pandas as pd
import jieba
from gensim import corpora, models
# 加载Excel文件
file_path = '自己码文件地址'
data = pd.read_excel(file_path)
# 假设文本列名为 '去标点'
texts = data['去标点'].tolist()
# 对文本进行分词
news_words = [list(jieba.cut(text)) for text in texts]
# 构建词袋模型
dictionary = corpora.Dictionary(news_words)
corpus = [dictionary.doc2bow(words) for words in news_words]
# 运行LDA模型
num_topics = 10
lda = models.LdaModel(corpus=corpus, id2word=dictionary, num_topics=num_topics)
# 输出每个主题的前10个关键词并保存到列表
topics = lda.print_topics(num_topics=num_topics, num_words=10)
topic_keywords = []
for idx, topic in topics:
topic_keywords.append(f'主题 {idx}: {topic}')
print(f'主题 {idx}: {topic}')
# 对每篇新闻文本进行主题推断并保存到列表
doc_topics = []
for i, doc in enumerate(corpus):
topic = sorted(lda[doc], key=lambda x: x[1], reverse=True)[0][0]
doc_topics.append((i, topic))
print('文本编号:{},主题编号:{}'.format(i, topic))
# 将结果保存到Excel文件
output_path = '自己码文件地址'
with pd.ExcelWriter(output_path) as writer:
# 保存原始数据
data.to_excel(writer, sheet_name='原始数据', index=False)
# 保存主题关键词
topics_df = pd.DataFrame(topic_keywords, columns=['主题及关键词'])
topics_df.to_excel(writer, sheet_name='主题关键词', index=False)
# 保存每篇文本的主题编号
doc_topics_df = pd.DataFrame(doc_topics, columns=['文本编号', '主题编号'])
doc_topics_df.to_excel(writer, sheet_name='文档主题', index=False)
print(f"处理后的文件已保存到: {output_path}")
2,运行的新问题
from scipy.linalg import get_blas_funcs, triu
ImportError: cannot import name 'triu' from 'scipy.linalg'
出现了下载的scipy版本中无法提取‘triu'函数
上网看帖子整理思路,发现是当时下载的scipy版本(1.13.1)已经被删去
3,解决
根据这一份帖子的指路,我在package里面试了几个不同的版本,均出现了环境中找不到该版本或者被删除等报错。最后成功安装上的是这一版本的scipy