当前位置:   article > 正文

自然语言处理相关介绍_stop-word filter

stop-word filter

自然语言处理基本概念

语言的数学本质

语言的出现是为了通信,通信的本质是为了传递信息。字母,文字,数字都是信息编码的不同单元。任何一种语言都是一种编解码算法。
我们通过语言把要表达的意思传递出来,实际上就是用语言将大脑中的信息进行了一次编码,形成了一串文字。懂得这种语言的接收方就能够使用这种语言进行解码,然后获取到里面的信息。这就是语言的数学本质。

统计语言模型

机器是不懂得任何一种语言的,早期的自然语言处理方式是让计算机学习理解语言的语义,语法,然后据此判断一个句子是否合理,含义是什么。但最终证明这种研究方向和学习方式是行不通的。

现在的自然语言处理是基于统计语言模型,它根本不需要计算机理解人类的语言,它要做的就是判断一个句子是否合理,就看这个句子在语料库中出现的概率如何。

假定S表示某一个有意义的句子,由一连串的词 w 1 , w 2 , ⋯   , w n w_1, w_2, \cdots, w_n w1,w2,,wn组成, n n n是句子的长度。如果想知道S在文本中出现的概率 P ( S ) P(S) P(S),那就需要把有史以来人类讲过的话统计一下,然后计算出出现的概率。这种方法很显然是行不通的。因此,需要一个模型来估算。由于 S = w 1 , w 2 , ⋯   , w n S = w_1, w_2, \cdots, w_n S=w1,w2,,wn,那么 P ( S ) = P ( w 1 , w 2 , ⋯   , w n ) P(S) = P(w_1, w_2, \cdots, w_n) P(S)=P(w1,w2,,wn),利用条件概率公式,S出现的概率等于每一个词出现的条件概率的乘积
P ( w 1 , w 2 , ⋯   , w n ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 1 , w 2 ) ⋯ P ( w n ∣ w 1 , w 2 , ⋯   , w n − 1 ) P(w_1, w_2, \cdots, w_n) = P(w_1) \cdot P(w_2|w_1) \cdot P(w_3|w_1, w_2) \cdots P(w_n|w_1, w_2, \cdots, w_{n-1}) P(w1,w2,,wn)=P(w1)P(w2w1)P(w3w1,w2)P(wnw1,w2,,wn1)
其中 P ( w 2 ∣ w 1 ) P(w_2|w_1) P(w2w1)表示在已知以一个词出现的前提下,第二个词出现的概率,以此类推, w n w_n wn的出现概率取决于它前面所有的词。但这种条件概率的可能性太多,非常难以计算。俄国数学家马尔科夫提出了一个偷懒但是有效的做法,即马尔科夫假设模型来简化这种计算:任意一个词 w i w_i wi出现的概率只同它前面的词 w i − 1 w_{i-1} wi1有关,简化后S出现的概率为:
P ( S ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 2 ) ⋯ P ( w n ∣ w n − 1 ) P(S) = P(w_1) \cdot P(w_2|w_1) \cdot P(w_3|w_2) \cdots P(w_n|w_{n-1}) P(S)=P(w1)P(w2w1)P(w3w2)P(wnwn1)
该公式对应的统计语言模型为二元模型(Bigram Model)

以上是理论,那么在实际的机器学习中是如何操作的呢?

  • 首先计算 P ( w i ∣ w i − 1 ) P(w_i|w_{i-1}) P(wiwi1),根据条件概率的定义 P ( w i ∣ w i − 1 ) = P ( w i , w i − 1 ) P ( W i − 1 ) P(w_i|w_{i-1}) = \frac{P(w_i, w_{i-1})}{P(W_{i-1})} P(wiwi1)=P(Wi1)P(wi,wi1),只需估计联合概率 P ( w i , w i − 1 ) P(w_i, w_{i-1}) P(wi,wi1)和边缘概率 P ( w i − 1 ) P(w_{i-1}) P(wi1),就变得很简单。基于大量的语料库(Corpus),只需要统计 w i − 1 , w i w_{i-1}, w_i wi1,
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号