源码分析:《Topic-to-Essay Generation with Neural Networks》

本文详细分析了《Topic-to-Essay Generation with Neural Networks》的源码,涵盖Config.py中配置参数的设定,Preprocess.py中数据预处理的步骤,包括Read_WordVec和Read_Data函数,以及如何进行数据迭代。Train.py文件中的主要训练流程也被提及。
摘要由CSDN通过智能技术生成

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值