http://blog.csdn.net/mspinyin/article/details/6137815
------------------------------------------------------------------
大家好,我是Bright,微软拼音的开发工程师。这里简单介绍下语言模型的基本概念。
------------------------------------------------------------------
本文介绍一下有关语言模型的基本概念,但是在介绍语言模型之前,先简单回顾一下自然语言处理这个大问题吧。现在自然语言处理的研究绝对是一个非常火热的方向,主要是被当前的互联网发展所带动起来的。在互联网上充斥着大量的信息,主要是文字方面的信息,对这些信息的处理离不开自然语言处理的技术。那么究竟什么是自然语言以及自然语言处理呢?
自然语言处理的基本任务
自然语言(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)对模型的参数进行自动的学习,和之前的基于规则的方法相比,这种方法更具鲁棒性。
统计语言模型
统计语言模型(Statistical Language Model)就是在这样的环境和背景下被提出来的。它广泛应用于各种自然语言处理问题,如语音识别、机器翻译、分词、词性标注,等等。简单地说,语言模型就是用来计算一个句子的概率的模型,即
利用语言模型,可以确定哪个词序列的可能性更大,或者给定若干个词,可以预测下一个最可能出现的词语。举个音字转换的例子来说,输入拼音串为nixianzaiganshenme,对应的输出可以有多种形式,如你现在干什么、你西安再赶什么、等等,那么到底哪个才是正确的转换结果呢,利用语言模型,我们知道前者的概率大于后者,因此转换成前者在多数情况下比较合理。再举一个机器翻译的例子,给定一个汉语句子为李明正在家里看电视,可以翻译为Li Ming is watching TV at home、Li Ming at home is watching TV、等等,同样根据语言模型,我们知道前者的概率大于后者,所以翻译成前者比较合理。
那么如何计算一个句子的概率呢?给定句子(词语序列)
它的概率可以表示为: