(转 )十分钟学习自然语言处理概述

(转 )十分钟学习自然语言处理概述

作者:白宁超

2016年9月23日00:24:12

摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛。笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述。关于这些问题,博客里面都有详细的文章去介绍,本文只是对其各个部分高度概括梳理。本文原创,转载注明出处十分钟学习自然语言处理概述  )

1 什么是文本挖掘?

文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现。文本挖掘的准备工作由文本收集、文本分析和特征修剪三个步骤组成。目前研究和应用最多的几种文本挖掘技术有:文档聚类、文档分类和摘要抽取。

2 什么是自然语言处理?

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究人与计算机之间用自然语言进行有效通信的理论和方法。融语言学、计算机科学、数学等于一体的科学。
自然语言处理原理:形式化描述-数学模型算法化-程序化-实用化
语音的自动合成与识别、机器翻译、自然语言理解、人机对话、信息检索、文本分类、自动文摘等。

3 常用中文分词?

中文文本词与词之间没有像英文那样有空格分隔,因此很多时候中文文本操作都涉及切词,这里整理了一些中文分词工具。
Stanford(直接使用CRF 的方法,特征窗口为5。)

汉语分词工具(个人推荐)

哈工大语言云

庖丁解牛分词

盘古分词  ICTCLAS(中科院)汉语词法分析系统

IKAnalyzer(Luence项目下,基于java的)

FudanNLP(复旦大学)

4 词性标注方法?句法分析方法?

原理描述:标注一篇文章中的句子,即语句标注,使用标注方法BIO标注。则观察序列X就是一个语料库(此处假设一篇文章,x代表文章中的每一句,X是x的集合),标识序列Y是BIO,即对应X序列的识别,从而可以根据条件概率P(标注|句子),推测出正确的句子标注。

显然,这里针对的是序列状态,即CRF是用来标注或划分序列结构数据的概率化结构模型,CRF可以看作无向图模型或者马尔科夫随机场。   用过CRF的都知道,CRF是一个序列标注模型,指的是把一个词序列的每个词打上一个标记。一般通过,在词的左右开一个小窗口,根据窗口里面的词,和待标注词语来实现特征模板的提取。最后通过特征的组合决定需要打的tag是什么。

5 命名实体识别?三种主流算法,CRF,字典法和混合方法

1 CRF:在CRF for Chinese NER这个任务中,提取的特征大多是该词是否为中国人名姓氏用字,该词是否为中国人名名字用字之类的,True or false的特征。所以一个可靠的百家姓的表就十分重要啦~在国内学者做的诸多实验中,效果最好的人名可以F1测度达到90%,最差的机构名达到85%。

2 字典法:在NER中就是把每个字都当开头的字放到trie-tree中查一遍,查到了就是NE。中文的trie-tree需要进行哈希,因为中文字符太多了,不像英文就26个。

3 对六类不同的命名实体采取不一样的手段进行处理,例如对于人名,进行字级别的条件概率计算。   中文:哈工大(语言云)上海交大    英文:stanfordNER等

7 基于主动学习的中医文献句法识别研究

7.1 语料库知识?   

语料库作为一个或者多个应用目标而专门收集的,有一定结构的、有代表的、可被计算机程序检索的、具有一定规模的语料的集合。

语料库划分:① 时间划分② 加工深度划分:标注语料库和非标注语料库③ 结构划分⑤ 语种划分⑥ 动态更新程度划分:参考语料库和监控语料库

语料库构建原则:①   代表性②   结构性③   平衡性④   规模性⑤   元数据:元数据对

语料标注的优缺点

①   优点: 研究方便。可重用、功能多样性、分析清晰。

②   缺点: 语料不客观(手工标注准确率高而一致性差,自动或者半自动标注一致性高而准确率差)、标注不一致、准确率低

7.2 条件随机场解决标注问题?

条件随机场用于序列标注,中文分词、中文人名识别和歧义消解等自然语言处理中,表现出很好的效果。原理是:对给定的观察序列和标注序列,建立条件概率模型。条件随机场可用于不同预测问题,其学习方法通常是极大似然估计。

我爱中国,进行序列标注案例讲解条件随机场。(规则模型和统计模型问题)

条件随机场模型也需要解决三个基本问题:特征的选择(表示第i个观察值为“爱”时,相对yi,yi-1的标记分别是B,I),参数训练和解码。

7.3 隐马尔可夫模型

应用:词类标注、语音识别、局部句法剖析、语块分析、命名实体识别、信息抽取等。应用于自然科学、工程技术、生物科技、公用事业、信道编码等多个领域。

马尔可夫链:在随机过程中,每个语言符号的出现概率不相互独立,每个随机试验的当前状态依赖于此前状态,这种链就是马尔可夫链。

多元马尔科夫链:考虑前一个语言符号对后一个语言符号出现概率的影响,这样得出的语言成分的链叫做一重马尔可夫链,也是二元语法。二重马尔可夫链,也是三元语法,三重马尔可夫链,也是四元语法

隐马尔可夫模型思想的三个问题 

问题1(似然度问题):给一个HMM λ=(A,B) 和一个观察序列O,确定观察序列的似然度问题 P(O|λ) 。(向前算法解决)

问题2(解码问题):给定一个观察序列O和一个HMM λ=(A,B),找出最好的隐藏状态序列Q。(维特比算法解决)

问题3(学习问题):给定一个观察序列O和一个HMM中的状态集合,自动学习HMM的参数A和B。(向前向后算法解决)

7.4 Viterbi算法解码

思路:

1 计算时间步1的维特比概率

2 计算时间步2的维特比概率,在(1) 基础计算

3 计算时间步3的维特比概率,在(2) 基础计算

4 维特比反向追踪路径

维特比算法与向前算法的区别:

(1)维特比算法要在前面路径的概率中选择最大值,而向前算法则计算其总和,除此之外,维特比算法和向前算法一样。

(2)维特比算法有反向指针,寻找隐藏状态路径,而向前算法没有反向指针。

HMM和维特比算法解决随机词类标注问题,利用Viterbi算法的中文句法标注

7.5 序列标注方法       参照上面词性标注

7.6 模型评价方法

模型:方法=模型+策略+算法

模型问题涉及:训练误差、测试误差、过拟合等问题。通常将学习方法对未知数据的预测能力称为泛化能力。

模型评价参数:

准确率P=识别正确的数量/全部识别出的数量

错误率 =识别错误的数量/全部识别出的数量

精度=识别正确正的数量/识别正确的数量

召回率R=识别正确的数量/全部正确的总量(识别出+识别不出的)

F度量=2PR/(P+R)

数据正负均衡适合准确率    数据不均适合召回率,精度,F度量

几种模型评估的方法:

K-折交叉验证、随机二次抽样评估等    ROC曲线评价两个模型好坏

8 基于文本处理技术的研究生英语等级考试词汇表构建系统

完成对2002--2010年17套GET真题的核心单词抽取。其中包括数据清洗,停用词处理,分词,词频统计,排序等常用方法。真题算是结构化数据,有一定规则,比较容易处理。此过程其实就是数据清洗过程)最后把所有单词集中汇总,再去除如:a/an/of/on/frist等停用词(中文文本处理也需要对停用词处理,诸如:的,地,是等)。处理好的单词进行去重和词频统计,最后再利用网络工具对英语翻译。然后根据词频排序。

8.1 Apache Tika?

Apache Tika内容抽取工具,其强大之处在于可以处理各种文件,另外节约您更多的时间用来做重要的事情。

Tika是一个内容分析工具,自带全面的parser工具类,能解析基本所有常见格式的文件

Tika的功能:?文档类型检测   ?内容提取  ?元数据提取  ?语言检测

8.2 文本词频统计?词频排序方法?

算法思想:

1 历年(2002—2010年)GET考试真题,文档格式不一。网上收集

2 对所有格式不一的文档进行统计处理成txt文档,格式化(去除汉字/标点/空格等非英文单词)和去除停用词(去除891个停用词)处理。

3 对清洗后的单词进行去重和词频统计,通过Map统计词频,实体存储:单词-词频。(数组也可以,只是面对特别大的数据,数组存在越界问题)。排序:根据词频或者字母

4 提取核心词汇,大于5的和小于25次的数据,可以自己制定阈值。遍历list<实体>列表时候,通过获取实体的词频属性控制选取词汇表尺寸。

5 最后一步,中英文翻译。

9 朴素贝叶斯模型的文本分类器的设计与实现

9.1 朴素贝叶斯公式  

0:喜悦  1:愤怒 2:厌恶 3:低落

9.2 朴素贝叶斯原理

-->训练文本预处理,构造分类器。(即对贝叶斯公式实现文本分类参数值的求解,暂时不理解没关系,下文详解)

-->构造预测分类函数

-->对测试数据预处理

-->使用分类器分类

对于一个新的训练文档d,究竟属于如上四个类别的哪个类别?我们可以根据贝叶斯公式,只是此刻变化成具体的对象。

> P( Category | Document):测试文档属于某类的概率

> P( Category)):从文档空间中随机抽取一个文档d,它属于类别c的概率。(某类文档数目/总文档数目)

> (P ( Document | Category ):文档d对于给定类c的概率(某类下文档中单词数/某类中总的单词数)

> P(Document):从文档空间中随机抽取一个文档d的概率(对于每个类别都一样,可以忽略不计算。此时为求最大似然概率)

>  C(d)=argmax {P(C_i)*P(d|c_i)}:求出近似的贝叶斯每个类别的概率,比较获取最大的概率,此时文档归为最大概率的一类,分类成功。

综述

1.  事先收集处理数据集(涉及网络爬虫和中文切词,特征选取)

2.  预处理:(去掉停用词,移除频数过小的词汇【根据具体情况】)

3.  实验过程:

数据集分两部分(3:7):30%作为测试集,70%作为训练集

增加置信度:10-折交叉验证(整个数据集分为10等份,9份合并为训练集,余下1份作为测试集。一共运行10遍,取平均值作为分类结果)优缺点对比分析

4. 评价标准:

宏评价&微评价

平滑因子

9.3 生产模型与判别模型区别

1)生产式模型:直接对联合分布进行建模,如:隐马尔科夫模型、马尔科夫随机场等

2)判别式模型:对条件分布进行建模,如:条件随机场、支持向量机、逻辑回归等。

生成模型优点:1)由联合分布2)收敛速度比较快。3)能够应付隐变量。 缺点:为了估算准确,样本量和计算量大,样本数目较多时候不建议使用。

判别模型优点:1)计算和样本数量少。2)准确率高。缺点:收敛慢,不能针对隐变量。

9.4 ROC曲线

ROC曲线又叫接受者操作特征曲线,比较学习器模型好坏可视化工具,横坐标参数假正例率,纵坐标参数是真正例率。曲线越靠近对角线(随机猜测线)模型越不好。

好的模型,真正比例比较多,曲线应是陡峭的从0开始上升,后来遇到真正比例越来越少,假正比例元组越来越多,曲线平缓变的更加水平。完全正确的模型面积为1

10 统计学知识

信息图形化(饼图,线形图等)

集中趋势度量(平均值 中位数 众数 方差等)

概率

排列组合

分布(几何二项泊松正态卡方)

统计抽样

样本估计

假设检验

回归

11 stanfordNLP

句子理解、自动问答系统、机器翻译、句法分析、标注、情感分析、文本和视觉场景和模型, 以及自然语言处理数字人文社会科学中的应用和计算。

12 APache OpenNLP

Apache的OpenNLP库是自然语言文本的处理基于机器学习的工具包。它支持最常见的NLP任务,如断词,句子切分,部分词性标注,命名实体提取,分块,解析和指代消解。

句子探测器:句子检测器是用于检测句子边界

标记生成器:该OpenNLP断词段输入字符序列为标记。常是这是由空格分隔的单词,但也有例外。

名称搜索:名称查找器可检测文本命名实体和数字。

POS标注器:该OpenNLP POS标注器使用的概率模型来预测正确的POS标记出了标签组。

细节化:文本分块由除以单词句法相关部分,如名词基,动词基的文字,但没有指定其内部结构,也没有其在主句作用。

分析器:尝试解析器最简单的方法是在命令行工具。该工具仅用于演示和测试。请从我们网站上的英文分块

13 Lucene

Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta(雅加达) 家族中的一个 开源项目。也是目前最为流行的基于Java开源全文检索工具包。

目前已经有很多应用程序的搜索功能是基于 Lucene ,比如Eclipse 帮助系统的搜索功能。Lucene能够为文本类型的数 据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。

14 Apache Solr

Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器。Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式。它易于安装和配置, 而且附带了一个基于HTTP 的管理界面。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。

Solr的特性包括:

?高级的全文搜索功能

?专为高通量的网络流量进行的优化

?基于开放接口(XML和HTTP)的标准

?综合的HTML管理界面

?可伸缩性-能够有效地复制到另外一个Solr搜索服务器

?使用XML配置达到灵活性和适配性

?可扩展的插件体系 solr中文分词

15 机器学习降维

主要特征选取、随机森林、主成分分析、线性降维

16 领域本体构建方法

1 确定领域本体的专业领域和范畴

2 考虑复用现有的本体

3 列出本体涉及领域中的重要术语

4 定义分类概念和概念分类层次

5 定义概念之间的关系

17 构建领域本体的知识工程方法:

主要特点:本体更强调共享、重用,可以为不同系统提供一种统一的语言,因此本体构建的工程性更为明显。

方法:目前为止,本体工程中比较有名的几种方法包括TOVE 法、Methontology方法、骨架法、IDEF-5法和七步法等。(大多是手工构建领域本体)

现状: 由于本体工程到目前为止仍处于相对不成熟的阶段,领域本体的建设还处于探索期,因此构建过程中还存在着很多问题。

方法成熟度: 以上常用方法的依次为:七步法、Methontology方法、IDEF-5法、TOVE法、骨架法。

时间: 2024-10-12 16:45:13

(转 )十分钟学习自然语言处理概述的相关文章

【NLP】十分钟学习自然语言处理

十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述.关于这些问题,博客里面都有详细的文章去介绍,本文只是对其各个部分高度概括梳理.(本文原创,转载注明出处:十分钟学习自然语言处理概述  ) 1 什么是文本挖掘? 文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现.文本挖掘的准备工作由文本收集.文本分

每天十分钟学习计算机专业英语(一)

每天十分钟学习计算机专业英语(一) 对于一个程序员来说,良好的英语阅读能力是很重要的.因为我们往往需要阅读英文的文档,比如MDN.除此之外,使用github和stackoverflow这些网站也是需要良好的英语能力作为支撑的.这一系列的博文会记录计算机专业英语的相关知识,以提升我们的英文阅读和翻译水平. 第一部分:基本单词 hardware n 硬件 keyboard n 键盘 typewriter n 打字机 button n 按钮 type v 打字 n 类型 traditional adj

十分钟学习Python的进阶语法

(0)目录 VMware 下安装Ubuntu的吐血经历 零基础学习Shell编程 Linux下的makefile的妙用 Linux调试神器 -- gdb 十分钟学会Python的基本类型 分布式版本管理神器--GIT GIT文件的三种状态 & Git SSH秘钥问题 十分钟学习Python的进阶语法 配置SSH无密码访问及Linux热键.重启.kill进程 Java的不定长参数和Python的不定长参数对比 一:起因 (1)作为胶水语言的Python,可谓无处不在,快速开发原型网站:大数据处理等

十分钟(小时)学习pandas

十分钟(小时)学习pandas 一.导语 这篇文章从pandas官网翻译:链接,而且也有很多网友翻译过,而我为什么没去看他们的,而是去官网自己艰难翻译呢? 毕竟这是一个学习的过程,别人写的不如自己写的记忆深刻.那么开始吧. 1.pandas是什么? pandas是基于numpy的数据分析库(如果你没了解过numpy,可以在我的博客看numpy相关的文章),提供快速.灵活和富有表现力的数据结构. pandas的数据结构分为Series(一维)和DataFrame(二维).这两个主要的数据结构在金融

花十分钟,让你变成AI产品经理

花十分钟,让你变成AI产品经理 https://www.jianshu.com/p/eba6a1ca98a4 先说一下你阅读本文可以得到什么.你能得到AI的理论知识框架:你能学习到如何成为一个AI产品经理并且了解到AI产品经理如何在工作中发挥作用,以及AI产品经理需要从哪些方面锻炼能力.最重要的是,通过本文,一切都特别快(手打滑稽). PS:目前只针对弱人工智能(我喜欢简称,此处我们简称为"弱智")进行学习. 首先我们必须要掌握的是AI的专业知识框架,然后了解AI的市场情况,最后要明白

[转]教你十分钟下载并破解IntelliJ IDEA(2017)

来源:http://www.itwendao.com/article/detail/400687.html 之前都是用myeclipse,但是最近发现看的很多教学视频都是使用 IntelliJ IDEA,于是决定换个软件开始新的学习征程! 下面讲讲我是如何在十分钟之内安装并破解该软件. 1.首先,我找到了 IntelliJ IDEA的官网:www.jetbrains.com 然后找到下载的地方,选择自己电脑所匹配的下载安装包,这里我们选择收费版的下载,因为免费版的功能并没有收费版的强悍. 2.接

教你十分钟掌握Linux文件系统管理

在第一天装系统的时候,我们已经知道了mount,即挂载的概念.装机时自己配置分区的小伙伴都知道,CentOS7的文件系统为xfs,CentOS6则是ext4,更早的CentOS5则是ext3.老师告诉我们这叫文件系统.不同的文件系统有不同的存储特色.如linux里ext2无日志,xfs可支持最高200T之类的,window里fat32无法支持大于4G文件的传输云云-- 稍等,好像有点跑题了. 总之,今天我们来说说基于CentOS平台的Linux文件管理. 先看下面这个题目. 创建一个2G的文件系

十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))

十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的,尤其是写重复颜色.样式的代码,这需要我们付出很多努力来保持css代码可维护,但是它本不应该是这样的. 很幸运地是,web开发社区已经解决了这个问题,我们在现在已经有了类似与less.sass和stylus这样的预处理器.它们有很多优于一般的css之处,如下所示: 变量---以至于我们可以在样式表中

你的计算机也可以看懂世界(一)——十分钟跑起卷积神经网络(Windows+CPU)

学习.使用卷积神经网络已经挺久了,期间一直在基于贾扬清大神的Caffe框架来研究别人的模型,抑或是在无聊的时候以近似于算命一样的方式,眼睛微闭,摇头晃脑,口中不时漏出几个音节,半晌便DIY出一个自认为改进颇多的模型,然后去跑一下,当然结果是非常惨淡的(要不然我就直接发论文了哪有这么闲还来写博客...),从这个过程中,我深刻地体会到了"前人栽树后人乘凉"这句话的正确性,虽然贾大神这个前人也不比我等大上几岁.今天听说贾大神宣布了最新的可以在移动设备上进行训练和测试的Caffe框架,心想我知