NLP自然语言处理简介

一、NLP是什么

NLP(Natural Language Processing,自然语言处理)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法(摘自百度百科)。

不同的语言之间是无法直接沟通的,比如说人类就无法听懂狗叫,甚至不同语言的人类之间都无法直接交流,需要翻译才能理解各自的意思。

而对于人类与计算机来说,NLP就是在机器语言和人类语言之间沟通的桥梁,用以实现人机交流的目的。

 NLP由以下两个部分组成:

  • NLU(Natural Language Understanding,自然语言理解)
  • NLG(Natural Language Generation,自然语言生成)

二、NLU 自然语言理解

NLU(Natural Language Understanding,自然语言理解)是所有支持机器理解文本内容的方法模型或任务的总称,包括分词,词性标注,句法分析,文本分类/聚类,信息抽取/自动摘要等任务。简单来说,就是希望计算机能够像人一样,具备正常的语言理解能力。

举个“订机票”的例子:对于订机票这件事情,我们可以有很多种表达方式

  • 有去上海的航班吗?
  • 订一张机票去上海,下周二出发。
  • 下周二要出差上海,帮我看下机票。
  • 我要搭最近的飞机去上海。
  • ……

可以说,自然语言对于“订机票”的表达是无穷多的,而这对于计算机来说是一种巨大的挑战。在没有引入人工智能前,计算机只能基于规则去识别意图。比如将“订机票”作为关键词,如果文本中没有该关键词,将无法准确识别用户的意图。或者只要出现了关键词,比如“我要退订机票”,那么也会被处理成用户想要订机票。

而自然语言理解目的就是准确识别用户的意图。

自然语言理解跟整个人工智能的发展历史类似,一共经历了3次迭代:

  1.  基于规则的方法 :通过总结规律来判断自然语言的意图,常⻅的⽅法有:CFG(下文无关文法)、JSGF(JSpeech Grammar Format)等。
  2. 基于统计的方法 :对语言信息进行统计和分析,并从中挖掘出语义特征,常⻅的方法有:SVM(支持向量机)、HMM(隐马尔科夫模型)、MEMM(最大熵马尔可夫模型)、CRF(条件随机场)等。
  3. 基于深度学习的⽅法:CNN(卷积神经网络),RNN(循环神经网络),LSTM(长短期记忆网络),Transformer等。

三、NLG 自然语言生成

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. 能够大规模的产生个性化内容
  2. 帮助人类洞察数据,让数据更容易理解
  3. 加速内容生产

四、NLP处理的三个分析层面

第一层面:词法分析

词法分析包括汉语的分词和词性标注这两部分。

  • 分词:将输人的文本切分为单独的词语
  • 词性标注:为每一个词赋予一个类别。类别可以是名词(noun)、动词(verb)、形容词(adjective)等;属于相同词性的词,在句法中承担类似的角色。

第二层面:句法分析

句法分析是对输人的文本以句子为单位,进行分析以得到句子的句法结构的处理过程。

三种比较主流的句法分析方法:

  • 短语结构句法体系,作用是识别出句子中的短语结构以及短语之间的层次句法关系(介于依存句法分析和深层文法句法分析之间)
  • 依存结构句法体系(属于浅层句法分析),作用是识别句子中词与词之间的相互依赖关系;实现过程相对来说比较简单而且适合在多语言环境下应用,但是其所能提供的信息也相对较少
  • 深层文法句法分析,利用深层文法,对句子进行深层的句法以及语义分析。例如词汇化树邻接文法,组合范畴文法等都是深层文法;深层文法句法分析可以提供丰富的句法和语义信息;深层文法相对比较复杂,分析器的运行复杂度也比较高,不太适合处理大规模的数据

第三个层面:语义分析

语义分析的最终目的是理解句子表达的真实语义。语义表示形式至今没有一个统一的方案。

1. 语义角色标注(semantic role labeling)是目前比较成熟的浅层语义分析技术。
语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要。通常采用级联的方式,逐个模块分别训练模型。

  • 分词
  • 词性标注
  • 句法分析
  • 语义分析

2. 联合模型(新发展的方法)将多个任务联合学习和解码,联合模型通常都可以显著提高分析质量,联合模型的复杂度更高,速度也更慢。

  • 分词词性联合
  • 词性句法联合
  • 分词词性句法联合
  • 句法语义联合等

五、参考文档

一文看懂自然语言处理NLP(4个应用+5个难点+6个实现步骤)

一文看懂自然语言生成 - NLG(6个实现步骤+3个典型应用) - 产品经理的人工智能学习库

人工智能导论(9)——自然语言处理(Natural Language Processing)_hustlei的博客-CSDN博客_人工智能自然语言处理

  • 13
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NLP自然语言处理)是一门研究如何使计算机能够理解和处理人类语言的领域。Python是一种广泛用于编程的编程语言。结合Python和NLP可以进行各种自然语言处理任务,如文本分类、命名实体识别、情感分析等。在Python中,有许多流行的库和工具可供使用,以便进行NLP任务。以下是一些常用的Python库和工具: 1. NLTK(自然语言工具包):它是Python中最常用的NLP库之一,提供了许多用于文本预处理、词性标注、词袋模型、语法分析等任务的功能。 2. spaCy :这是另一个流行的Python库,它提供了高效的自然语言处理功能,包括分词、词性标注、命名实体识别和依赖解析等任务。 3. TextBlob :这是一个易于使用的Python库,它提供了一系列简单的API,用于处理常见的NLP任务,如情感分析、词性标注和文本分类。 4. Gensim :它是一个用于主题建模和文本相似度计算的Python库,可以用于处理大规模的文本数据。 5. Scikit-learn :这是一个通用的机器学习库,其中包含了许多用于文本分类、情感分析和文本聚类等任务的算法。 这些库和工具为Python开发者提供了丰富的功能和资源,便于进行各种NLP任务的开发和实验。你可以根据具体的需求选择适合的库和工具,并结合相关的算法和技术来处理自然语言数据。希望这些信息能够帮助到你。 NLTK官方网站:https://www.nltk.org/ spaCy官方网站:https://spacy.io/ TextBlob官方网站:https://textblob.readthedocs.io/ Gensim官方网站:https://radimrehurek.com/gensim/ Scikit-learn官方网站:https://scikit-learn.org/stable/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值