Keyword detection in natural languages
自然语言中的关键词检测,首先要了解的数学背景知识有:泊松分布、随机过程、泊松过程和指数分布。
我对随机过程的简单理解是连续参数区间上的无穷多个随机变量,或离散参数区间上无穷个随机变量(成为随机序列)。(人生就像是个随机过程,每下一秒都是个随机变量。)
泊松过程:
首先要明确“累积量”N(t),t>=0,表示在时间间隔 (0,t] 内事件发生次数(这和泊松分布说的是一致的)。泊松过程中时间点对应的随机变量就是这个时刻的“累积量”。
提前说明:N(t)>=0;N(t)取正整数;若s<t,则N(s)<=N(t);当s<t,增量N(t)-N(s)等于区间(s,t]中事件发生次数。
泊松过程的一种定义:
若计数过程{N(t),t>=0}满足下列三个条件:
(1)它是独立增量;
(2)对任意的t>s>=0,增量N(t)-N(s)服从分布π( λ(t-s) ),即参数为π( λ(t-s) )的泊松分布;
(3)N(0)=0。
补充说明:λ称为过程N(t)的强度,累积量的增量服从的泊松分的参数——即期望与对应区间长度如时间长度成正比。按照二项分布和泊松分布的简单关系,“如果 np 存在有限极限 λ,则这列二项分布就趋于参数为 λ 的 泊松分布”。对于充分小的时间片Δt,
(1) P1(t,t+Δt)=P{N(t,t+Δt)=1}= λΔt+ο(Δt),
(2) ∑j=2Pj(t,t+Δt)=∑j=2P{N(t,t+Δt)=j}=ο(Δt),
(3) P0(t,t+Δt)=1-P1(t,t+Δt)-∑j=2Pj(t,t+Δt)=1-λΔt+ο(Δt),
可以简单理解在时间片Δt内时间发生一次或不发生,这就是伯努利实验了;按Δt连续发生,也就是n无限大的二项分布;又np= T/Δt*λΔt=λT,即发生次数的期望 np 有极限 λT(与区间大小有关,与实验次数无关),则二项分布就趋于参数为λT的泊松分布。前面的分析也就说明了可以简单认为泊松过程中每个时间点上对应的随机变量是伯努利实验的0-1变量。
另外,关于泊松过程和指数分布的关系有两个定理:
定理一:强度为 λ 的的泊松流(泊松过程)的点间间距是相互独立的随机变量,且同服从参数为 λ 的指数分布。(注:切勿认为参数为 λ 的泊松分布,点间间距是相互独立的随机变量,且同服从参数为 λ 的指数分布。)
定理二(定理一的逆命题):如果任意出现的两个质点的点间间距是相互独立,且服从同一指数分布,则质点流构成了强度为λ的泊松过程。
根据定理一,点间间距是相互独立的随机变量,且服从同一指数分布,那么能否用这些相互独立的随机变量的样本来共同检验他们同一的分布呢?貌似是可以的。所以下面在检验过程是否是泊松过程,或分布是否是泊松分布,或点间间距分布是否是指数分布时,就是这样做的。
下面是关键词检测的分析
在自然语言中,如果认为每个词项的出现是随机的,相互独立的,那么对对于一个连续的词项序列来说,这就是个单词表的多项式分布;而对于某一个指定的单词,它的出现情况就是个泊松过程。即对于单词w,每个词项位置上w要么出现,要么不出现,当词项序列趋于无穷大时,即词项个数n->∞,那么w的出现的情况是个泊松过程,而w出现次数服从泊松分布。所以,对于一的般词,认为它的出现是随机的,也就接近泊松过程;而对于关键词,由于关键词呈现聚簇(cluster),所以认为它与泊松过程的近似程度差。由于只是一次泊松过程的观察,因此在只有一次泊松分布的实验样本的情况下(如果要直接验证一个分布是否是泊松分布的话,需要有多次这个分布的实验样本,如《概率论与数理统计》P243例1),要验证指定单词出现情况与泊松过程的近似度,可以检验该单词的点间间距是否服从参数为 λ 指数分布,其中 λ 未给出,先由最大似然估计法求得 λ 的估计值 λ’ ,易知结果为 λ’=距离平均值的倒数。然后再来检验这一点间间距距离序列与参数为 λ’ 的指数分布的近似度(如《概率论与数理统计》P245例2)。如果某个指定此W越接近指数分布,则由泊松过程定理二该词的出现情况越接近泊松过程,那么就推断该词是一般词;反之,近似度越差,则认为越有可能是关键词。
注:以上是我的个人想法。
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]