
python自然语言处理—神经网络语言模型(NNLM)
发布日期:2021-05-06 08:42:12
浏览次数:44
分类:精选文章
本文共 549 字,大约阅读时间需要 1 分钟。
神经网络语言模型(NNLM)
语言模型的构建目的是为了对语言中的各要素的分布进行估计,具有较长的研究历史和广泛的应用。传统的离散计数类语言模型,比如 bi-gram,n-gram 模型等在很多应用领域的结果得到了广泛认可。
其基本假设通常是单词的分布服从 n 阶马尔可夫链。通过对连续 n 个单词出现频率进行计数并平滑来估计单词出现的概率。
但是由于是离散模型,因此有稀疏性和泛化能力低的缺点。
随着深度学习被广泛接纳,近年来神经网络语言模型(NNLM)受到了广泛关注。相比传统的语言模型,神经网络语言模型属于连续模型,主要着力解决离散模型的两个主要痛点:
(1)通过将离散的 n-gram 单词组投影到致密的空间词嵌入技术;
(2)采用循环神经网络来解决传统语言模型稀疏性和泛化能力低的问题。
一、传统语言模型
传统的离散模型主要是统计语言模型,比如 bi-gram 或者 n-gram 语言模型,是对 N 个连续的单词出现概率进行建模。
传统的语言模型基于马尔可夫假设,假如我们对于一个单词在某个位置出现概率的估计可以通过计算该单词与前面 m 个单词同时出现的概率相对于前面 m 个单词同时出现的概率的比值获得。这是朴素贝叶斯的思路。
(1)如果 m 为 0,我们的估计只基于该单词在全部文本中