NLU作用就是让机器准确理解人类生成的自然语言。为做到这一点,NLU阶段会做这几件事:
(1)模仿人类理解语言的基本方式,即断句、分词等,将文本分割为一系列具有语义、语法的单元(token)。
(2) 然后,系统会基于token序列,使用词向量空间模型、分布式表示模型等等文本表示模型,得到一个数值向量或者矩阵。这个矩阵就是文本的数值化表示。人工智能领域的很多算法只能处理数值类型的数据。而有些算法,比如基于词袋模型的文本相似度计算方法,可以直接处理字符串序列,也可以应对以数值向量形式文本表示。因此,大家经常在一个系统内使用指数向量或矩阵作为统一的文本表示形式。
(3) 接下来,系统就会基于文本表示数据,使用分类算法、序列标注方法等等,计算得到文本中的“关键信息”,比如实体、三元组、意图、事件等等。有了这些信息,机器就可以理解用户的语言、判断他们的需求了。