8.4.3 基于循环神经网络的字符级语言模型

字符级语言模型的优缺点见下
好处:不用担心\(\left<\text{UNK}\right>\)的出现
坏处:最终的序列要长的多;训练也要复杂得多(对内存和速度的要求都要高得多)

现如今,人们一般使用单词级RNN,但是也有特殊情况会使用字符级RNN
在训练了一个RNN后,我们可以利用这个RNN采样,去大概看一下他学会了些什么
采样步骤

  • 选择第一个单词/字符作为第一个输入
  • 对当前的输入,用RNN生成一个分步,再在这个分布里面随机采样一个单词/字符作为下一个输入(例如利用numpy.random.choice),重复此步骤
  • 如果\(\left<\text{EOS}\right>\)是词典中的一部分,那么当采样到结束标记时就可以停止采样了;否则,可以规定一个输出单词的数量,如\(20\)个或者\(100\)个什么的

注意,如果我们的词典中有\(\left<\text{UNK}\right>\),我们是有可能生成这个单词/字符的。一种解决方法就是拒绝这个标记,重新取样,或者不介意的话就不管
效果如下
image

posted @ 2025-03-22 18:54  最爱丁珰  阅读(17)  评论(0)    收藏  举报