1.阅读配置参数的 Config.py 文件
完整代码如下:
#coding:utf-8
class Config(object):
data_dir = 'Data/'
vec_file = 'Data/vec.txt'
init_scale = 0.04
learning_rate = 0.001
max_grad_norm = 10 #梯度剪裁
num_layers = 2
num_steps = 101 #这个值比句子中的最大单词数多1
hidden_size = 20
word_embedding_size = 10
max_epoch = 30
max_max_epoch = 80
keep_prob = 0.5 #每个元素通过dropout层保留的概率
lr_decay = 1.0
batch_size = 16
vocab_size = 7187
num_keywords = 5
save_freq = 10 #将模型保存到硬盘上的步数(根据迭代次数计算)
model_path = './Model_News' #保存或加载的模型的路径
# parameter for generation
len_of_generation = 16 #生成的字符数目
save_time = 20 #加载节省时间的模型
is_sample = True #true表示使用sample,否则使用argmax
BeamSize = 2
2.阅读数据预处理 Preprocess.py 文件
1)Read_WordVec函数:处理word2vec得到的词向量,新增四个标记
wordLS,单词序列;vec_ls单词对应的向量序列(增加四个标记,设为[0]*embedding长度,并且保留了word2vec训练出来的词向量)
2)Read_Data函数:读取数据
trainingdata列表保存元组,元组为(['doc1', 'doc2', 'doc3'], ['k1', 'k2', 'k3'])
3)data_iterator函数:数据转为向量表示
epoch_size训练的轮数 = len(trainingdata)训练数据条数 // batch_size 一批数据的条数
raw_data:文档文字列表;
key_words:关键词向量列表,转换属性为np.int64;
data:文档词向量列表,开头[1],结束[2],未知[3],得到[1,,,3,,,,2]的文档向量列表,然后转换属性为np.int64
x:文档从位置0到倒数第二位置;y:文档从位置1到最后位置,即可表示为:x-hell,y-ello
mask:将 x 非0的部分mask为1,为0的部分mask为0
key_words = np.ar