NLP(Natural Language Processing,自然语言处理)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法(摘自百度百科)。
不同的语言之间是无法直接沟通的,比如说人类就无法听懂狗叫,甚至不同语言的人类之间都无法直接交流,需要翻译才能理解各自的意思。
而对于人类与计算机来说,NLP就是在机器语言和人类语言之间沟通的桥梁,用以实现人机交流的目的。
NLP由以下两个部分组成:
NLU(Natural Language Understanding,自然语言理解)是所有支持机器理解文本内容的方法模型或任务的总称,包括分词,词性标注,句法分析,文本分类/聚类,信息抽取/自动摘要等任务。简单来说,就是希望计算机能够像人一样,具备正常的语言理解能力。
举个“订机票”的例子:对于订机票这件事情,我们可以有很多种表达方式
可以说,自然语言对于“订机票”的表达是无穷多的,而这对于计算机来说是一种巨大的挑战。在没有引入人工智能前,计算机只能基于规则去识别意图。比如将“订机票”作为关键词,如果文本中没有该关键词,将无法准确识别用户的意图。或者只要出现了关键词,比如“我要退订机票”,那么也会被处理成用户想要订机票。
而自然语言理解目的就是准确识别用户的意图。
自然语言理解跟整个人工智能的发展历史类似,一共经历了3次迭代:
NLG(Natural Language Generation,自然语言生成)是一种自动将结构化数据转换为人类可读文本的软件过程。
NLG的6个步骤
第一步:内容确定 – Content Determination
作为第一步,NLG 系统需要决定哪些信息应该包含在正在构建的文本中,哪些不应该包含。通常数据中包含的信息比最终传达的信息要多。
第二步:文本结构 – Text Structuring
确定需要传达哪些信息后,NLG 系统需要合理的组织文本的顺序。例如在报道一场篮球比赛时,会优先表达“什么时间”“什么地点”“哪2支球队”,然后再表达“比赛的概况”,最后表达“比赛的结局”。
第三步:句子聚合 – Sentence Aggregation
不是每一条信息都需要一个独立的句子来表达,将多个信息合并到一个句子里表达可能会更加流畅,也更易于阅读。
第四步:语法化 – Lexicalisation
当每一句的内容确定下来后,就可以将这些信息组织成自然语言了。这个步骤会在各种信息之间加一些连接词,看起来更像是一个完整的句子。
第五步:参考表达式生成 – Referring Expression Generation|REG
这个步骤跟语法化很相似,都是选择一些单词和短语来构成一个完整的句子。不过他跟语法化的本质区别在于“REG需要识别出内容的领域,然后使用该领域(而不是其他领域)的词汇”。
第六步:语言实现 – Linguistic Realisation
最后,当所有相关的单词和短语都已经确定时,需要将它们组合起来形成一个结构良好的完整句子。
NLG 的不管如何应用,大部分都是下面的3种目的:
第一层面:词法分析
词法分析包括汉语的分词和词性标注这两部分。
第二层面:句法分析
句法分析是对输人的文本以句子为单位,进行分析以得到句子的句法结构的处理过程。
三种比较主流的句法分析方法:
第三个层面:语义分析
语义分析的最终目的是理解句子表达的真实语义。语义表示形式至今没有一个统一的方案。
1. 语义角色标注(semantic role labeling)是目前比较成熟的浅层语义分析技术。
语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要。通常采用级联的方式,逐个模块分别训练模型。
2. 联合模型(新发展的方法)将多个任务联合学习和解码,联合模型通常都可以显著提高分析质量,联合模型的复杂度更高,速度也更慢。
一文看懂自然语言处理NLP(4个应用+5个难点+6个实现步骤)
一文看懂自然语言生成 - NLG(6个实现步骤+3个典型应用) - 产品经理的人工智能学习库
人工智能导论(9)——自然语言处理(Natural Language Processing)_hustlei的博客-CSDN博客_人工智能自然语言处理