文档章节

N-gram的原理、用途和研究

Airship
 Airship
发布于 2017/08/23 07:45
字数 1023
阅读 45
收藏 0
点赞 0
评论 0

N-gram的原理、用途和研究

N-gram的基本原理

转自:http://blog.sciencenet.cn/blog-713101-797384.html

N-gram是计算机语言学和概率论范畴内的概念,是指给定的一段文本或语音中N个项目(item)的序列。项目(item)可以是音节、字母、单词或碱基对。通常N-grams取自文本或语料库。

N=1时称为unigram,N=2称为bigram,N=3称为trigram,以此类推。

举例来说:将“informationretrieval”视为一段文本,它的5-grams的items依次为:

infor,nform,forma,ormat,rmati,matio,ation,tion,ionr,onre,nret,retr,retri,etrie,triev,rieva,ieval

有时为了便于分析,还会在前面加空格,这就多出4个items:____i,___in,__inf,_info

举例中文:“你今天休假了吗”,它的bigram依次为:

你今,今天,天休,休假,假了,了吗

制造这种语言模型的原因是基于这么一种思想:在整个语言环境中,句子T的出现概率是由组成T的N个item的出现概率组成的,如下公式所示

P(T)=P(W1W2W3Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)

以上公式难以实际应用。此时出现马尔科夫模型,该模型认为,一个词的出现仅仅依赖于它前面出现的几个词。这就大大简化了上述公式。

P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)≈P(W1)P(W2|W1)P(W3|W2)…P(Wn|Wn-1)

通常采用bigram和trigram进行计算。

N-gram的用途

20世纪80年代至90年代初,n-gram技术被广泛地用来进行文本压缩,检查拼写错误,加速字符串查找,文献语种识别。90年代,该技术又在自然语言处理自动化领域得到新的应用,如自动分类,自动索引,超链的自动生成,文献检索,无分隔符语言文本的切分等。

目前N-gram最为有用的就是自然语言的自动分类功能。基于n-gram的自动分类方法有两大类,一类是人工干预的分类(Classification),又称分类;一类是无人工干预的分类(Clustering),又称聚类。人工干预的分类,是指人工预先分好类(如Yahoo!的层次结构类),然后,计算机根据特定算法自动地将新添加到数据库的文献划归某一类。这类方法缺点是,人们须预先具备关于整个文献库和分类的知识。无人工干预的分类,是指计算机自动地识别文献组(集合),人们勿需预先具备关于整个文献库和分类的知识。

可以想象,如今信息泛滥的时代,资源呈指数方式递增。依靠人工信息识别和分类已经变得不现实,人类依靠计算机对自然语言本文的自动分类正在成为现实。这又与KDA和SVM结合起来,利用机器学习,首先利用Trainingdata形成分类函数,然后利用Testingdata进行测试其准确性。

N-gram中的数据平滑

对于一个包含2000个词的文本,使用bigram方法就会形成2000×2000的矩阵,trigram就形成2000×2000×2000的矩阵,其中含有大量的0值,即稀疏矩阵。此时需要采用数据平滑技术(datasmoothing)使得;并且P(Wk)均不等于0。

N-gram的相关研究

以上介绍都很浅薄,有兴趣可以参考相关研究:

英家庆,使用N-gram模型對中文文件自動分類,硕士论文,

http://ethesys.lib.mcu.edu.tw/ETD-db/ETD-search/getfile?URN=etd-0817107-135543&filename=etd-0817107-135543.pdf

 

图  .N-gram处理中文流程

何浩,杨海棠,一种基于 N-Gram 技术的中文文献自动分类方法,情报学报,http://study.hbecrc.org/lcq/xueshuyanjiu/UploadFiles_9984/200704/20070417110725112.pdf

George Doddington,Automatic Evaluation of MachineTranslation Quality Using N-gram Co-Occurrence Statistics,http://dl.acm.org/citation.cfm?id=1289189.1289273

 

 

转载本文请联系原作者获取授权,同时请注明本文来自王磊科学网博客。
链接地址:http://blog.sciencenet.cn/blog-713101-797384.html

本文转载自:http://www.cnblogs.com/cdsj/p/5720391.html

共有 人打赏支持
Airship
粉丝 34
博文 789
码字总数 18996
作品 0
南京
高级程序员
吾爱NLP--我与自然语言处理

0、自然语言处理--NLP 0.1 数字、文本、语言 "数字、文字和自然语言处理一样,都是信息的载体,数字与语言的产生都是为了同一个目的----记录和传播信息。" --《数学之美》 文字只是信息的载体...

流川枫AI ⋅ 2017/06/13 ⋅ 0

语音识别引擎--Julius

Julius 是一种高性能,两通大词汇量连续语音识别(LVCSR)语音相关的研究和开发的解码器软件。基于字的N-gram和上下文相关的HMM模型,它可以进行几乎实时实时解码目前大多数电脑在60K字听写任...

匿名 ⋅ 2012/07/24 ⋅ 0

脸书论文翻译《Bag of Tricks for Efficient Text Classification》

这篇论文挂在arxiv上已经一年了,第一版并没有引起我太多的注意,因为那个时候fastText看上去更像是一个实验室的helloWorld,直到最近我被一遍又一遍刷屏的CNN文本分类弄得有点烦躁,所以想用...

戴德曼 ⋅ 2017/07/15 ⋅ 0

2017论文回顾 | Yann LeCun:中英日韩语文本分类通用编码机制(附论文下载)

今天的头条文章是Nature关于“论文零引用”的研究。2017年,各路AI会议颇多、论文频出,有哪些论文值得关注?它们给这个世界带来了什么样的影响?我们希望这个小栏目的存在,能让论文重新“发...

技术小能手 ⋅ 2017/12/27 ⋅ 0

2017论文回顾 | Yann LeCun:中英日韩语文本分类通用编码机制(附论文下载)

大数据文摘作品 作者:龙牧雪 今天的头条文章是Nature关于“论文零引用”的研究。2017年,各路AI会议颇多、论文频出,有哪些论文值得关注?它们给这个世界带来了什么样的影响?我们希望这个小...

sfm06sqvw55dft1 ⋅ 2017/12/29 ⋅ 0

SSL 与数字证书 - 前言

前言 SSL是让人头大的东西,看起来很复杂,我学过信息安全课,但是对SSL仍然是模糊一片。对于数字证书也是一知半解,从来没有去认真研究过。只知道个大概,“反正就是对称加密和非对称加密”...

虫虫 ⋅ 2012/03/01 ⋅ 1

感知机原理小结

感知机可以说是最古老的分类方法之一了,在1957年就已经提出。今天看来它的分类模型在大多数时候泛化能力不强,但是它的原理却值得好好研究。因为研究透了感知机模型,学习支持向量机的话会降...

文艺小青年 ⋅ 2017/11/22 ⋅ 0

机器翻译引擎的基本原理 ——LSTM

机器翻译引擎的基本原理 摘自:infoq 谷歌机器翻译 Zero-shot:零次 Training:训练 Google Neural Machine Translation:谷歌神经机器翻译 我们每天都在使用不同的技术,但却不知道它们的工...

桃子红了呐 ⋅ 2017/11/15 ⋅ 0

学习 bison 原理(二)

学习 bison 原理(二) 现在简述 bison 读入文法文件, 及在读入时建立的内部的数据结构. 一个文法文件分成三个部分(section), 简要列出如下: declaration / 符号声明,选项等 / %% / 分隔开各个...

刘军兴 ⋅ 2012/12/07 ⋅ 0

弗洛伊德经典作品集.epub+mobi+azw3

简介: 《性学三论与爱情心理学》 《精神分析引论》 《自我本我与集体心理学》 《梦的解析-插图版》 《性学三论与爱情心理学》是阐释弗洛伊德在人性与人类行为动机方面主要研究理论的扛鼎之作...

jackmk ⋅ 05/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 9分钟前 ⋅ 0

Java学习路径及练手项目合集

Java学习路径及练手项目合集

颖伙虫 ⋅ 24分钟前 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 50分钟前 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部