NLP 文本分类实战

本文深入探讨自然语言处理中的语言模型,包括马尔科夫假设、评估模型好坏的标准如困惑度、Laplace平滑处理,以及在拼写纠错中的应用。此外,还介绍了文本预处理、单词表示方法如one-hot和词向量,以及词向量模型如Skip-Gram和CBow。
摘要由CSDN通过智能技术生成

语言模型

语言模型用来判断:一句话从语法上是否通顺。通俗的讲就是判断一句话是不是人说的话的模型,即能够判断出 p ( I   w a n t   t o   l e a r n   n l p ) > p ( I   w a n t   t o   n l p   l e a r n ) p(I \ want \ to \ learn \ nlp) > p(I \ want \ to \ nlp \ learn) p(I want to learn nlp)>p(I want to nlp learn)

通常情况下一个句子由若干词或者字组成,若句子用 s s s 表示,组成句子的词用 w w w 表示,可记做 w 1 , w 2 , w 3 , w 4 , . . . , w n w_1, w_2, w_3, w_4, ... , w_n w1,w2,w3,w4,...,wn ,如下所示:

  • p ( s ) = p ( w 1 , w 2 , w 3 , w 4 , . . . , w n ) p(s) = p(w_1, w_2, w_3, w_4, ... , w_n ) p(s)=p(w1,w2,w3,w4,...,wn)

  • p ( 我 要 学 习 N L P ) = p ( 我 , 要 , 学 习 , N L P ) p(我要学习NLP) = p(我,要,学习,NLP) p(NLP)=p(,,,NLP)

如何计算一个句子出现的概率 ?在此之前需要了解一个 Chain Rule 的数理统计的知识,如下:

  • p ( A , B , C , D ) = p ( A ) ⋅ p ( B ∣ A ) ⋅ p ( C ∣ A , B ) ⋅ p ( D ∣ A , B , C ) p(A, B, C, D) = p(A) · p(B|A) · p(C|A, B) · p(D|A, B, C) p(A,B,C,D)=p(A)p(BA)p(CA,B)p(DA,B,C)

    • p ( A , B ) = p ( A ) ⋅ p ( B ∣ A ) p(A, B) = p(A) · p(B|A) p(A,B)=p(A)p(BA)
    • p ( A , B , C ) = p ( A , B ) ⋅ p ( C ∣ A , B ) p(A, B, C) = p(A,B) · p(C|A, B) p(A,B,C)=p(A,B)p(CA,B)
  • p ( w 1 , w 2 , w 3 , w 4 , . . . , w n ) = p ( w 1 ) ⋅ p ( w 2 ∣ w 1 ) . . . . p ( w n ∣ w 1 w 2 w 3 w 4 . . . w n − 1 ) p(w_1, w_2, w_3, w_4, ... , w_n ) = p(w_1) · p(w_2|w_1) .... p(w_n|w_1w_2w_3w_4 ... w_{n-1}) p(w1,w2,w3,w4,...,wn)=p(w1)p(w2w1)....p(wnw1w2w3w4...wn1)

那么,对于句子“ 我要学习NLP” 来说,计算其概率可采用 Chain Rule 的规则方法。

  • p ( 我 要 学 习 N L P ) = p ( 我 , 要 , 学 习 , N L P ) p(我要学习NLP) = p(我,要,学习,NLP) p(NLP)=p(,,,NLP)

  • p ( 我 , 要 , 学 习 , N L P ) = p ( 我 ) ⋅ p ( 要 ∣ 我 ) . . . . p ( N L P ∣ 我 , 要 , 学 习 ) p(我,要,学习,NLP) = p(我) · p(要|我) .... p(NLP|我,要,学习) p(,,,NLP)=p()p()....p(NLP)

然而概率的条件越多,比如: p ( N L P ∣ 我 , 要 , 学 习 ) p(NLP|我,要,学习) p(NLP),符合概率的情况就越小。假如“我”出现的概率是0.0001,“要”出现的概率0.0001,“学习”出现的概率更小的话,一直累乘下去“NLP”出现的概率会越来越小。为了解决该问题,需要引入了 N-gram 模型来解决这个问题,N-gram 模型引入了马尔科夫假设(markov assumption),即当前词出现的概率只与其前 n-1 个词有关。

markov assumption

一个马尔科夫过程是状态间的转移仅依赖于前 n n n 个状态的过程。这个过程被称之为 n n n 阶马尔科夫模型。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。举个例子:

  • 假设:当前词出现的概率与其他单词无关,Unigram model。不考虑单词之间的顺序
    • p ( N L P ∣ 我 , 要 , 学 习 ) ≈ p ( N L P ) p(NLP|我,要,学习) \approx p(NLP) p(NLP)p(NLP)
  • 假设:当前词出现的概率与距离最近的单词有关,Bigram model
  • p ( N L P ∣ 学 习 ) ≈ p ( N L P ) p(NLP|学习) \approx p(NLP) p(NLP)p(NLP)
  • 假设:当前词出现的概率与前两个单词有关, Trigram model
    • p ( N L P ∣ 要 , 学 习 ) ≈ p ( N L P ) p(NLP|要,学习) \approx p(NLP) p(NLP)p(NLP)
  • 假设:当前词出现的概率只与其前 n-1 个词有关, N-gram model

Unigram model

p ( w 1 , w 2 , w 3 , w 4 , . . . , w n ) = p ( w 1 ) . . . p ( w n ) = ∏ i = 1 n p ( w i ) p(w_1, w_2, w_3, w_4, ... , w_n ) = p(w_1) ... p(w_n) = \prod_{i=1}^{n}p(w_i) p(w1,w2,w3,w4,...,wn)=p(w1)...p(wn)=i=1np(wi)

Bigram model

p ( w 1 , w 2 , w 3 , w 4 , . . . , w n ) = p ( w 1 ) ⋅ p ( w 2 ∣ w 1 ) . . . p ( w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值