NLP(Natural Language Processing )自然语言处理:是计算机科学,人工智能和语言学的交叉领域。目标是让计算机处理或“理解”自然语言,以执行语言翻译和问题回答等任务。
NLU (Natural Language Understanding ) 自然语言理解:将人的语言形式转化为机器可理解的、结构化的、完整的语义表示,通俗来讲就是让计算机能够理解和生成人类语言。
NLG (Natural Language Generation) 自然语言生成:旨在让机器根据确定的结构化数据、文本、音视频等生成人类可以理解的自然语言形式的文本。
NLP
如上图:NLP 由两个主要的技术领域构成:自然语言理解(NLU)和自然语言生成(NLG)。主要包含的技术的技术领域如下图:
NLU 旨在让机器理解自然语言形式的文本内容。从 NLU 处理的文本单元来讲,可以分为词(term)、句子(sentence)、文档(document)三种不同的类型
NLG旨在让机器根据确定的结构化数据、文本、音视频等生成人类可以理解的自然语言形式的文本。根据数据源的类型,NLG可以分为三类:
- Text to text NLG,主要是对输入的自然语言文本进行进一步的处理和加工;
- Data to text NLG,主要是根据输入的结构化数据生成易读易理解的自然语言文本;
- Vision to text NLG,主要是给定一张图片或一段视频,生成可以准确描述图片或视频(其实是连续的图片序列)语义信息的自然语言文本,同时 text to vision 的自动生成近几年也有一些有趣的进展。
语议理解
自然语言理解的结果,就是要获得一个语义表示(semantic representation),语义表示主要有三种方式:
- 分布语义(Distributional semantics):就是把语义表示成一个向量,它的理论基础来自于Harris的分布假设:语义相似的词出现在相似的语境中。具体的计算方法有多种,比如LSA(Latent Semantic Analysis)、LDA(Latent Dirichlet Allocation)及各种神经网络模型(如LSTM)等
- 框架语义(Frame semantics):把语义用一个frame表示出来
- 模型论语义(Model-theoretic semantics):把自然语言映射成逻辑表达式(logic form)
目前采用的语义表示是frame semantics表示的一种变形:采用领域(domain)、意图(intent)和属性槽(slots)来表示语义结果。 如下图:
- 领域:是指同一类型的数据或者资源,以及围绕这些数据或资源提供的服务,比如“餐厅”,“酒店”,“飞机票”、“火车票”、“电话黄页”等;
- 意图:是指对于领域数据的操作,一般以动宾短语来命名,比如飞机票领域中,有“购票”、“退票”等意图;
- 属性槽:用来存放领域的属性,比如飞机票领域有“时间”“出发地”“目的地”等
chatbot 架构示例