1.作业
(1).c2w模型和词嵌入模型有什么区别和联系,能够解决词嵌入的那些问题
解答:c2w模型将字符信息添加到模型中,学习到了字符信息。使得学到的词表示具有与字符相关的信息,改变了词嵌入模型的词表示是相互独立和没有学习到字符信息。
(2).训练自己词向量表示,并使用余弦相似度查看学习到的语法和语义信息。
解答:将模型中双向LSTM的输出过一个全连接层后的输出为词表示,词表示的维度为50维。
(3).总结c2w的代码。
解答:代码过程分为几个部分:
数据;模型;损失函数;优化器;模型迭代;测试;
*数据准备:
首先将语料数据(每行为一个字典类型,即json格式),读入数据列表;
列表循环,每行数据转换为json,提取text属性的数据,分词、去除点等数据,统计词个数,生成词表dict{},
统计出现的字符样式和个数,最大词字符个数16,最大句话的单词个数1000,单词embedding50,字符embedding50
生成datas(labels,列表类型,1维,句子最大长度*句子个数),char_datas(训练数据,2维列表(句子最大长度*句子个数,词最大字符数)),wright(句子最大长度*句子个数)
*模型设计:
字符embedding
接双向lstm
拼接lstm两个输出结果,
接一个全连接层,输出为word_embedding
送入一个单向LSTM,
接一个全连接,输入为hidden_size,输出为word_vocab_size,词的个数。
*设置损失函数和优化器:
*迭代训练:
*测试应用: