前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自然语言处理|语言模型介绍

自然语言处理|语言模型介绍

作者头像
double
发布2018-04-02 16:13:26
7680
发布2018-04-02 16:13:26
举报
文章被收录于专栏:算法channel

01

回顾

昨天说到自然语言处理中如何将词语转化为词向量,主要用 Distributed Representation 思想,比如谷歌的word2vec就是其中思想下的实现方法之一,关于这篇总结,请参考:

深度学习|自然语言处理之词To词向量

下面,总结自然语言处理中的语言模型,那么何为语言模型?语言模型是用来判断某句话是不是按照某种语言的习惯正确表达出来的,比如,我已经吃过饭,是一句符合汉语习惯的话,那么,吃过饭我已经,就不是一句符合习惯的表达,那么如何让机器判断出,

  • 我已经吃过饭,
  • 吃过饭我已经,

哪个是更可能表达准确的句子呢?

下面就来说说语言模型相关的算法。

02

语言模型

首先分析下如何让机器做出判断那句话出现的概率更高的解决思路,一般地,我们假定已经正确地将一句话进行分词了,也就是说,这句话有下面4个词语组成:

已经

吃过

那么问题就化简为 判断 P(我已经吃过饭),P(吃过饭我已经),哪个概率大,哪个就是更符合习惯的。

这个问题就是语言模型需要解决的问题,下面介绍几种求解这个概率的算法。

1 N-gram模型

前者概率的计算方法:P(我)*(已经 | 我) * P( 吃过|我,已经) *P(饭|我,已经,吃过),转化为计算这个概率,这种假定是人为某个词的出现,与前面出现的词相关,这种模型称为N-gram模型。

N-gram模型,对以上的概率乘积做了一步简化,利用马尔科夫链的假设,即当前这个词仅仅跟前面 n 个有限的词相关,因此也就不必追溯到最开始的那个词,这样便可以大幅缩减计算的长度。即

如果 n 取为 2,就是一个二元模型(bigram model),即前一个词出现的情况下当前词出现的概率乘积,比如已经后面出现吃过的概率:

2 N-pos模型

N-gram 模型主要缺点需要大规模的文本训练,同时假定第i个词出现概率条件依赖它前几个词。实际上,许多词出现的概率是条件依赖于它前面词的语法功能。N-pos模型,将词按照其语法功能进行分类,由这些词类决定下一个词出现的概率。这样的词类成为词性(Part-of-Speech,简称为POS)。记住,这个语言模型,关注的是词所属的此类,比如统计了某个语料库,最后有3个词类:名次,动词,形容词;而“吃过”这个词出现的概率就等于动词出现的概率乘以这个词在动词类中出现的概率。

3 基于决策树的语言模型

考虑了相近的概率分布,例如英语中(动词,冠词)和(介词,冠词)的概率分布情况相近。因此,决策树模型,利用这种数据点的特征,举例说明吧,训练语料库中出现一个词wi,它的前一个词为wi-1,这样一个数据点(wi-1,wi)=(已经,吃过)。在关于上下文信息的问题集中都是这样的提问:“它前一个词的词性是名词(词性标号)吗?”,通过回答提问进入下一级子节点,直到叶节点为止。

4 动态语言模型

以上介绍的这3种语言模型,都属于静态语言模型,都是预先从训练语料库中估算好的。实际上,在自然语言中,经常出现这样现象:某些在文本中通常很少出现的词,在某一局部文本中突然大量地出现。能够根据词在局部文本中出现的情况,动态地调整语言模型中的概率分布数据的语言模型,使之成为动态、自适应或者基于缓存的语言模型,这种混合模型可以有效地避免数据稀疏的问题。

以上就是几种常用的语言模型算法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档