常常会听到有人说,自然语言处理(NLP)是人工智能技术(AI)皇冠上的明珠。那么,从这句话上就能够看到,目前我们常常说的NLP其实是AI技术的一个分支,而且是较难的那一个分支。

那么,到底什么是NLP呢?大概这个问题会在我们从事NLP研究和学习的过程中会一直存在,当你处于不同的阶段,应该会有不同的理解。小Dream也只能说一说在目前这个阶段,对NLP的一些理解。

所谓“自然语言”,是相对于计算机语言(计算机能够理解的语言,如汇编、C语言等)而言的,也就是人类日常使用的语言。因为计算机设计之初主要是用于计算,或者完成某一项有明确规则任务。所以计算机语言与人类日常使用的语言存在很大的差异,计算机不能直接理解人类语言的含义,不能直接同人类进行沟通。要想实现计算机的智能化,不能够理解人类语言,是必须要跨越的一道障碍。因为,人类语言承载了人的思考、文化等,是每个人对外沟通的最主要手段。NLP就是为了解决这样一个问题而出现的技术。他希望能够使得计算机能够理解人类的语言,甚至是语言背后的文化与意图。例如说,当你说“我饿了”,计算机能够明白你肚子饿了,并且提出帮你定外卖;当你说“保护好你的菊花”,计算机能够结合当时的情境,明白你说的菊花到底是哪个菊花。

1. NLP技术的主要范畴

  1)语音识别

  顾名思义,就是将语音转化为文字。这一部分,小Dream还没机会涉及到,短时间应该不会涉及,感兴趣的小伙伴可以出门左转,百度一下。

  2)分词、实体识别等序列标注问题

  分词和实体识别是自然语言处理比较基础的部分,但是非常的重要。小Dream之前涉及过实体识别相关的工作,所以会在下一篇NLP系列文章中介绍相关的工作,敬请关注啦。

  3)机器翻译

  这是NLP领域比较早的一个工作,谷歌的机器翻译已经能够做到较好的水平。谷歌在2018年,利用attention技术构建的Transformer模型,是目前在这一领域比较大的进展。

  4)对话系统

  智能客服,聊天机器人等都需要用到这一项NLP技术。小Dream未来一段时间都会从事这项工作的研究及开发,所这一方面应该做一个较长的连载了。

  5)文本摘要

  6)自然语言生成

  最近,OPENAI发布的GPT2.0具有很高的自然语言生成能力,预期会对自然语言处理技术产生不小的影响,感兴趣的同学可以参见如下链接:https://github.com/openai/gpt-2

  7)文字蕴含

  8)其他方面

2. NLP技术的难点

  1)单词的边界界定

  在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。

  2)词义的消歧

  在各国的语言中,多义词的现象都比较多。NLP常常需要根据词语的上下文决定目前的语境环境下,该词的具体含义。

  3)句法的模糊性

  自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析出多棵剖析树,而我们必须要仰赖语意及前后文的资讯才能在其中选择一棵最为适合的剖析树。

  4)语言的概括性

  句子常常并不只是字面上的意思;例如,“你能把盐递过来吗”,一个好的回答应当是把盐递过去;在大多数上下文环境中,“能”将是糟糕的回答,虽说回答“不”或者“太远了我拿不到”也是可以接受的。再者,如果一门课程去年没开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。

---------------------------------------------------------------------------------------------------------------------------------

常常在想,生活的意义是什么?挣钱,买房,开豪车或许都很重要。但是真正能让内心平静的往往是亲近之人的笑容、获取知识的满足感。

更多的AI知识,关注“Dream看AI”,用简单、朴实的语言介绍AI技术。

自然语言处理系列-1.什么是NLP?的更多相关文章

  1. NLP自然语言处理系列5-支持向量机(SVM)

    1.什么是支持向量机 支持向量机(Support Vector Machine,SVM)是一种经典的分类模型,在早期的文档分类等领域有一定的应用.了解SVM的推导过程是一个充满乐趣和挑战的过程,耐心的 ...

  2. 自然语言处理系列-4条件随机场(CRF)及其tensorflow实现

    前些天与一位NLP大牛交流,请教其如何提升技术水平,其跟我讲务必要重视“NLP的最基本知识”的掌握.掌握好最基本的模型理论,不管是对日常工作和后续论文的发表都有重要的意义.小Dream听了不禁心里一颤 ...

  3. Python自然语言处理-系列一

    一:python基础,自然语言概念 from nltk.book import * 1,text1.concordance("monstrous")      用语索引 2,tex ...

  4. Python自然语言处理系列之模拟退火算法

    1.基本概念 模拟退火算法(Simulated Annealing,SA)是一种模拟固体降温过程的最优化算法.其模拟的过程是首先将固体加温至某一温度,固体内部的粒子随温度上升慢慢变为无序的状态,内能增 ...

  5. Python自然语言处理 - 系列四

    一 如何使用形式化语法来描述无限的句子集合的结构?    --上下位无关文法       1.1 一个例子:      grammar1 = nltk.parse_cfg(""&q ...

  6. Python自然语言处理 - 系列三

    有监督分类过程 ![enter image description here][1]例子:涉及一个特征器,给定一个姓名分析出是男性名字还是女性名字 分析:男性和女性的名字有一些鲜明的特点.以a,e 和 ...

  7. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)

    统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...

  8. 【NLP】基于自然语言处理角度谈谈CRF(二)

    基于自然语言处理角度谈谈CRF 作者:白宁超 2016年8月2日21:25:35 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

  9. 【NLP】前戏:一起走进条件随机场(一)

    前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...

随机推荐

  1. opencv的基本数据结构(二)(转)

    转自:原文链接,以下代码.图片.内容有点改动,只为转载不降低博客内容的可阅性,版权归原作者所有. OpenCV中强大的Mat类型大家已经比较熟悉了.这里梳理一些在工程中其他经常用到的几种基本数据类型. ...

  2. python读写mysql

    读取mysql数据 # -*- coding: utf-8 -*- # 导入必要模块 import pandas as pd from sqlalchemy import create_engine ...

  3. 网络流建图(典型)(EK)

    题目链接:https://cn.vjudge.net/contest/68128#problem/B 具体思路: 按照  源点 - > 食物 - > 牛1 - > 牛2 - > ...

  4. linux arm mmu基础【转】

    转自:http://blog.csdn.net/xiaojsj111/article/details/11065717 ARM MMU页表框架 先上一张arm mmu的页表结构的通用框图(以下的论述都 ...

  5. Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()【转】

    转自:http://blog.csdn.net/droidphone/article/details/8104433 我们已经在前面几章介绍了低分辨率定时器和高精度定时器的实现原理,内核为了方便其它子 ...

  6. 关于oracle数据库死锁的检查方法

    一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错. 二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做 ...

  7. 关于一些问题的解决办法[记录]TF400017

    这个问题是今天在改东西的时候,突然断电导致的,google了很久之后,终于找到了办法 方法: 就是删除下面这个文件 -========================================= ...

  8. 数据库-mysql数据连接

    一:Mysql 连接的使用 在前几章节中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JO ...

  9. URL的井号

    2010年9月,twitter改版. 一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为 http://twitter.com/username 改版后,就变 ...

  10. Java---容器基础总结

    Java提供了大量持有对象的方式: (1) 数组将数字与对象联系起来. 它保存类型明确的对象,查询对象时,不需要对结果做类型转换.它可以是多维的, 可以保存基本类型的数据. 但是,数组一旦生成,其容量 ...