NLP方向介绍¶
author:AzulaFire
什么是 NLP?¶
自然语言处理 (NLP) 是一种机器学习技术,使计算机能够解读、处理和理解人类语言。
在人工智能出现之前,机器智能处理结构化的数据(例如Excel里的数据)。但是网络中 大部分的数据都是非结构化的,例如:文章、图片、音频、视频...
在非结构数据中,文本的数量是最多的,他虽然没有图片和视频占用的空间大,但是他的 信息量是最大的。
为了能够分析和利用这些文本信息,我们就需要利用NLP技术,让机器理解这些文本信息,并加以利用。
NLP中的任务内容¶
NLP 的主要内容大概如下:
2个核心任务: * 自然语言理解 - NLU * 自然语言生成 - NLG
自然语言理解 - NLU¶
- 什么是自然语言理解(NLU)?
自然语言处理(N LP , Natural Language Processing)是使用自然语言同计算机进行通讯的技术, 因为处理自然语言的关键是要让计算机“理解”自然语言,所以自然语言处理又叫做自然语言理解(NLU ,Natural Language Understanding), 也称为计算语言学(Computational Ling uistics)。一方面它是语言信息处理的一个分支 , 另一方面它是人工智能(AI , Artificial Intelligence)的核心课题之一 。
比如我们平时用的智能音箱:
我想听歌 放首歌 来点音乐 ...
人们会有很多种自然的表达,可以说“自然的表达”有无穷多的组合都是在代表“听歌”这个意图的。而要理解这么多种不同的表达,对机器是个挑战。早些时候,机器只能处理结构化的数据(比如关键词),也就是说如果要听懂人在讲什么,必须要用户输入精确的指令。 而这些指令的关键词肯定在不同表达中会被误判,所以显得很笨。自然语言理解这个技能出现后,可以让机器从各种自然语言的表达中,区分出来,哪些话 归属于这个意图;而那些表达不是归于这一类的,而不再依赖那么死板的关键词。 再比如说智能音响:
“太吵了” 机器:“已帮您调小音量”
用户并没有提到音量,但是机器需要知道用户的意图——音量太高,需要把音量调小。
- 自然语言理解(NLU)的应用
机器翻译(有道、百度翻译等) 机器客服(各种app里面的机器客户) 智能音箱(小爱音箱、天猫精灵等)
-
自然语言理解(NLU)的难点
-
难点1:语言的多样性 自然语言有很多不同的表达,组合方式非常灵活,不同的组合可以表达多种含义,总能找到很多例外的情况。
-
难点2:语言的歧义性 如果不联系上下文,缺少环境的约束,语言有很大的歧义性。
-
难点3:语言的鲁棒性 自然语言在输入的过程中,尤其是通过语音识别获得的文本,会存在多字、少字、错字、噪音等问题。
-
难点4:语言的知识依赖 语言是对世界的符号化描述,语言天然连接着世界知识。
-
难点5:语言的上下文 上下文的概念包括很多种:对话的上下文、设备的上下文、应用的上下文、用户画像.
-
NLU的实现方式
自然语言理解一共经历了 3次迭代:
基于规则的方法 基于统计的方法 基于深度学习的方法 总结规律来判断自然语言的意图,常见的方法有:CFG、JSGF等。 基于统计学的NLU方式,常见的方法有:SVM、ME等。 随着深度学习的爆发,CNN、RNN、LSTM都成为了最新的主流,Transformer是目前最先进的方法。
自然语言生成 - NLG¶
NLG是为了跨越人类和机器之间的沟通鸿沟,将非语言格式的数据转换成人类可以理解的 语言格式,如文章、报告等
- 自然语言生成-NLG有2种方式:
text - to - text:文本到语言的生成 data - to - text :数据到语言的生成
- NLG的3个LEVEL
简单的数据合并:自然语言处理的简化形式,这将允许将数据转换为文本(通过类似 Excel的函数)。 模板化的NLG:这种形式的NLG使用模板驱动模式来显示输出。。数据动态地保持更改,并由预定义的业务规则集(如if/else循环语句)生成。 高级NLG:这种形式的自然语言生成就像人类一样。它理解意图,添加智能,考虑上下 文,并将结果呈现在用户可以轻松阅读和理解的富有洞察力的叙述中。
- NLG的6个步骤
第一步:内容确定-Content Determination
作为第一步,NLG系统需要决定哪些信息应该包含在正在构建的文本中,哪些不应该包 含。通常数据中包含的信息比最终传达的信息要多。
第二步:文本结构-Text Structuring
确定需要传达哪些信息后,NLG系统需要合理的组织文本的顺序。例如在报道一场篮球比 赛时,会优先表达「什么时间」「什么地点」「哪2支球队」,然后再表达「比赛的概 况」,最后表达「比赛的结局」。
第三步:句子聚合-Sentence Aggregation
不是每一条信息都需要一个独立的句子来表达,将多个信息合并到一个句子里表达可能会 更加流畅,也更易于阅读。
第四步:语法化-Lexicalisation
当每一句的内容确定下来后,就可以将这些信息组织成自然语言了。这个步骤会在各种信 息之间加一些连接词,看起来更像是一个完整的句子。
第五步:参考表达式生成-Referring Expression Generation|REG
这个步骤跟语法化很相似,都是选择一些单词和短语来构成一个完整的句子。不过他跟语 法化的本质区别在于“REG需要识别出内容的领域,然后使用该领域(而不是其他领域) 的词汇"。 第六步:语言实现-Linguistic Realisation 最后,当所有相关的单词和短语都已经确定时,需要将它们组合起来形成一个结构良好的 完整句子。
- NLG的3种典型应用
自动写作(自动写新闻,自动写论文等)
聊天机器人 (各种手机开发的内置聊天机器人,智能音响,商场导航机器人等)
BI的解读和报告生成 (各行各业解读报告生成比如体检报告)
最后¶
聊完这些,我相信你对NLP这项技术已经有了一个简单的了解和认识,我们会在后面的内容中为你提供更多的信息来帮助你在XDU内学习实践NLP这个领域内知识。
这里是我的一些工程demo,你可以访问他们来感受NLP实际产出的项目结果:
文本情感分析系统
SparkDebate(基于星火大模型的辩论小助手)