1 什么是语言模型:

语言模型其实就是看一句话是不是正常人说出来的(判断自然语言上下文相关的特性。在很多NLP任务中都会用到,比如机器翻译、语音识别得到若干候选之后。
语言模型形式化的描述就是给定一个字符串,看它是自然语言的概率 P(w1,w2,,wt)

W依次表示这句话中的各个词。有个很简单的推论


常用的语言模型都是在近似地求 比如 n-gram 模型就是用 P(wt|wtn+1,,wt1)

 近似表示。

2 涉及的相关概念

2.1马尔科夫假设

假设一个词wiwi在某个位置出现的概率只与它前面的一个词wi1wi−1有关, 这就是马尔可夫假设. 

基于此假设, 得到

2.2n-gram model

上式对应的统计语言模型就是bi-gram model, 二元模型.类似地, 假设一个词wiwi在某个位置出现的概率只与它前面的两个词wi1,wi2wi−1,wi−2有关, 那么就得到了三元模型.

2.3词袋模型 Bag of words. 

对于一个文本,忽略其词法, 语法, 语义, 仅将其看做是一个词的集合, 文本中每个词的出现都是独立的, 那么就得到了词袋模型. 一个语料库由若干文本组成, 先计算出语料库的词袋, 然后就可以用词向量来表示每个文本. 

2.4词向量

2.4.1 one hot在特征提取上属于词袋模型(bag of words)
关于如何使用one-hot抽取文本特征向量我们通过以下例子来说明。假设我们的语料库中有三段话:

    我爱中国

    爸爸妈妈爱我

    爸爸妈妈爱中国

我们首先对预料库分离并获取其中所有的词,然后对每个此进行编号:

    1 我; 2 爱; 3 爸爸; 4 妈妈;5 中国

然后使用one hot对每段话提取特征向量:

 

因此我们得到了最终的特征向量为

    我爱中国  ->   1,1,0,0,1

    爸爸妈妈爱我  ->  1,1,1,1,0

    爸爸妈妈爱中国  ->  0,1,1,1,1

 

优点:一是解决了分类器不好处理离散数据的问题,二是在一定程度上也起到了扩充特征的作用(上面样本特征数从3扩展到了9)

缺点:在文本特征表示上有些缺点就非常突出了。首先,它是一个词袋模型,不考虑词与词之间的顺序(文本中词的顺序信息也是很重要的);其次,它假设词与词相互独立(在大多数情况下,词与词是相互影响的);最后,它得到的特征是离散稀疏的。

https://www.cnblogs.com/lianyingteng/p/7755545.html

2.4.2 distributed representation

对词典中的每一个词语都用固定长度的向量来表示, 不同于one-hot, 它形如 


在word2vec中, 这个向量的维度是自定义的, 默认是100维

对词向量的介绍请看https://blog.csdn.net/fkyyly/article/details/79011789


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐