NLP基础-Loglin_lm模型-构建语句任务

本文介绍了使用LogLin_lm模型进行语言建模,通过Python和dynet框架,处理Penn Treebank数据集。模型以线性方法预测句子中的下一个词,训练时以正确词的neglog计算损失。文章还展示了如何从space开始构建句子,直至预测到space或达到最大长度,同时讨论了困惑度(perplexity)作为评估指标。
摘要由CSDN通过智能技术生成

本文使用方法来自CMU课程《Neural Networks for NLP》


1. Loglin_lm Log linear language model
2. 语言python
3. 框架dynet
4. 数据库ptb (from the Penn Treebank)
ps. 英文注解写得不好,望见谅

Loglin_lm图解
这里写图片描述
这里写图片描述

  • Loglin_lm
    构建语句任务:主要是根据上文预测后面的词语生成合法的句子。

    1. 根据上图所示模型,ngram取值为2,根据上文前两个词预测后文,采用线性方法,所以模型是linear的
    2. 在训练过程中得到softmax结果后,loss是根据正确词语对应的结果的neglog计算而来,所以模型是log相关
  • 初始化

    1. 初始化部分和BOW类似,除了把space作为中止,unk还是表示为词典外的词汇
    2. 由于需要构建语句,所以这里除了w2i外还有i2w的
# The length of the n-gram
N = 2

w2i = defaultdict(lambda: len(w2i))
S = w2i["<s>"]
UNK = w2i["<unk>"]
def read_dataset(filename):
  with open(filename, "r") as f:
    for line in f:
      yield [w2i[x] for x in line.strip().split(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值