# 加载 十一五-十四五产业规划 语料库 import pickle text_corpus=pickle.load(open('/Users/hh/Desktop/11_14/十一五-十四五产业规划bow.pkl',mode='rb')) # for text in text_corpus: # print(text) # print('%'*20) # 十一五-十四五产业规划 产业规划 词典 import gensim dictionary = gensim.corpora.Dictionary(text_corpus) print(dictionary.token2id) # bag of word 模型,文档向量化 bow_corpus=[] for bow in text_corpus: bow_corpus.append(dictionary.doc2bow(bow)) # print(bow_corpus[0]) # 展示 十一五-十四五产业规划 主要产业 from pyecharts.charts import HeatMap from pyecharts import options as opts import random !pip install matplotlib import matplotlib x = ['十一五','十二五','十三五','十四五'] y = list(dictionary.token2id.keys()) import copy value = copy.deepcopy(bow_corpus) # 补充 十一五-十四五 空产业 0 key_set=set(range(0,len(dictionary))) for i in range(0,len(x)): if len(value[i]) !=14: bow_set=set([ele[0] for ele in value[i] ]) minus_set= key_set - bow_set # print(list(minus_set)) for ele in minus_set: value[i].insert(ele,(ele, 0)) # 展示 十一五-十四五产业规划 变迁 value_heatmap= [[i,j,value[i][j][1]] for i in range(0,len(x)) for j in range(0,len(y))] heatmap= ( HeatMap(init_opts=opts.InitOpts(width="1400px")) .add_xaxis(x) .add_yaxis("主要产业", y, value_heatmap,label_opts=opts.LabelOpts(position="middle")) .set_global_opts(title_opts=opts.TitleOpts(title="HeatMap"), visualmap_opts=opts.VisualMapOpts(min_=0,max_=50), tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross")) ) heatmap.render_notebook() %matplotlib inline plt.show()
时间: 2024-04-18 12:31:27 浏览: 161
这段代码的目的是加载一个名为"十一五-十四五产业规划"的语料库,并展示其主要产业的变迁情况。代码中使用了许多库和方法来实现这个目标。
首先,使用pickle模块加载了名为"十一五-十四五产业规划bow.pkl"的pkl文件,将其中的文本语料库加载到了变量text_corpus中。
然后,使用gensim库的corpora.Dictionary方法创建了一个词典对象dictionary,并打印了词典中的token到id的映射关系。
接下来,通过遍历文本语料库text_corpus,使用dictionary.doc2bow方法将每个文本转换为词袋模型,并将其添加到bow_corpus列表中。
之后,使用pyecharts库创建了一个热力图对象heatmap,并设置了相关的x轴、y轴和数值。在此过程中,还对数据进行了处理,确保每个时间段都有完整的主要产业。
最后,使用heatmap.render_notebook()方法将热力图渲染到Notebook中,并使用plt.show()方法显示热力图。
请确保你已经安装了所需的库,并将代码中的文件路径替换为你实际的文件路径。如果还有其他问题,请随时提问。
相关问题
{'体育': 0, '数字化': 1, '文化旅游': 2, '新能源': 3, '旅游': 4, '轨道交通': 5, '中医药': 6, '物联网': 7, '大数据': 8, '新一代信息技术': 9, '互联网+': 10, '人工智能': 11, '区块链': 12, '数字经济': 13, '生命': 14} Requirement already satisfied: matplotlib in /Users/hh/anaconda3/lib/python3.10/site-packages (3.7.0) Requirement already satisfied: cycler>=0.10 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (0.11.0) Requirement already satisfied: contourpy>=1.0.1 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (1.0.5) Requirement already satisfied: fonttools>=4.22.0 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (4.25.0) Requirement already satisfied: packaging>=20.0 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (22.0) Requirement already satisfied: pyparsing>=2.3.1 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (3.0.9) Requirement already satisfied: kiwisolver>=1.0.1 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (1.4.4) Requirement already satisfied: python-dateutil>=2.7 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (2.8.2) Requirement already satisfied: numpy>=1.20 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (1.23.5) Requirement already satisfied: pillow>=6.2.0 in /Users/hh/anaconda3/lib/python3.10/site-packages (from matplotlib) (9.4.0) Requirement already satisfied: six>=1.5 in /Users/hh/anaconda3/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
根据你提供的词典token到id的映射关系,以及你已经安装了matplotlib库,你应该可以成功绘制热力图了。
请确保在绘制热力图之前,你已经执行了以下代码来加载数据和设置词典:
```python
import pickle
import gensim
import matplotlib.pyplot as plt
# 加载语料库
text_corpus = pickle.load(open('/Users/hh/Desktop/11_14/十一五-十四五产业规划bow.pkl', mode='rb'))
# 创建词典
dictionary = gensim.corpora.Dictionary(text_corpus)
# 设置词典的token到id映射关系
token2id = dictionary.token2id
# 打印词典的token到id映射关系
print(token2id)
# 其他代码...
```
接下来,你可以使用你提供的绘制热力图的代码来绘制热力图。确保在绘制热力图之前,`data`变量中包含了正确的数据。
希望这次能成功绘制热力图!如果还有其他问题,请随时提问。
给我一段python代码,实现将gensim的LDA模型的corpus和dicitionary两项数据保存到npy文件中,并可以在该文件中读取该数据为LDA模型训练数据,运行模型
好的,以下是实现将gensim的LDA模型的corpus和dicitionary两项数据保存到npy文件中,并可以在该文件中读取该数据为LDA模型训练数据,运行模型的Python代码:
```python
import numpy as np
from gensim import corpora, models
# 构建语料库和词典
corpus = corpora.MmCorpus('corpus.mm')
dictionary = corpora.Dictionary.load('dictionary.dict')
# 训练LDA模型
lda_model = models.LdaModel(corpus=corpus, id2word=dictionary, num_topics=10)
# 保存训练数据
np.save('corpus.npy', corpus)
np.save('dictionary.npy', dictionary)
# 保存模型
lda_model.save('lda_model')
# 读取训练数据
corpus = np.load('corpus.npy', allow_pickle=True)
dictionary = np.load('dictionary.npy', allow_pickle=True)
# 读取模型
lda_model = models.LdaModel.load('lda_model')
# 使用训练数据运行模型
topics = lda_model[corpus]
```
这段代码中,我们首先使用`corpora.MmCorpus`读取语料库,使用`corpora.Dictionary.load`读取词典,然后使用这两项数据训练LDA模型。接着,我们使用`numpy.save`将corpus和dictionary保存到npy文件中,使用`lda_model.save`将LDA模型保存到文件中。
在读取训练数据和模型时,我们使用`numpy.load`和`models.LdaModel.load`从文件中读取数据和模型。最后,我们使用训练数据运行模型并得到主题分布。
阅读全文