一、自然语言处理概述

1)自然语言处理:利用计算机为工具,对书面实行或者口头形式进行各种各样的处理和加工的技术,是研究人与人交际中以及人与计算机交际中的演员问题的一门学科,是人工智能的主要内容。

2)自然语言处理是研究语言能力和语言应用的模型,建立计算机(算法)框架来实现这样的语言模型,并完善、评测、最终用于设计各种实用系统。

3)研究问题(主要):

信息检索
机器翻译
文档分类
问答系统
信息过滤
自动文摘
信息抽取
文本挖掘
舆情分析
机器写作
语音识别

自然语言的困难:

  • 场景的困难:语言的多样性、多变性、歧义性 学习的困难:艰难的数学模型(hmm,crf,EM,深度学习等)
  • 语料的困难:什么的语料?语料的作用?如何获取语料?

二、形式语言与自动机

语言:按照一定规律构成的句子或者字符串的有限或者无限的集合。

描述语言的三种途径:

穷举法 文法(产生式系统)描述 自动机

自然语言不是人为设计而是自然进化的,形式语言比如:运算符号、化学分子式、编程语言

形式语言理论朱啊哟研究的是内部结构模式这类语言的纯粹的语法领域,从语言学而来,作为一种理解自然语言的句法规律,在计算机科学中,形式语言通常作为定义编程和语法结构的基础

形式语言与自动机基础知识:

集合论 图论

自动机的应用:

1.单词自动查错纠正
2.词性消歧(什么是词性?什么的词性标注?为什么需要标注?如何标注?)

形式语言的缺陷:
1.对于像汉语,英语这样的大型自然语言系统,难以构造精确的文法
2.不符合人类学习语言的习惯
3.有些句子语法正确,但在语义上却不可能,形式语言无法排出这些句子
4.解决方向:基于大量语料,采用统计学手段建立模型

三、语言模型

1)语言模型(重要):通过语料计算某个句子出现的概率(概率表示),常用的有2-元模型,3-元模型
2)语言模型应用:
语音识别歧义消除例如,给定拼音串:ta shi yan yan jiu saun fa de
可能的汉字串:踏实烟酒算法的 他是研究酸法的 他是研究算法的,显然,最后一句才符合。
3)语言模型的启示:
开启自然语言处理的统计方法
统计方法的一般步骤:
收集大量语料
对语料进行统计分析,得出知识 针对场景建立算法模型 解释和应用结果
4) 语言模型性能评价,包括评价目标,评价的难点,常用指标(交叉熵,困惑度)
5)数据平滑:
数据平滑的概念,为什么需要平滑
平滑的方法,加一法,加法平滑法,古德-图灵法,J-M法,Katz平滑法等
6)语言模型的缺陷:
语料来自不同的领域,而语言模型对文本类型、主题等十分敏感
n与相邻的n-1个词相关,假设不是很成立。

四、概率图模型,生成模型与判别模型,贝叶斯网络,马尔科夫链与隐马尔科夫模型(HMM)

1)概率图模型概述

(什么的概率图模型,参考清华大学教材《概率图模型》)

2)马尔科夫过程(定义,理解)

3)隐马尔科夫过程(定义,理解)

HMM的三个基本问题(定义,解法,应用)
注:第一个问题,涉及最大似然估计法,第二个问题涉及EM算法,第三个问题涉及维特比算法,内容很多,要重点理解,(参考书李航《统计学习方法》,网上博客,笔者github)

五、马尔科夫网,最大熵模型,条件随机场(CRF)

1)HMM的三个基本问题的参数估计与计算

2)什么是熵

3)EM算法(应用十分广泛,好好理解)

4)HMM的应用

5)层次化马尔科夫模型与马尔科夫网络

6)最大熵马尔科夫模型

优点:与HMM相比,允许使用特征刻画观察序列,训练高效
缺点: 存在标记偏置问题

7)条件随机场及其应用(概念,模型过程,与HMM关系)

参数估计方法(GIS算法,改进IIS算法)
CRF基本问题:特征选取(特征模板)、概率计算、参数训练、解码(维特比)
应用场景:
词性标注类问题(现在一般用RNN+CRF)
中文分词(发展过程,经典算法,了解开源工具jieba分词)
中文人名,地名识别

8) CRF++

六、命名实体 识别,词性标注,内容挖掘、语义分析与篇章分析(大量用到前面的算法)

1)命名实体识别问题

相关概率,定义
相关任务类型
方法(基于规程->基于大规模语料库)

3)CRF解决命名实体识别(NER)流程总结:

训练阶段:确定特征模板,不同场景(人名,地名等)所使用的特征模板不同,对现有语料进行分词,在分词结果基础上进行词性标注(可能手工),NER对应的标注问题是基于词的,然后训练CRF模型,得到对应权值参数值
识别过程:将待识别文档分词,然后送入CRF模型进行识别计算(维特比算法),得到标注序列,然后根据标注划分出命名实体

4)词性标注(理解含义,意义)及其一致性检查方法(位置属性向量,词性标注序列向量,聚类或者分类算法)

七、句法分析

1)句法分析理解以及意义

1.句法结构分析
完全句法分析
浅层分析(这里有很多方法。。。)
2.依存关系分析

2)句法分析方法

1.基于规则的句法结构分析
2.基于统计的语法结构分析

八、文本分类,情感分析

1)文本分类,文本排重

文本分类:在预定义的分类体系下,根据文本的特征,将给定的文本与一个或者多个类别相关联
典型应用:垃圾邮件判定,网页自动分类

2)文本表示,特征选取与权重计算,词向量

文本特征选择常用方法:
1.基于本文频率的特征提取法
2.信息增量法
3.X2(卡方)统计量
4.互信息法

3)分类器设计

SVM,贝叶斯,决策树等

4)分类器性能评测

1.召回率
2.正确率
3.F1值

5)主题模型(LDA)与PLSA

LDA模型十分强大,基于贝叶斯改进了PLSA,可以提取出本章的主题词和关键词,建模过程复杂,难以理解。

6)情感分析

借助计算机帮助用户快速获取,整理和分析相关评论信息,对带有感情色彩的主观文本进行分析,处理和归纳例如,评论自动分析,水军识别。
某种意义上看,情感分析也是一种特殊的分类问题

7)应用案例

九、信息检索,搜索引擎及其原理

1)信息检索起源于图书馆资料查询检索,引入计算机技术后,从单纯的文本查询扩展到包含图片,音视频等多媒体信息检索,检索对象由数据库扩展到互联网。

[1]点对点检索
[2]精确匹配模型与相关匹配模型
[3]检索系统关键技术:标引,相关度计算

2)常见模型:布尔模型,向量空间模型,概率模型

3)常用技术:倒排索引,隐语义分析(LDA等)

4)评测指标

十、自动文摘与信息抽取,机器翻译,问答系统

1)统计机器翻译的的思路,过程,难点,以及解决

2)问答系统

基本组成:问题分析,信息检索,答案抽取
类型:基于问题-答案, 基于自由文本
典型的解决思路

3)自动文摘的意义,常用方法

4)信息抽取模型(LDA等)

十一、深度学习在自然语言中的应用

1)单词表示,比如词向量的训练(wordvoc)

2)自动写文本、写新闻等

3)机器翻译

4)基于CNN、RNN的文本分类

5)深度学习与CRF结合用于词性标注

1 NLP学习大纲的更多相关文章

  1. 大数据Python学习大纲

    最近公司在写一个课程<大数据运维实训课>,分为4个部分,linux实训课.Python开发.hadoop基础知识和项目实战.这门课程主要针对刚从学校毕业的学生去应聘时不会像一个小白菜一样被 ...

  2. Linux 系统从入门到精通的学习大纲;

    以前没有接触过Linux,生产环境需要,有时候遇到问题,百度一下,问题解决了,在遇到问题,在百度,有时候问题是如何解决的,为什么会解决有点丈二的和尚摸不着头脑, 为此,想用一段时间,系统的学习下Lin ...

  3. 《Java开发学习大纲文档》V7.0

    <Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面 ...

  4. Objective-C代码学习大纲(6)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

  5. Objective-C代码学习大纲(5)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

  6. Objective-C代码学习大纲(4)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

  7. Objective-C代码学习大纲(3)

    Objective-C代码学习大纲(3) 2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍 ...

  8. Objective-C代码学习大纲(2)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

  9. Objective-C代码学习大纲(1)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

随机推荐

  1. 【day03】php

    一.类型判别函数库 1.安装:类型判别函数库是PHPCORE的组成部分,不用安装 2.  (1)is_integer|is_int|is_long     描述:  检测变量是否是整数     格式: ...

  2. 【2019年07月22日】A股最便宜的股票

    查看更多A股最便宜的股票:androidinvest.com/CNValueTop/ 便宜指数 = PE + PB + 股息 + ROE,四因子等权,数值越大代表越低估. 本策略只是根据最新的数据来选 ...

  3. skywalking集群部署

    1.需求:有两台服务器分别装了app,对这些app进行性能监控 三台服务器:10.10.20.198作为服务端展示性能数据,10.10.20.64客户端,装btam系统,10.10.20.63客户端装 ...

  4. 用 ubuntu 自带的 gome-screenshot 来实现类似QQ截图那样的功能,同时设置键盘快捷键

    在window下习惯了使用ctrl+Alt+A截图,在linux还真有点不习惯,所以下面介绍一下替代的用法. 打开 ubuntu 的系统设置-->键盘-->快捷键:界面如下: 01 添加一 ...

  5. 更改yum 源

    刚建好的linux服务器,有很多依赖包没有安装,手动安装会非常麻烦,可以通过更改yum源,然后通过yum进行安装会非常方便 1)根据服务器版本找到对应得镜像文件,并将 .iso 结尾的镜像文件上传到l ...

  6. 用vscode开发vue应用

    阅读 3237 收藏 205 2019-05-02 原文链接:segmentfault.com 云服务器 1 核 2G , 9元/月 ,买十送二,99/年!!!快来上车!developer.huawe ...

  7. Web应急:网站被批量挂黑页

    作为一个网站管理员,你采用开源CMS做网站,比如dedecms,但是有一天,你忽然发现不知何时,网站的友情链接模块被挂大量垃圾链接,网站出现了很多不该有的目录,里面全是博彩相关的网页.而且,攻击者在挂 ...

  8. ECS上搭建Docker(CentOS7)

    ECS上搭建Docker(CentOS7) centos下 yum快速安装maven ## 安装jdk8 yum install -y java-1.8.0-openjdk* ## 安装maven w ...

  9. 使用VS Code远程开发

    今天看到园子里的一篇文章:VS Code Remote 发布!开启远程开发新时代,简单的看了一下,它可以直接利用本地的环境远程开发,最直接的好处有: 在部署相同的操作系统上进行开发,或者使用更大或更专 ...

  10. .net core 2.2部署到Windows Server 2012 R2 standard

    安装.net core 2.2 下载地址:https://dotnet.microsoft.com/download/dotnet-core/2.2 找到ASP.NET Core Runtime 2. ...