NLP(06)_语言模型与应用

自然语言(Natural Language)其实就是人类语言,自然语言处理(NLP)就是对人类语言的处理,当然主要是利用计算机。自然语言处理是关于计算机科学和语言学的交叉学科,常见的研究任务包括:

  • 分词(Word Segmentation或Word Breaker,WB)
  • 信息抽取(Information Extraction,IE):命名实体识别和关系抽取(Named Entity Recognition & Relation Extraction,NER)
  • 词性标注(Part Of Speech Tagging,POS)
  • 指代消解(Coreference Resolution)
  • 句法分析(Parsing)
  • 词义消歧(Word Sense Disambiguation,WSD)
  • 语音识别(Speech Recognition)
  • 语音合成(Text To Speech,TTS)
  • 机器翻译(Machine Translation,MT)
  • 自动文摘(Automatic Summarization)
  • 问答系统(Question Answering)
  • 自然语言理解(Natural Language Understanding)
  • OCR
  • 信息检索(Information Retrieval,IR)

早期的自然语言处理系统主要是基于人工撰写的规则,这种方法费时费力,且不能覆盖各种语言现象。上个世纪80年代后期,机器学习算法被引入到自然语言处理中,这要归功于不断提高的计算能力。研究主要集中在统计模型上,这种方法采用大规模的训练语料(corpus)对模型的参数进行自动的学习,和之前的基于规则的方法相比,这种方法更具鲁棒性。

在这个大背景下产出了统计机器学习方法和统计自然语言处理方法,包括今天提到的统计语言模型。

在这里插入图片描述

1. 语言模型

语言模型简单来讲,就是计算一个句子的概率,更确切的说是计算组成这个句子一系列词语的概率。举个简单的例子,我们知道“武松打死了老虎”相比于“老虎了死武松打”,更像是一句正常的话,这是因为前者出现的概率更高。

对一句话 S = x 1 , x 2 , x 3 , x 4 , x 5 , … , x n S = x_1,x_2,x_3,x_4,x_5,…,x_n S=x1,x2,x3,x4,x5,,xn而言,它的概率

P ( S ) = P ( x 1 , x 2 , x 3 , x 4 , x 5 , … , x n ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) . . . P ( x n ∣ x 1 , x 2 , . . . , x n − 1 ) P(S)=P(x_1,x_2,x_3,x_4,x_5,…,x_n) = P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)...P(x_n|x_1,x_2,...,x_{n-1}) P(S)=P(x1,x2,x3,x4,x5,,xn)=P(x1)P(x2x1)P(x3x1,x2)...P(xnx1,x2,...,xn1)

上面的联合概率链规则公式考虑到了所有的词和词之间的依赖关系,但是非常复杂,在实际生活中几乎没办法使用,于是我们就想了很多办法去近似这个公式,效果又要求比独立性假设好。我们下面提到的语言模型n-gram就是一个这样的简化。

举个简单的邮件分类例子,对于垃圾邮件中的一句话**“我司可办理正规发票保真增值税发票点数优惠”**,这句话发生的概率P = P(“我”,“司”,“可”,“办理”,“正规发票”,“保真”,“增值税”,“发票”,“点数”,“优惠”),如果要按照上面的联合概率链规则公式,我们只考虑一个词语对上一个词语的依赖关系,而与再之前的词没有关系,公式就简化成了如下形式,我们把它叫做二元语法(bigram,2-gram):

P ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 , x 9 , x 10 ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 2 ) P ( x 4 ∣ x 3 ) . . . P ( x 10 ∣ x 9 ) = P ( “ 我 ” ) P ( “ 司 ” ∣ “ 我 ” ) P ( “ 可 ” ∣ “ 司 ” ) P ( “ 办 理 ” ∣ “ 可 ” ) . . . P ( “ 优 惠 ” ∣ “ 点 数 ” ) P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10})=P(x_1)P(x_2|x_1)P(x_3|x_2)P(x_4|x_3)...P(x_{10}|x_9)=P(“我”)P(“司”|“我”)P(“可”|“司”)P(“办理”|“可”)...P(“优惠”|“点数”) P(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)=P(x1)P(x2x1)P(x3x2)P(x4x3)...P(x10x9)=P()P()P()P()...P()

如果把依赖词长度再拉长一点,考虑一个词对前两个词的依赖关系,就叫做三元语法(trigram,3-gram),公式如下:

P ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 , x 9 , x 10 ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) P ( x 4 ∣ x 2 , x 3 ) × . . . × P ( x 10 ∣ x 8 , x 9 ) = P ( “ 我 ” ) P ( “ 司 ” ∣ “ 我 ” ) P ( “ 可 ” ∣ “ 我 ” , “ 司 ” ) P ( “ 办 理 ” ∣ “ 司 ” , “ 可 ” ) . . . P ( “ 优 惠 ” ∣ “ 发 票 ” , “ 点 数 ” ) P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10})=P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)P(x_4|x_2,x_3)×...×P(x_{10}|x_8,x_9)=P(“我”)P(“司”|“我”)P(“可”|“我”,“司”)P(“办理”|“司”,“可”)...P(“优惠”|“发票”,“点数”) P(x1,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值