【现代信息检索】国科大何苯老师现代信息检索课程作业 —— 第二次作业

1

从如下文本中构造 LM,计算过程中不考虑标点符号以及 标签:

Pride relates more to our opinion of ourselves, vanity to what we would have others think of us.

a. 在采用 MLE 估计的一元概率模型中,计算不使用平滑以及使用 +1 平滑下的 P(of) 和 P(vanity)。

一元概率模型的 +1 平滑概率公式为:
P ( w i ) = C ( w i ) + 1 ∑ w ( C ( w ) + 1 ) = C ( w i ) + 1 N + ∣ V ∣ (1) P(w_i) = \frac{C(w_i)+1}{\sum_w(C(w)+1)} = \frac{C(w_i)+1}{N+|V|} \tag{1} P(wi)=w(C(w)+1)C(wi)+1=N+VC(wi)+1(1)
其中, N N N 为全部单词个数(或文档中的单词数量), ∣ V ∣ |V| V 为词典大小, C ( ⋅ ) C(·) C() 统计单词出现的次数。

对于本题而言,总共 18 个单词,其中 to 和 of 各两个,其余单词均一个,字典大小为 16。

不使用平滑: P ( o f ) = 2 18 = 1 9 P({\rm of}) = \frac{2}{18} = \frac{1}{9} P(of)=182=91 P ( v a n i t y ) = 1 18 P({\rm vanity}) = \frac{1}{18} P(vanity)=181

使用 +1 平滑: P ( o f ) = 2 + 1 18 + 16 = 3 34 P({\rm of}) = \frac{2+1}{18+16} = \frac{3}{34} P(of)=18+162+1=343 P ( v a n i t y ) = 1 + 1 18 + 16 = 1 17 P({\rm vanity}) = \frac{1+1}{18+16} = \frac{1}{17} P(vanity)=18+161+1=171

b. 在采用 MLE 估计的二元概率模型中,计算不使用平滑以及使用 +1 平滑下的 P(ourselves|of),P(think|of)和 P(opinion|relates)。

二元概率模型的 +1 平滑概率公式为:
P ( w i ∣ w i − 1 ) = C ( w i − 1 w i ) + 1 ∑ w ( C ( w i − 1 w ) + 1 ) = C ( w i − 1 w i ) + 1 C ( w i − 1 ) + ∣ V ∣ (2) P(w_i\mid w_{i-1}) = \frac{C(w_{i-1}w_{i})+1}{\sum_w(C(w_{i-1}w)+1)} = \frac{C(w_{i-1}w_i)+1}{C(w_{i-1})+|V|} \tag{2} P(wiwi1)=w(C(wi1w)+1)C(wi1wi)+1=C(wi1)+VC(wi1wi)+1(2)
对于本题而言,不使用平滑: P ( o u r s e l v e s ∣ o f ) = 1 2 P({\rm ourselves}\mid {\rm of}) = \frac{1}{2} P(ourselvesof)=21 P ( t h i n k ∣ o f ) = 0 2 = 0 P({\rm think}\mid {\rm of}) = \frac{0}{2}=0 P(thinkof)=20=0 P ( o p i n i o n ∣ r e l a t e s ) = 0 1 = 0 P({\rm opinion}\mid {\rm relates}) = \frac{0}{1} = 0 P(opinionrelates)=10=0

使用 +1 平滑:: P ( o u r s e l v e s ∣ o f ) = 1 + 1 2 + 16 = 1 9 P({\rm ourselves}\mid {\rm of}) = \frac{1+1}{2+16} = \frac{1}{9} P(ourselvesof)=2+161+1=91 P ( t h i n k ∣ o f ) = 0 + 1 2 + 16 = 1 18 P({\rm think}\mid {\rm of}) = \frac{0+1}{2+16}=\frac{1}{18} P(thinkof)=2+160+1=181 P ( o p i n i o n ∣ r e l a t e s ) = 0 + 1 1 + 16 = 1 17 P({\rm opinion}\mid {\rm relates}) = \frac{0+1}{1+16} = \frac{1}{17} P(opinionrelates)=1+160+1=171

2

对于一个只基于返回网页的标题文本进行相关反馈的 Web 搜索系统。用户给定查询 banana slug。返回的前三个网页标题分别是:

banana slug Ariolimax columbianus

Santa Cruz mountains banana slug

Santa Cruz Campus Mascot

该用户认为前两篇文档相关,而第三篇文档不相关。该搜索系统只基于词项频率(不包括长度归一化因子和 IDF 因子)进行权重计算,也不对向量进行长度归一化,并且使用 Rocchio 算法对原始查询进行修改,其中 α = 1,β = 0.75,γ = 0.25。请给出最终的查询向量(按照字母顺序依次列出每个词项所对应的分量)。

字典(按字典序)为 {“Ariolimax”, “banana”, “Campus”, “columbianus”, “Cruz”, “Mascot”, “mountains”, “Santa”, “slug”},总共 9 个单词。

对于这里的“词项频率”有些疑惑,是指“频次”还是“频率”?括号中明确表示“不包括长度归一化因子”,所以我倾向于这里指的是“频次”,以防万一,下面将两种理解都写出来了。

  • 基于“频次”:

用户查询对应的向量为 [ 0 ,    1 ,    0 ,    0 ,    0 ,    0 ,    0 ,    0 ,    1 ] [0,\;1,\; 0,\;0,\;0,\;0,\;0,\;0, \;1] [0,1,0,0,0,0,0,0,1]

第一篇文档对应的向量为 [ 1 ,    1 ,    0 ,    1 ,    0 ,    0 ,    0 ,    0 ,    1 ] [1,\;1,\;0,\;1,\;0,\;0,\;0,\;0,\;1] [1,1,0,1,0,0,0,0,1]

第二篇文档对应的向量为 [ 0 ,    1 ,    0 ,    0 ,    1 ,    0 ,    1 ,    1 ,    1 ] [0,\;1,\;0,\;0,\;1,\;0,\;1,\;1,\;1] [0,1,0,0,1,0,1,1,1]

第三篇文档对应的向量为 [ 0 ,    0 ,    1 ,    0 ,    1 ,    1 ,    0 ,    1 ,    0 ] [0,\;0,\;1,\;0,\;1,\;1,\;0,\;1,\;0] [0,0,1,0,1,1,0,1,0]

根据 Ricchio 算法:
q m → = α q 0 → + β μ ( D r ) − γ μ ( D n r ) = α q 0 → + β 1 ∣ D r ∣ ∑ d j → ∈ D r d j → − γ 1 ∣ D n r ∣ ∑ d j → ∈ D n r d j → (3) \begin{align} \overrightarrow{q_m} &= \alpha \overrightarrow{q_0} + \beta \mu(D_r) - \gamma\mu(D_{nr}) \\ &= \alpha \overrightarrow{q_0} + \beta \frac{1}{|D_r|} \sum_{\overrightarrow{d_j} \in D_r} \overrightarrow {d_j} - \gamma \frac{1}{|D_{nr}|} \sum_{\overrightarrow{d_j}\in D_{nr}} \overrightarrow{d_j} \end{align} \tag{3} qm =αq0 +βμ(Dr)γμ(Dnr)=αq0 +βDr1dj Drdj γDnr1dj Dnrdj (3)
计算得:
q → = [ 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ] + 0.75 × [ 1 2 , 1 , 0 , 1 2 , 1 2 , 0 , 1 2 , 1 2 , 1 ] − 0.25 × [ 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 ] = [ 3 8 , 7 4 , 0 , 3 8 , 3 8 , 0 , 3 8 , 3 8 , 7 4 ] − [ 0 , 0 , 1 4 , 0 , 1 4 , 1 4 , 0 , 1 4 , 0 ] = [ 3 8 , 7 4 , − 1 4 , 3 8 , 1 8 , − 1 4 , 3 8 , 1 8 , 7 4 ] \begin{align} \overrightarrow q &= [0,1,0,0,0,0,0,0,1] + 0.75\times [\frac{1}{2}, 1, 0, \frac{1}{2}, \frac{1}{2}, 0, \frac{1}{2}, \frac{1}{2}, 1] - 0.25\times [0,0,1,0,1,1,0,1,0]\notag \\ &= [\frac{3}{8}, \frac{7}{4}, 0, \frac{3}{8},\frac{3}{8},0,\frac{3}{8},\frac{3}{8},\frac{7}{4}] - [0, 0, \frac{1}{4},0,\frac{1}{4}, \frac{1}{4}, 0, \frac{1}{4}, 0] \notag\\ &= [\frac{3}{8}, \frac{7}{4}, -\frac{1}{4},\frac{3}{8},\frac{1}{8}, -\frac{1}{4}, \frac{3}{8}, \frac{1}{8}, \frac{7}{4}] \notag\\ \end{align} q =[0,1,0,0,0,0,0,0,1]+0.75×[21,1,0,21,21,0,21,21,1]0.25×[0,0,1,0,1,1,0,1,0]=[83,47,0,83,83,0,83,83,47][0,0,41,0,41,41,0,41,0]=[83,47,41,83,81,41,83,81,47]
由于在向量空间模型中,权重为负数没有意义,所以需要将负权重置为 0 0 0,故
q → = [ 3 8 , 7 4 , 0 , 3 8 , 1 8 , 0 , 3 8 , 1 8 , 7 4 ] \overrightarrow q = [\frac{3}{8}, \frac{7}{4}, 0,\frac{3}{8},\frac{1}{8}, 0, \frac{3}{8}, \frac{1}{8}, \frac{7}{4}] q =[83,47,0,83,81,0,83,81,47]

  • 基于“频率”:

用户查询对应的向量为 [ 0 ,    1 2 ,    0 ,    0 ,    0 ,    0 ,    0 ,    0 ,    1 2 ] [0,\;\frac{1}{2},\; 0,\;0,\;0,\;0,\;0,\;0, \;\frac{1}{2}] [0,21,0,0,0,0,0,0,21]

第一篇文档对应的向量为 [ 1 4 ,    1 4 ,    0 ,    1 4 ,    0 ,    0 ,    0 ,    0 ,    1 4 ] [\frac{1}{4},\;\frac{1}{4},\;0,\;\frac{1}{4},\;0,\;0,\;0,\;0,\;\frac{1}{4}] [41,41,0,41,0,0,0,0,41]

第二篇文档对应的向量为 [ 0 ,    1 5 ,    0 ,    0 ,    1 5 ,    0 ,    1 5 ,    1 5 ,    1 5 ] [0,\;\frac{1}{5},\;0,\;0,\;\frac{1}{5},\;0,\;\frac{1}{5},\;\frac{1}{5},\;\frac{1}{5}] [0,51,0,0,51,0,51,51,51]

第三篇文档对应的向量为 [ 0 ,    0 ,    1 4 ,    0 ,    1 4 ,    1 4 ,    0 ,    1 4 ,    0 ] [0,\;0,\;\frac{1}{4},\;0,\;\frac{1}{4},\;\frac{1}{4},\;0,\;\frac{1}{4},\;0] [0,0,41,0,41,41,0,41,0]

根据 Ricchio 算法可得:
q → = [ − 3 32 , 53 160 , − 1 16 , − 3 8 , − 11 80 , − 1 16 , − 3 40 , − 11 80 , 53 160 ] \overrightarrow q = [-\frac{3}{32}, \frac{53}{160}, -\frac{1}{16}, -\frac{3}{8}, -\frac{11}{80}, -\frac{1}{16}, -\frac{3}{40}, -\frac{11}{80}, \frac{53}{160}] q =[323,16053,161,83,8011,161,403,8011,16053]
将负权重置为 0 0 0,有:
q → = [ 0 , 53 160 , 0 , 0 , 0 , 0 , 0 , 0 , 53 160 ] \overrightarrow q = [0, \frac{53}{160}, 0, 0, 0, 0, 0, 0, \frac{53}{160}] q =[0,16053,0,0,0,0,0,0,16053]

3

给定任务目标:将单词分成英语类和非英语类。单词的产生来自以下分布:

事件 单词 是否为英语 概率
1 ozb 4/9
2 uzu 4/9
3 zoo 1/18
4 bun 1/18

a. 计算多项式朴素贝叶斯分类器的参数(含先验概率和条件概率),分类器使用字母 b、n、o、u、z 作为特征。假设训练集能完美反映表中的概率分布,使用多项式分类器中常用的特征独立性假设。计算参数时使用平滑:0 概率平滑为 0.01,非0 概率不变(这种做法会导致概率总和大于 1,此处不需要解决这个问题)

多项式朴素贝叶斯是应用于文档数据集中的,可以将特征维度视为字典大小。

首先,考虑非英语类的样本,即事件 1 1 1 2 2 2。由于两个事件的概率相等,所以不妨将事件 1 1 1 和事件 2 2 2 出现的次数均认为是 1 1 1,则统计每个字母的频次(按字典序)有 [ 1 , 0 , 1 , 2 , 2 ] [1,0,1,2,2] [1,0,1,2,2],所以频率(经过平滑)为 [ 1 6 , 1 100 , 1 6 , 2 6 , 2 6 ] [\frac{1}{6}, \frac{1}{100}, \frac{1}{6}, \frac{2}{6}, \frac{2}{6}] [61,1001,61,62,62];英语类的样本也是类似,由于事件 3 3 3 4 4 4 出现概率也相同,所以依然可以假设二者出现次数均为 1 1 1,最后得到频率(经过平滑)为 [ 1 6 , 1 6 , 2 6 , 1 6 , 1 6 ] [ \frac{1}{6}, \frac{1}{6}, \frac{2}{6}, \frac{1}{6}, \frac{1}{6}] [61,61,62,61,61]

故,多项式朴素贝叶斯分类器的参数:
P ( 是 ) = 1 9          P ( 否 ) = 8 9 P ( b ∣ 是 ) = 1 6      P ( n ∣ 是 ) = 1 6      P ( o ∣ 是 ) = 2 6      P ( u ∣ 是 ) = 1 6      P ( z ∣ 是 ) = 1 6 P ( b ∣ 否 ) = 1 6      P ( n ∣ 否 ) = 1 100      P ( o ∣ 否 ) = 1 6      P ( u ∣ 否 ) = 2 6      P ( z ∣ 否 ) = 2 6 P(是) = \frac{1}{9} \;\;\;\; P(否)=\frac{8}{9} \\ P({\rm b}\mid 是) = \frac{1}{6} \;\; P({\rm n}\mid 是) = \frac{1}{6} \;\; P({\rm o}\mid 是) = \frac{2}{6} \;\; P({\rm u}\mid 是) = \frac{1}{6} \;\; P({\rm z}\mid 是) = \frac{1}{6} \\ P({\rm b}\mid 否) = \frac{1}{6} \;\; P({\rm n}\mid 否) = \frac{1}{100} \;\; P({\rm o}\mid 否) = \frac{1}{6} \;\; P({\rm u}\mid 否) = \frac{2}{6} \;\; P({\rm z}\mid 否) = \frac{2}{6} \\ P()=91P()=98P(b)=61P(n)=61P(o)=62P(u)=61P(z)=61P(b)=61P(n)=1001P(o)=61P(u)=62P(z)=62
b. 上述分类器对单词 zoo 的分类结果是什么?
P ( 是 ) P ( z ∣ 是 ) P ( o ∣ 是 ) P ( o ∣ 是 ) = 1 9 × 1 6 × 1 3 × 1 3 = 1 486 P ( 否 ) P ( z ∣ 否 ) P ( o ∣ 否 ) P ( o ∣ 否 ) = 8 9 × 2 6 × 1 6 × 1 6 = 2 273 P(是)P({\rm z}\mid 是) P(o\mid 是) P(o\mid 是) = \frac{1}{9}\times\frac{1}{6} \times \frac{1}{3}\times \frac{1}{3} = \frac{1}{486} \\ P(否)P({\rm z}\mid 否) P(o\mid 否) P(o\mid 否) = \frac{8}{9}\times\frac{2}{6} \times \frac{1}{6}\times \frac{1}{6} = \frac{2}{273} \\ P()P(z)P(o)P(o)=91×61×31×31=4861P()P(z)P(o)P(o)=98×62×61×61=2732
所以,zoo 被分到非英语类。

c. 使用 a 中的多项式分类器对 zoo 进行分类,但是不使用位置独立性假设,也就是说,对于单词中的每个位置都要进行独立的参数估计(只需要对 zoo 分类所需的参数进行估计)。

考虑位置的影响,(部分)分类器参数(经过平滑)为:
P ( z ∣ p o s = 1 , 是 ) = 1 2      P ( o ∣ p o s = 2 , 是 ) = 1 2      P ( o ∣ p o s = 3 , 是 ) = 1 2 P ( z ∣ p o s = 1 , 否 ) = 1 100      P ( o ∣ p o s = 2 , 否 ) = 1 100      P ( o ∣ p o s = 3 , 否 ) = 1 100 P({\rm z}\mid {\rm pos=1}, 是)=\frac{1}{2}\;\;P({\rm o}\mid {\rm pos=2}, 是)=\frac{1}{2}\;\;P({\rm o}\mid {\rm pos=3}, 是)=\frac{1}{2} \\ P({\rm z}\mid {\rm pos=1}, 否)=\frac{1}{100}\;\;P({\rm o}\mid {\rm pos=2}, 否)=\frac{1}{100}\;\;P({\rm o}\mid {\rm pos=3}, 否)=\frac{1}{100} \\ P(zpos=1,)=21P(opos=2,)=21P(opos=3,)=21P(zpos=1,)=1001P(opos=2,)=1001P(opos=3,)=1001

P ( 是 ) P ( z ∣ p o s = 1 , 是 ) P ( o ∣ p o s = 2 , 是 ) P ( o ∣ p o s = 3 , 是 ) = 1 9 × 1 2 × 1 2 × 1 2 = 1 72 P ( 否 ) P ( z ∣ p o s = 1 , 否 ) P ( o ∣ p o s = 1 , 否 ) P ( o ∣ p o s = 1 , 否 ) = 8 9 × 1 100 × 1 100 × 1 100 P(是)P({\rm z}\mid{\rm pos=1}, 是) P(o\mid {\rm pos=2},是) P(o\mid{\rm pos=3}, 是) = \frac{1}{9}\times\frac{1}{2} \times \frac{1}{2}\times \frac{1}{2} = \frac{1}{72} \\ P(否)P({\rm z}\mid{\rm pos=1}, 否) P(o\mid{\rm pos=1}, 否) P(o\mid{\rm pos=1}, 否) = \frac{8}{9}\times\frac{1}{100} \times \frac{1}{100}\times \frac{1}{100} P()P(zpos=1,)P(opos=2,)P(opos=3,)=91×21×21×21=721P()P(zpos=1,)P(opos=1,)P(opos=1,)=98×1001×1001×1001

显然,zoo 被分到英语类。

REF

n-gram语言模型-srilm加1平滑 - 知乎 (zhihu.com)

正规:2021-12-26 第二章6 自然语言处理常见的三大任务之语言模型:平滑 - 简书 (jianshu.com)

Rocchio算法-CSDN博客

TF:[机器学习] TF-IDF算法_tfidf算法-CSDN博客

【Python机器学习】朴素贝叶斯分类的讲解及预测决策实战(图文解释 附源码)_朴素贝叶斯决策-CSDN博客

[TF-IDF特征与多项式贝叶斯分类器用于文本分类 - 知乎 (zhihu.com)](

你可能感兴趣的:(【国科大】,机器学习,算法,概率论)