/NN_SRLer

A neural network semantic role labeller based on paper "Chinese Semantic Role Labeling with Bidirectional Recurrent Neural Networks"

Primary LanguagePython

程序运行说明

代码文件说明

  • src/文件夹下存放了模型源代码,由以下代码文件组成:
    • src/data_utils.py用于数据载入,读取词典文件、训练数据和预测数据
    • src/model.py定义了BiLSTM-CRF模型
    • src/config.py存储训练和预测时的各项超参数和配置
    • src/nnsrler.py主程序所在位置
    • src/calc_f1.py用于计算F值

执行训练过程

  • models/文件夹用于存放训练的模型,log/文件夹记录训练日志
  • 执行训练过程时,先修改src/config.py中的配置
    • do_train设为Truedo_predict设为False
    • batch_size指定batch大小
    • num_epoch指定训练epoch数
    • optimizer指定优化器,可选sgdadamadagradmomentum
    • lrate指定学习率
    • save_path指定模型存储路径
    • log_dir指定日志存储路径
    • use_crf指定是否使用CRF
  • 配置好config.py文件后,在src文件夹下输入python nnsrler.py即可,训练和每个epoch的验证loss会被输出至控制台
  • models/171222_ver04/171222_ver04-9是已经训练好的BiLSTM-CRF模型,可直接用于预测,在开发集得到0.658的F值

执行预测过程

  • 修改src/config.py中的配置
    • do_train设为False,将do_predict设为True
    • load_path指定模型所在路径
    • output_path指明预测文件输出路径
    • testing_data_path指明处理后的输入文件所在位置(开发集../dat/devIn.txt测试集../dat/testIn.txt
    • testing_sourcefile_path指明原始输入文件所在位置(开发集../dat/cpbdev.txt测试集../dat/cpbtest.txt
    • 其他超参数设置需要与载入的模型训练时相同
  • 配置好config.py文件后,在src文件夹下输入python nnsrler.py即可
  • outputs/dev_171222_ver04_9.txtoutputs/test_171222_ver04_9.txt分别是用models/171222_ver04/171222_ver04-9预测的开发集和测试集输出