基于字符的语言模型与语音识别技术解析
1. 基于字符的语言模型
在大多数情况下,语言建模是在单词级别进行的,其分布基于固定大小为 |V| 的词汇表。然而,在实际任务中,如语音识别中使用的语言模型,词汇量常常超过 100,000 个单词。这种巨大的维度使得对输出分布进行建模极具挑战性。此外,这些单词级别的模型在处理包含非单词字符串(如多位数数字或训练数据中从未出现过的单词,即未登录词)的文本数据时存在很大局限性。
为了克服这些问题,我们可以使用基于字符的语言模型。这类模型对字符序列的分布进行建模,而不是对单词进行建模,从而可以在更小的词汇表上计算概率。这里的词汇表包含文本语料库中所有可能的字符。不过,这类模型也有缺点,由于对字符序列而不是单词进行建模,为了捕捉相同的信息,我们需要对更长的序列进行建模。为了捕捉这些长期依赖关系,我们可以使用长短期记忆循环神经网络(LSTM RNN)语言模型。
以下是在 TensorFlow 中实现基于字符的 LSTM 并在列夫·托尔斯泰的《战争与和平》上进行训练的详细步骤:
- 数据预处理和读取 :
- 为了训练一个好的语言模型,我们需要大量的数据。以《战争与和平》的英文译本为例,这本书包含超过 500,000 个单词,非常适合作为训练数据。由于它属于公共领域,我们可以从古登堡计划免费下载其纯文本版本。
- 预处理步骤包括:
- 去除古登堡许可证、书籍信息和目录。
- 去除句子中间的换行符,并将连续换行符的最大数量限制为两个。
- 为了将数据输入到网络中,我们需要将其转换为数字格式。每个字符将与一个整数相关联。在这个例子中,我们从文本语料库中提取了总共
超级会员免费看
订阅专栏 解锁全文

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



