依存句法分析,法国语言学家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