自然语言处理-rasa机器人的初体验(二)
进行了第一步的体验,我们已经感受到了自然语言处理的魅力.
但这第一步并不算真正的自然语言理解,我们第二部分进行一些概念性内容的学习,才能真正理解rasa机器人的运行原理。
自然语言处理(Natural Language Processing)以下简称NLP,
NLP中具有两大核心,分别是
自然语言理解(Natural Language Understanding)以下简称NLU,
希望机器能像人一样具备正常的语言理解能力
自然语言生成(Natural language generation)一下简称NLG,
将非语言格式的数据转化成人类可以理解的语言。
NLP对中英文的处理方式有本质的区别:
首先,机器处理一段文字时,首先需要进行分词,
分词的意义是讲非结构化的数据转换成结构化数据进而变成数学问题使得机器可以理解。
但机器对中文和英文的分词处理方式是不同的,
英文:主要进行词干提取和词型还原。
中文:不需要这些过程,进行词性标注,所以中文可能会产生更多歧义。中文主要采用jieba分词。
分词的目的是进行实体识别。
自然语言理解的主要过程是确定意图,提取实体。
实体可以理解为Java中的对象,是一种专有名词,是指识别文本中具有特定意义的实体,包括任命、地名、机构名等专有名词。简单的讲,就是识别自然文本中的实体的边界和类别。
确定意图,提取实体是为了发给计算机一条完整的指令。
相当于一个你要定机票的场景,你跟机器人说我要订机票。
机器人确定了你的意图intent:订机票。然后生成一道填空题。
我要在__(时间)__到__(地点)__的机票。
机器人问你,在什么时间?什么地点?你一一回答,这里的时间和地点都是实体。而订机票就是意图。