本文使用方法来自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
构建语句任务:主要是根据上文预测后面的词语生成合法的句子。- 根据上图所示模型,ngram取值为2,根据上文前两个词预测后文,采用线性方法,所以模型是linear的
- 在训练过程中得到softmax结果后,loss是根据正确词语对应的结果的neglog计算而来,所以模型是log相关
初始化
- 初始化部分和BOW类似,除了把space作为中止,unk还是表示为词典外的词汇
- 由于需要构建语句,所以这里除了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(<

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

1572

被折叠的 条评论
为什么被折叠?



