【实战】事件抽取BGCN笔记

  • Batch大小是在更新模型之前处理的多个样本

  • Epoch大小是通过训练数据集的完整传递次数,可以理解为Epoch=重复多少次完整的训练集批处理,Epoch大小必须大于或等于1且小于或等于训练数据集中的样本数。可以将Epoch设置为1和无穷大之间的整数值。

  • 模型权重更新次数= Epoch* (数据集样本数/每个Batch大小)

例:有一个包含200个样本(即200个数据行)的数据集,选择Batch大小为5,Epoch为1000

这意味着数据集:

  • 分为200/5=40个Batch,即每一个epoch将涉及40次模型更新

  • 每个Batch有5个样本

  • 经过五个样本后,模型将更新一次它的权重

  • 1000个Epoch,表示模型将整个数据集反复传递1000次

  • 在整个训练过程中,总共有40000个Batch,即40000次模型更新

1.安装Anaconda并在Anaconda中配置Pytorch环境

2.在Pytorch环境中导入pytorch_pretrained_bert方便后续使用bert模型

1
pip install pytorch_pretrained_bert

3.在Pycharm项目中将解释器路径设置为Anaconda/envs/pytorch/python.exe

ipdb的使用
ipdb是一个python调试工具,运行程序后, 会在执行到set_trace()这一行时中断程序 并出现提示符

1
ipdb>

常用的ipdb命令

  • n(下一个)
  • ENTER(重复上次命令)
  • q(退出)
  • p<变量>(打印变量)
  • c(继续)
  • l(查找当前位于哪里)
  • s(进入子程序)
  • r(运行直到子程序结束)
  • !

安装sklearn

1
pip install sklearn

Stanford CoreNLP的使用

  • CoreNLP下载最新版本的CoreNLP并解压到一个纯英文路径(例D:\Anaconda3\envs\pytorch\stanford-corenlp-4.2.2)
    • 若需对非英文语言进行处理则还需在CoreNLP下载对应的语言包并解压至\stanford-corenlp-4.2.2
  • 安装stanfordcorenlp
    1
    pip install stanfordcorenlp 
  • Python代码中使用形式
    1
    2
    3
    4
    5
    6
    from stanfordcorenlp import StanfordCoreNLP

    # 处理英文语句
    nlp = StanfordCoreNLP("D:\Anaconda3\envs\pytorch\stanford-corenlp-4.2.2")
    # 处理中文语句
    nlp_ch = StanfordCoreNLP("D:\Anaconda3\envs\pytorch\stanford-corenlp-4.2.2", lang='zh')
  • 分词
    1
    2
    result = nlp.word_tokenize('This is an example of tokenziation.')
    # result = ['This', 'is', 'an', 'example', 'of', 'tokenziation', '.']
  • 词性标注
    1
    2
    result = nlp.pos_tag('This is an example of tokenziation.')
    # result = [('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('of', 'IN'), ('tokenziation', 'NN'), ('.', '.')]

词性解释:

ROOT :    要处理文本的语句
IP   :    简单从句
NP   :    名词短语
VP   :    动词短语
PU   :    断句符,通常是句号、问号、感叹号等标点符号
LCP  :    方位词短语
PP   :    介词短语
CP   :    由‘的’构成的表示修饰性关系的短语
DNP  :    由‘的’构成的表示所属关系的短语
ADVP :    副词短语
ADJP :    形容词短语
DP   :    限定词短语
QP   :    量词短语
NN   :    常用名词
NT   :    时间名词
PN   :    代词
VV   :    动词
VC   :    是
CC   :    表示连词
VE   :    有
VA   :    表语形容词
VRD  :    动补复合词
CD   :     表示基数词
DT   :     determiner 表示限定词
EX   :     existential there 存在句
FW   :     foreign word 外来词
IN   :     preposition or conjunction, subordinating 介词或从属连词
JJ   :     adjective or numeral, ordinal 形容词或序数词
JJR  :     adjective, comparative 形容词比较级
JJS  :     adjective, superlative 形容词最高级
LS   :     list item marker 列表标识
MD   :     modal auxiliary 情态助动词
PDT  :     pre-determiner 前位限定词
POS  :     genitive marker 所有格标记
PRP  :     pronoun, personal 人称代词
RB   :     adverb 副词
RBR  :     adverb, comparative 副词比较级
RBS  :     adverb, superlative 副词最高级
RP   :     particle 小品词
SYM  :     symbol 符号
TO   :    ”to” as preposition or infinitive marker 作为介词或不定式标记
WDT  :     WH-determiner WH限定词
WP   :     WH-pronoun WH代词
WP$  :     WH-pronoun, possessive WH所有格代词
WRB  :    Wh-adverb WH副词

一、Bert预训练

以ACE2005数据集为数据源使用Bert预训练出一个语言模型