本文章主要介绍了NLU技术的算法包括词法分析、句法分析、语义分析,有助于PM了解技术实现边界,产品快捷高效的落地~
自然语言理解技术(NLU)是人机对话产品中的重要一环,是指机器能够执行人类所期望的某些语言功能,换句话说就是人与机器交流的桥梁。
语言理解主要包括以下方面内容:
能够理解句子的正确次序规则和概念,又能理解不含规则的句子;
知道词的确切含义、形式、词类及构词法;
了解词的语义分类、词的多义性、词的歧义性;
指定和不定特性及所有特性;
问题领域的结构知识和实践概念;
语言的语气信息和韵律表现;
有关语言表达形式的文字知识;
论域的背景知识。
语言理解通常分为三个层次:词法分析、句法分析、语义分析。
词法分析
词法分析是自然语言处理的技术基础,也是自然语言理解过程的第一层,因此词法分析的性能直接影响到后面句法和语义分析的成果。主要包括自动分词、词性标注、中文命名实体标注三方面内容。
1. 自动分词
现有分词的算法分为三大类:基于词典的分词方法、基于统计的分词方法、基于理解的分词方法。
当前主流的方法还是基于词典进行分词,主要包括正向最大匹配、逆向最大匹配、双向最大匹配。原理是按照既定的规则顺序,将目标字符串依次与词典匹配,匹配成功就取出该词,直到整个字符串全部匹配,如在词典中匹配到,就取出单字。
case:字串“召开大学生运动会”,分别通过三种分词算法进行切分:
(1)正向最大匹配
第一轮取词
….
第二轮取词
…..
分词结果:召开/大学/生/运动/会
(2)逆向最大匹配
第一轮取词:
….
第8次:“会”
第二轮取词:
…
分词结果:召开/大/学生/运动/会
(3)双向最大匹配
将正向最大匹配和逆向最大匹配算法得到的结果进行比较,从而确定正确的分词方法。
选择的依据如下:
大颗粒度词越多越好;
非词典词越少越好;
单字词越少越好。
2. 词性标注
词性标注是对分词结果中的每个单词标注一个正确的词性,例如:每个词是名词、动词还是形容词等。汉语中,词性标注笔记哦啊简单,因为大多词语只有一个词性,或者出现频次最高的词性远远高于第二位的词性。
因此在词性标注时,一般先针对已存在的词库进行统计学处理,建立词性标注模型,进而通过概率判断每个词的词性。
3. 中文命名实体
命名实体就是奖文本中的元素分成预先定义的类,例如:人名、地名、时间、百分比等。它的技术方法主要分为基于规则和词典、基于统计、二者结合的方法。
基于规则和词典的方法,大多是由语言学专家构造规则模板然后进行匹配。这个时候,词典和知识库的创建会直接影响命名实体的准确率。
举个简单规则的例子:人名=【姓氏】+【名字】,那么分别建立“姓氏”、“名字”库,如字串命中,则识别出包含人名实体。
基于统计的方法,主要是通过对训练语料所包含的语言信息进行统计和分析,从许年语料中挖掘出特征。因此这种方法对语料库的依赖比较大,而用来建设和评估命名实体识别系统的大规模通用语料库又比较少。
句法分析
句法分析的目标是自动推导出句子的句法结构,实现这个目标首先要确定语法体系,不同的语法体系会产生不同的句法结构。常见语法体系有短语结构语法、依存关系语法。
依存关系语法
同样分为基于规则和基于统计的两种方法,基本自然语言的技术中,很多都是基于“词典/规则”+“统计”的方法。
(1)基于规则的方法
优点在于:可以最大限度的接近自然语言的句法习惯、表达方式灵活多样,可以最大限度的表达研究人员的思想;
缺点在于:规则刻画的知识粒度难以确定,无法确保规则的一致性,获取规则同样是一个繁琐的过程。
(2)基于统计的方法
目前是句法分析的主流技术,确定语法体系后,需要按照语法体系人工标注句子的语法结构,将其作为训练的语料。因此语料库的建设是非常关键的。
语义分析
语义分析就是指分析话语中所包含的含义,根本目的是理解自然语言。分为词汇级语义分析、句子级语义分析、段落/篇章级语义分析,即分别理解词语、句子、段落的意义。
这部分在我的工作中相对前两部分应用的较少一些,因此没有过多的进行学习了解。
理解NLU技术的基本原理和算法可以在PM优化产品时起到很大的帮助,使我在产品设计时,可以提前了解技术边界,在和研发沟通时,效率也更高。