自然语言处理简称NLP是计算机科学领域与人工智能领域中的一个重要方向,从字面意思来看,Natural language应该是可以只语音和文本语言,但现在大家主流的看法,都把语言数据归类为语音处理的范畴,因此大多数情况下,人们认为自然语言处理,是指对文字或文本的处理,我们可以认为,自然语言处理就是让计算机读懂人类语言,将文字转化为可以被计算的物体,可以是数字向量,也可以是矩阵,再根据实际任务进一步处理。
NLP任务大体可以分成两大类,一种是文本序列到文本序列及输入文本并输出文本,比如常见的机器翻译和文本风格迁移,当机器翻译指将一种语言翻译为另一种语言文本风格迁移,只可以将负面的文本转为正面的句子,或者对现代文与文言文的风格进行转化;
而另一种是指序列到类别,比如情感分类、实体命名、识别等,情感分类指对文本进行分析,推理的过程,将输入的文本划分为正面或负面的两种或几种类型;
实体命名识别是指识别文本中具有特定意义的食品,比如人名、地名、机构名、专有名词等,是一项十分重要的基础任务,它以文本序列为输入输出序列上每个位置的标签。
我们再来看一个机器人的例子,对话机器人可以分成两种,闲聊型和任务导向型,闲聊机器人并不能给人一种在于正常人沟通的感觉,还有很多问题待解决,比如角色一致性、多轮会话、对上下文保有记忆等;未来的发展上,针对不同的人群,闲聊机器人可能还需要有一致的人格,懂常识和领域知识,有同理心任务导向的对话,机器人能够协助人完成某件事,比如订机票、小闹钟、问天气等,我们需要一个模型,把过去已经有的历史对话筒都输入到一个模型中,这个模型可以输出一个序列当作现在机器的回复,一般而言,我们会把这个模型在细分成很多模块儿,不会是端对端的,这些模块通常就包括自然语言理解。
NLP行动策略管理以及自然语言生成,NLP自然语言理解负责根据上下文去理解当前用户的。一图方便选出下一步候选的行为,如执行系统操作、澄清还是补全信息,确定好行动之后,自然语言生成模块会生成出对其行动的回复,具体的说,会用来根据上下文来理解哪些信息是对当前任务重要的,比如订房任务中的联系人、入住人数、入住日期等,理解出的信息就变成一个类别,作为状态,交给策略管理模块,去判断当前还有哪些信息缺失,是否需要继续询问,还是说信息已经全部,姑且可以执行命令,如果需要补充信息,则要根据缺失的信息去让自然语言生成模块生成问题。