学习笔记CB006:依存句法、LTP、n元语法模型、N-最短路径分词法、由字构词分词法、图论、概率论
依存句法分析,法国语言学家L.Tesniere1959年提出。句法,句子规则,句子成分组织规则。依存句法,成分间依赖关系。依赖,没有A,B存在错误。语义,句子含义。
依存句法强调介词、助词划分作用,语义依存注重实词间逻辑关系。依存句法随字面词语变化不同,语义依存不同字面词语可同一意思,句法结构不同句子语义关系可相同。依存句法分析和语义分析结合,计算机理解句子含义,匹配到最合适回答,通过置信度匹配实现聊天回答。
依存句法分析,确定句式句法结构(短语结构)或句子词汇依存关系。依存句法分析树,子节点依存于父节点。依存投射树,实线表示依存联结关系,位置低成分依存位置高成分,虚线为投射线。依存关系五公理:1. 句子只有一个独立成分。2. 其他成分直接依存某一成分。3. 任何成分都不能依存两个或两个以上成分。4. 如果A成分直接依存B成分,C成分在句子成分A和B之间,C或者直接依存B,或者直接依存A和B间某一成分。5. 中心成分左右两面其他成分相互不发生关系。
LTP依存关系标记。主谓关系 SBV subject-verb,动宾关系 VOB 直接宾语,verb-object,间宾关系 IOB 间接宾语,indirect-object,前置宾语 FOB 前置宾语,fronting-object,兼语 DBL double,定中关系 ATT attribute,状中结构 ADV adverbial,动补结构 CMP complement,并列关系 COO coordinate,介宾关系 POB preposition-object,左附加关系 LAD left adjunct,右附加关系 RAD right adjunct,独立结构 IS independent structure,核心关系 HED head 。
依存关系计算,机器学习和人工标注,机器学习依赖人工标注,分词词性、依存树库、语义角色,机器学习分析新句子依存句法。
LTP云平台。注册用户,每月免费20G流量。http://www.ltp-cloud.com/ 注册账号,登陆http://www.ltp-cloud.com/dashboard/ ,查看api_key、流量使用,文档http://www.ltp-cloud.com/document 。curl -i "http://api.ltp-cloud.com/analysis/?api_key=ApiKey&text=我是中国人。&pattern=dp&format=plain" 。分词(pattern=ws),词性标注(pattern=pos),命名实体识别(pattern=ner),语义依存分析(pattern=sdp),语义角色标注(pattern=srl)。
自然语言、数学联系是语言模型。数学模型,用数理逻辑方法和数学语言建构科学或工程模型。用数学方式解释事实。数学建模,计算结果解释实际问题,接受实际检验,建立数学模型全过程。语言模型,根据语言客观事实进行语言抽象数学建模。用数学模型解释自然语言事实。
业界认可有效语言模型,n元语法模型(n-gram model),马尔可夫模型,话中下一词出现和最近n个词有关。n=1,最新词只和自己有关,独立,和前面词没关系,一元文法。n=2,最新词和它前面词有关,二元文法,一阶马尔科夫链。工程上n=3最多,n越大约束信息越多,n越小可靠性更高。自然语言处理研究两大方向:基于规则、基于统计。n元语法模型基于统计。最大似然,和历史最相似,用历史出现频率估计概率。
千变万化自然语言导致0概率问题。有限语料库难以穷举语言现象,n元语法模型会出现某一句话出现概率为0。数据平滑技术,通过数学方式让每一句话概率都大于0。特定领域特写词概率偏大问题。缓存刚刚出现过词汇提高后面出现概率。单一语言模型弊端。不同语料库差异,导致单一语言模型不准确,多种语言模型混合计算。或多种语言模型分别计算,最后选择熵最大。神经网络语言模型,特殊模型平滑方式,通过深度学习得到更正确概率。
语言模型应用,中文分词、机器翻译、拼写纠错、语音识别、音子转换、自动文摘、问答系统、OCR。
上个世纪,中文自动分词每句话都要到汉语词表中查找,正向最大匹配法、逆向最大匹配法、双向扫描法、助词遍历法。中文自动分词最难两个问题:1)歧义消除;2)未登陆词识别。
N-最短路径分词法,一元语法模型,每个词一元,独立存在,出现概率基于大量语料统计得出,一句话基于词表各种切词结果都列出,字字组合有很多种,有多个候选结果,每个词出现概率相乘,得到最终结果。基于n元语法模型分词法,在N-最短路径分词法基础上把一元模型扩展成n元模型,统计概率不是一个词概率,是基于前面n个词的条件概率。
由字构词分词方法。字在词中有构词位置,词首、词中、词尾、单独构词。根据字不同构词位置,设计特征,前一个词、前两个词、前面词长度、前面词词首、前面词词尾、前面词词尾加上当前字组成词。基于大量语料库,利用平均感知机分类器对特征打分,训练权重系数,得出模型用来分词,句子右边多出一个字,用模型计算这些特征的加权得分,得分最高的是正确分词方法。
n元语法模型方法,词表里已有词分词。字构词方法,未登陆词的识别。
jieba中文分词,基于前缀词典词图扫描,生成句子中汉字所有可能成词情况有向无环图 (DAG),动态规划查找最大概率路径, 找出基于词频最大切分组合,对于未登录词,采用基于汉字成词能力HMM模型,使用Viterbi 算法。结合词表和由字构词分词。
ik分词器,基于词表最短路径切词。
ltp云平台分词,基于机器学习框架并部分结合词表方法。
其他分词工具判断方法类似,网上对各种分词工具好坏的判断多数是功能上比较,个人建议通过原理来判断,如果结合了基于词表和由字构词并且充分利用统计学习的方法,这样的分词工具才是最好的
图论。图,把孤立点用线连起来,任何点之间都有可能连着。区别于树,树有父子关系,图没有。图表达事物之间关联关系,转化关系。表达关联程度,表达转化可能性大小。
概率论,投硬币出正面概率是1/2,条件概率P(B|A),联合概率P(A,B),贝叶斯公式 P(B|A)=P(A|B)P(B)/P(A)。
贝叶斯(Bayes),基于条件概率P(B|A)。马尔可夫(Markov),链式结构或过程,前n个值决定当前这个值,当前这个值跟前n个值有关。熵(entropy),热力学术语,表示物质系统混乱状态。延伸数学,表达不确定性。延伸信息论,计算机网络信息传输基础理论,不确定性函数 f(p)=-logp,信息熵 H(p)=-∑plogp。信息论鼻祖香农(Shannon)。场(field),域,取值空间。随机场,随机变量赋值全体空间。
概率图模型,用图说明,用概率计算。有向图模型和无向图模型,图里面的边是否有方向。有方向表达推演关系,A前提下出现B,生成式模型。没有方向表达“这样就对了”关系,A和B同时存在就对了,判别式模型。生成式模型用联合概率计算,判别式模型一用条件概率计算。生成式模型,n元语法模型、隐马尔可夫模型、朴素贝叶斯模型。判别式模型,最大熵模型、支持向量机、条件随机场、感知机模型。
贝叶斯网络,条件概率,生成式模型,有向图模型。如果x1为False情况下x6为True的概率,P(x6=T|x1=F)=P(x6=T,x1=F)/P(x1=F)。继续推导,最终由每个节点概率数据计算求得。贝叶斯网络模型通过样本学习估计每个节点概率,达到预测各种问题结果。贝叶斯网络在已知有限的、不完整的、不确定信息条件下学习推理,广泛应用在故障诊断、维修决策、汉语自动分词、词义消歧等问题。
马尔可夫模型和隐马尔可夫模型。一个值跟前面n个值有关,条件概率,生成式模型,有向图模型。马尔可夫模型,关于时间t的状态转换过程,随机有限状态机,状态序列概率通过计算形成该序列所有状态之间转移弧上概率乘积得出。训练样本得出每一个概率值,通过训练模型根据前两个预测下一个概率。隐马尔可夫模型,其中某一阶的信息未知,缺少信息较多,模型算法比较复杂。隐马尔可夫模型广泛应用在词性标注、中文分词。最初不知道怎么分词,前面词分出来,才知后面边界在哪里,后面分词后还要验证前面分词是否正确,前后有依赖关系,不确定中间状态情况最适合用隐马尔可夫模型来解释。
最大熵模型,H(p)=-∑plogp。某信息条件B下,得出某种可能结果A最大概率,条件概率P(A|B)最大候选结果。最大熵不确定性最大,条件概率最大,求最大条件概率等同求最大熵,熵 H(p)=H(A|B)=-∑p(b)p(a|b)log(p(a|b))。使用训练数据估计,p(a|b)通过训练数据特征估计,比如特征fi(a,b),模型训练∑λf(a,b)中λ参数过程。机器学习线性回归了。所以最大熵模型,利用熵原理和熵公式,描述具有概率规律现实。
条件随机场,场表示取值范围,随机场表示随机变量取值范围,每个随机变量固定取值,条件指随机变量取值由一定条件概率决定,条件来自观察值。条件随机场,无向图模型,它给定观察序列X时某个特定标记序列Y概率是指数函数exp(∑λt+∑μs),t是转移函数,s是状态函数。需要训练λ和μ。条件随机场应用在标注和切分有序数据,自然语言处理、生物信息学、机器视觉、网络智能。
参考资料:
《Python 自然语言处理》
http://www.shareditor.com/blogshow?blogId=77
http://www.shareditor.com/blogshow?blogId=78
http://www.shareditor.com/blogshow?blogId=80
http://www.shareditor.com/blogshow?blogId=81
欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi
学习笔记CB006:依存句法、LTP、n元语法模型、N-最短路径分词法、由字构词分词法、图论、概率论的更多相关文章
- 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec
人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...
- 大前端学习笔记整理【一】CSS盒模型与基于盒模型的6种元素居中方案
概览 CSS盒模型,规定了元素框来处理元素的 内容.内边距.边框和外边距的方式 元素部分是指内容部分,也是最实际的内容,包围内容的称之为内边距,内边距外围是边框,边框外围就是外边距:且外边距是透明的, ...
- Java高并发程序设计学习笔记(三):Java内存模型和线程安全
转自:https://blog.csdn.net/dataiyangu/article/details/86412704 原子性有序性可见性– 编译器优化– 硬件优化(如写吸收,批操作)Java虚拟机 ...
- 学习笔记(24)- plato-训练中文模型
先处理中文语料.参考上篇笔记 1. 准备model_definition_file文件 官方文档给了例子, plato/example/config/ludwig/metalWOZ_seq2seq_l ...
- ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )
//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...
- 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)
数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...
- 【deep learning学习笔记】注释yusugomori的LR代码 --- 模型测试
测试部分代码: void test_lr() { srand(0); double learning_rate = 0.1; double n_epochs = 500; int train_N = ...
- C++ Primer 学习笔记_79_模板与泛型编程 --模板编译模型
模板与泛型编程 --模板编译模型 引言: 当编译器看到模板定义的时候,它不马上产生代码.仅仅有在用到模板时,假设调用了函数模板或定义了模板的对象的时候,编译器才产生特定类型的模板实例. 一般而言,当调 ...
- yii学习笔记--使用gii快速创建控制器和模型
配置gii 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'123456',//使用gii的密码 // If ...
随机推荐
- Android Touch事件相关源码【Android SourceCode 2.3.6】
2018-05-31 17:23:46 Note: 这里的源码来自Android 2.3.6,这个版本的代码比较简单,适合理解Touch事件的传递原理.后续版本源码复杂了很多,但是原理都是类似的. 2 ...
- 北航OO第一单元总结
我本着公平公开公正的态度作出以下评价: 1.面向对象真的很修身养性 2.有一个好的身体非常重要 3.互相hack可以暴露人的阴暗面 好了,步入正题. 一.作业分析 1.第一次作业分析 1.1类图 1. ...
- idea开发maven项目热加载
JavaWeb项目,尤其是一些大型项目,在开发过程中,启动项目耗费的时间就不短.大大的拖慢了开发速度!在这分享一种不需要插件就能实现热加载的方法! 默认已经创建好一个Maven项目 点击此按钮 点击 ...
- python简单爬虫 用lxml解析页面中的表格
目标:爬取湖南大学2018年在各省的录取分数线,存储在txt文件中 部分表格如图: 部分html代码: <table cellspacing="0" cellpadding= ...
- Unity 关于AssetBundle读取场景
一. 1.关于如何打包成ab包,就不多说了,网上很多教程,siki学院也有siki老师的免费视频教程挺详细的,可以看看 http://www.sikiedu.com/my/course/74 2.为了 ...
- jquery实现本地图片上传预览和限流处理
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- ShellExecute, WinExec与CreateProcess
0x01 ShellExecute ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制. 函数原型: Shel ...
- [转]MYSQL 创建存储过程
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- python logging模块使用流程
#!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') logging ...
- vs问题--------------标记为系统必备组建...
问题:标记为系统必备组建 要将程序集“D:\project\DMS\DMSGaeaService\TmsApplication\bin\Debug\Jns.Gaea.dll”标记为系统必备组件,必须对 ...