按照语言习惯,NLP技术从下到上可以分为3个层面:词法、句法、语义。
1. 词汇是语言的最小单元,因此词法技术可以被视为NLP技术的底层,也是其余NLP技术的基础。词法技术的核心任务是识别和区分文本中的单词,以及对词语进行一些预处理。因为词语具有确定的形式,所以通过规则匹配就可以做到比较准确的识别。但是现阶段的分词结果对语义的理解支持不够,如何更好的辅助语义理解,将是分词技术关注的重点。
2. 词汇组织成语句,句法技术顺理成章的成为NLP的第二个层面。句法是对语言进行深层次理解的基石,特别对于机器翻译非常重要。句法技术的主要任务是识别出句子所包含的句法成分以及这些成分之间的关系,一般以句法树来表示句法分析的结果。句法分析一直是NLP技术前进的巨大障碍,主要存在两个难点。一是歧义,自然语言存在大量的歧义现象。人类自身可以依靠大量的先验知识有效地消除各种歧义,而机器由于在知识表示和获取方面存在严重不足,很难像人类那样进行句法消歧。二是搜索空间,句法分析是一个极为复杂的任务,候选树个数随句子增多呈指数级增长,搜索空间巨大。因此,必须设计出合适的解码器,以确保能够在可以容忍的时间内搜索到模型定义最优解。
3. 不论是英语还是汉语,语言的目的都是为了表达含义。因此,语义理解是NLP技术的终极目标,可以说各种NLP技术都采用不同的方式为该目的服务。语义技术不同于上述两个层面,有明确的评判结果,只能通过一些具体场景来判断机器对语义的理解是否恰当。例如在文本关键词提取中,就可以通过对提取结果的分析比较,来衡量机器对浅层语义的理解能力。
接下来会依次介绍词法、句法中的关键技术,之后介绍目前较热的基于机器学习词向量与深度学习中的NLP技术。
1. 词法
词法技术的核心任务是识别和区分文本中的单词,其过程就是分词的过程,因此词法技术主要是各种分词技术。主要分为两大类,规则分词与统计分词。另外,不同语言的分词技术也不近相同,因为每个语言词法层面区别较大。比如英文中,通过空格即可区分词语。但是汉语中,词语是连在一起的,所以必须通过一定的技术才能做到区分,且区分精度较之英文稍差。以下主要介绍中文分词技术。