NLP中的语言模型(language model)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huanghaocs/article/details/77935556

什么是语言模型

本文参考维基百科语言模型 language model
统计语言模型是一个单词序列上的概率分布,对于一个给定长度为m的序列,它可以为整个序列产生一个概率 P(w1,w2,...,wm) 。其实就是想办法找到一个概率分布,它可以表示任意一个句子或序列出现的概率。
目前在自然语言处理相关应用非常广泛,如语音识别(speech recognition) , 机器翻译(machine translation), 词性标注(part-of-speech tagging), 句法分析(parsing)等。传统方法主要是基于统计学模型,最近几年基于神经网络的语言模型也越来越成熟。

Unigram models

Unigram models也即一元文法模型,它是一种上下文无关模型。该模型仅仅考虑当前词本身出现的概率,而不考虑当前词的上下文环境。概率形式为 P(w1,w2,...,wm)=P(w1)P(w2)...P(wm) ,即一个句子出现的概率等于句子中每个单词概率乘积。
以一篇文档为例,每个单词的概率只取决于该单词本身在文档中的概率,而文档中所有词出现的概率和为1,每个词的概率可以用该词在文档中出现的频率来表示,如下表中

Terms Probability
a 0.1
world 0.2
likes 0.05
we 0.03
share 0.26

对于这篇文档中,所有概率和相加为1,即 P(term)=1

n-gram models

n-gram models也即n元语言模型,针对一个句子 w1,w2,...,wm 的概率表示如下:

P(w1,w2,...,wm)=i=1mP(wi|w1,...,wi1)=i=1mP(wi|wi(n1),...,wi1)
这里可以理解为当前词的概率与前面的n个词有关系,可以理解为上下文有关模型。n-gram模型中的条件概率可以用词频来计算
P(wi|wi(n1),...,wi1)=count(wi(n1),...,wi1,wicount(wi(n1),...,wi1)

Neural language models

神经语言模型使用连续表示或词汇Embedding来进行预测。 已神经网络为基础来训练模型。
这里未完待续。。。

猜你喜欢

转载自blog.csdn.net/huanghaocs/article/details/77935556