在代码中都有许多注释,一些API的功能和参数都做好了标注,每一步的输入输出维度也有说明,可以放心食用
词嵌入
项目代码: 查看代码
设计下游任务为电影评论分类,获取Embedding层的词向量,然后获得指定单词前10相似的单词
从结果来看,使用此训练并不能太好的理解词义,可能是训练集也不是很大,然后这个任务也不是很适合理解词义(可能使用skip-gram模型或者CBOW模型在配合维基百科语料库更好做这个任务),仅仅训练了10个周期,最终结果可能也和embedding层的随机初始化有关。
当然,在这一个过程中,对于词嵌入还是有了更多的理解。
运行结果
本地训练,Embedding_size=50,epoch=10,最相似的10个单词
wonderful-->['wonderful', 'everyone', 'haunting','underrated', 'brilliant', 'fantastic', 'High', 'superb','marvel','recommended']
colab上,embedding_size=300,epoch=10,最相似的10个单词
womderful-->['wonderful', 'haunting', 'everyone', 'brilliant', 'marvel', 'fantastic', 'underrated', 'superb', 'perfect', 'flaw']
鉴于效果一般,之后在下载了Glove50词嵌入文件
根据词嵌入向量的余弦相似度计算相似的单词:
a to b like c to __ 例如:
- man to women like king to quuen
- Paris to France like Beijing to China
运行结果
man-->woman like boy --> girl
small-->smaller like large --> larger
italy-->italian like china --> chinese
Japan-->Tokyo like China --> taipei (怕不是要杀头 ORZ)
RNN文本分类
项目代码:查看代码
使用循环神经网络完成IMDB电影评论分类(positive or negative)
最终对自己输入的影评进行打分(0-1)
最终训练结果如下:
comment is: this movie is bad. but the actor is very handsome and I like him. but I will not recommend this movie.
here is the point: 0.17458665
comment is: The movie was cool. The animation and the graphics were out of this world. I would recommend this movie.
here is the point:0.9981263
comment is: actually, I am the actor's fans. But his performance in the movie break my heart.
here is the point:0.47038242
comment is: The characters is not famous, but their performances make the movie reach a very high level!
here is the point:0.9868593
comment is: The movie is very ironic.This film criticizes the social phenomena without conscience
here is the point:0.99971634
恐龙名字生成
项目代码:查看代码
此项目是莎士比亚风格文本生成的基础版本。通过这个项目可以对于后面的项目有更好的把握
加载语料库/dions.txt中众多恐龙名字作为训练预料,最后产生一个可以生成恐龙风格名字的模型。
运行结果
未训练:
njywwtcmeqodygspv
Dga
Sa
Dodygspv
Qjvfekyneazagqvaaxund
15个周期后:
Saousos
Xtruromos
Sairraurusn
Hurusn
Sndhlurdaybgos
莎士比亚风格文本生成
项目代码:查看代码
对莎士比亚的作品学习,给定起始字符(下方运行结果中,给定的起始单词为'ROMEO: '),训练出来的模型将会自动生成莎士比亚风格类型的文本。
运行结果:
ROMEO:
I advance fiture each other,
How many haughty love, your own suspicion from so rounder he divide,
As if I had some all fell.Fullow:
Bleased the soldiers, Cleome,
And thou hadst beat me back to Man.
In an outward stars that sle with thee?
Why should she noble endary?.............
注意力模型-日期翻译
项目代码:查看代码
了解Attention:关于Attention的不错文章
实现一个简单版本的注意力模型,实践这个之后再做下一个机器翻译项目更佳。对于给定的不同类型日期格式,翻译为标准格式YYYY-MM-DD
最终对于大部分格式的日期都能准确翻译,但对于xx/xx/xxxx这类型的数据处理不太好。
运行结果
source: 3/may/1979
output: 1999-05-33
source: 18.4.2009
output: 2009-04-18
source: 04 22 2004
output: 2004-04-22
source: 6th of August 2016
output: 2016-08-06
source: Tue 10 Jul 2020
output: 2000-07-10
source: March 4 2009
output: 2009-03-04
source: 12/23/2001
output: 2010-12-21
source: monday march 7 2013
output: 2013-03-07
注意力模型-机器翻译
项目代码:查看代码
了解Attention:关于Attention的不错文章
基于Bahdanau注意力模型,论文中底层使用双向RNN(这里使用的单向GRU)。
为了便于训练,我只使用了30000条较短的数据(西班牙语--->英语),对于较短句子(10个单词以内)翻译效果还行。
若想获得更好的效果,可以使用更多的语料(num_samples=None),在colab上训练更多的周期。
运行结果
Transformer模型
项目代码:查看代码
训练了一个Transformer模型。将葡萄牙语翻译为英语。
了解Transformer:关于Transformer的不错文章
项目使用数据集来自于 TED 演讲开放翻译项目,该数据集包含来约 50000 条训练样本,1100 条验证样本,以及 2000 条测试样本。
运行结果:
- 结果一(without plot attention weights):
Input: vou então muito rapidamente partilhar convosco algumas histórias de algumas coisas mágicas que aconteceram.
Predicted sentence is: so i 'm very quickly sharing with you some stories of some magic things that happened .
Real translation: so i 'll just share with you some stories very quickly of some magical things that have happened .
- 结果二: