基于LSTM的文本自动补全及相关RNN知识
1. 束搜索算法
在文本预测中,我们有四个候选结果:What ti、What ty、What da和What do。可以通过将每一步的概率相乘来计算这四个候选结果的总体概率。例如,What ti的概率为0.2 × 0.4 = 0.08。之后我们会对搜索树进行剪枝,只保留N个最有可能的候选结果,在这个例子中是What ti(8%)和What da(12%)。
这里有一个关键的观察点:What t的概率比What d高,但在下一步中,What da(What d的延续)的概率却比What ti(更有可能的What t的延续)高。这意味着束搜索算法并不能保证找到总体上最有可能的候选结果,因为最有可能的候选结果可能在搜索过程的早期就被剪掉了。例如,我们最终得到了What time和What day,但实际上What a night可能才是总体上最有可能的选择。
束搜索本质上是一种广度优先搜索算法,但限制了搜索的广度,它也是贪心算法的一个例子。如果你不熟悉广度优先搜索或贪心算法也不用担心,不过未来可以考虑学习一下。
2. 使用LSTM进行文本自动补全的编程示例
2.1 数据准备
为了创建一个基于长短期记忆(LSTM)的循环神经网络(RNN)用于文本自动补全,我们首先需要用一些现有的文本数据来训练网络。网上有大量的文本数据可供使用,对于简单的示例,我们可以从古腾堡计划(Project Gutenberg)中选择一本书,这里我们选择了《弗兰肯斯坦》(Frankenstein)。
以下是初始化代码:
超级会员免费看
订阅专栏 解锁全文
36

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



