NLP总览
一、自然语言处理概述
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结合用于词性标注
NLP总览的更多相关文章
- 使用httpclient访问NLP应用接口例子
参考网址: http://yuzhinlp.com/docs.html 接入前须知 接入条件 1.进入网站首页,点击注册成为语知科技用户 2.注册完成后,系统将提供语知科技用户唯一标识APIKey,并 ...
- 【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理
干货!详述Python NLTK下如何使用stanford NLP工具包 作者:白宁超 2016年11月6日19:28:43 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的 ...
- 【NLP】十分钟快览自然语言处理学习总结
十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文 ...
- 【NLP】前戏:一起走进条件随机场(一)
前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...
- 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...
- 【NLP】Python NLTK处理原始文本
Python NLTK 处理原始文本 作者:白宁超 2016年11月8日22:45:44 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开 ...
- 【NLP】Python NLTK获取文本语料和词汇资源
Python NLTK 获取文本语料和词汇资源 作者:白宁超 2016年11月7日13:15:24 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集 ...
- NLP点滴——文本相似度
[TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...
- 【NLP】Python NLTK 走进大秦帝国
Python NLTK 走进大秦帝国 作者:白宁超 2016年10月17日18:54:10 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公 ...
随机推荐
- 【SpringCloud微服务实战学习系列】配置详解
前言 Spring Boot针对常用的开发场景提供了一系列自动化配置来减少原本复杂而又几乎很少改动的模板化配置内容. 一.配置文件 Spring Boot的默认配置文件位置为src/main.reso ...
- java(9)并发编程
整理自<java 并发编程的艺术> 1. 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制.时间片是CPU分配给各个线程的时间,因为时间 ...
- linux指定某非root用户执行开机启动项的方法(gogs git)
以linux指定git用户在linux开机时执行启动gogs git为例: 以root登录linux 执行vi /etc/rc.d/rc.local 在文档末尾添加一行语句:su git -c &qu ...
- vue生成路由实例
一.vue路由https://router.vuejs.org/zh-cn/1.bower下载vue-routervue的里的链接 <router-link to="/home&quo ...
- Promise在await报错后,如何继续往下跑...
一.resolve 当a>0时,正常情况依次输出A.B.C console.log("A"); let result = await this.test(); console ...
- DXP 内电层分割
多层电路板中间层设置与内电层如何分割 多层电路板与一般的电路板不同之处在于,多层电路板除了顶层和底层之外,还有若干中间层,这些中间层可以是信号层(mid layer),也可以是内部电源/接地层(int ...
- gcd 多线程结束通知
另外,GCD还有一些高级用法,例如让后台2个线程并行执行,然后等2个线程都结束后,再汇总执行结果.这个可以用dispatch_group, dispatch_group_async 和 dispatc ...
- jQuery相同id元素 全部获取问题解决办法
问题:今天在做页面链接的点击效果时,让部分a链接跳转到同一个地址,即使使用$().each()也同样无法获取所有相同id的值. 用以下方法只有第一个a链接点击可以正常跳转 例如: html代码: &l ...
- redis进程守护脚本
#!/bin/bash redis_dir="/usr/local/redis" redis_conf="/usr/local/redis/redis.conf" ...
- Spark2 加载保存文件,数据文件转换成数据框dataframe
hadoop fs -put /home/wangxiao/data/ml/Affairs.csv /datafile/wangxiao/ hadoop fs -ls -R /datafiledrwx ...