语言模型

1. 对检索用户的通常建议是使用在文档中出现的词作为query,因此,如果一篇文章与查询词相关,那么这篇文章的模型可以生成这个query,因此检索模型从P(R = 1|q, d) 变为了P(q|Md),Md是文章的模型

 

2. 语言模型:

a. 形式语言,例如有限状态自动机,根据文法来产生语言

b. 不确定的状态的自动机,每一个状态可以以不同的概率产生不同的词或者结束

例如状态q1:

q1
P(STOP|q1) = 0.2
the 0.2
a 0.1
frog 0.01
toad 0.01
said 0.03
likes 0.02
that 0.04
. . . . . .

在这种情况下,产生一个字符串的概率为:

P(frog said that toad likes frog) = (0.01 ×0.03 × (12.2) 0.04 × 0.01 × 0.02 × 0.01)
×(0.8 ×0.8 × 0.8 × 0.8

 

这是没有考虑字符串顺序的情况,如果考虑顺序则应该是

P(t1t2t3t4) = P(t1)P(t2|t1)P((12.4) t3|t1t2)P(t4|t1t2t3)

或者只简化为马尔科夫链

P(t1t2t3t4) = P(t1)P(t2|t1)P(t3|t2)P(t4|t3) (二元语言模型)

但最简单的形式还是这些单词相互独立

Puni(t1t2t3t4) = P(t1)P(t2)P(t3)P(t4)

这个被称为一元语言模型

 

因此,在一个词的集合中,考虑长度为Ld的文档,tf1 个t1 组成,tf2 个t2组成... , 这样一篇文档被生成的概率即是多项式beinuli模型,概率为:

 

3. 对于一个给定的query,我们根据P(d|q) 来进行ranking

P(d|q) = P(q|d)P(d)/P(q)

p(q)对所有的文档都是一样的,因此可以忽略,p(d) 通常也进行了统一,因此只需要考虑p(q/d)

因此,从文档产生query变成了与从词典产生文档同样的问题,多项式一元语言模型

Kq = Ld!/(tft1,d!tft2,d! · · · tftM,d!)

 

如果简单地把p(t/Md) 定义为TFt,d / Ld ,则有如下公式:

 

但是query中会出现文档里没有的词,同时需要到各个词的出现频率进行平滑,因此公式更正为:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值