常常会听到有人说,自然语言处理(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. [转载]C语言程序的内存分配方式

    "声明一个数组时,编译器将根据声明所指定的元素数量为数量为数组保留内存空间."其实就是编译器在编译的过程中,会加入几条汇编指令在程序里处理内存分配,并不是说编译时就分配了内存,不要 ...

  2. 20155305乔磊2016-2017-2《Java程序设计》第八周学习总结

    20155305乔磊2016-2017-2<Java程序设计>第八周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口, ...

  3. 17、enum简介

    enum简介 在日常开发中可能有一些东西是固定的,比如一年只有4个季节,春夏秋冬.我们可以自己定义一个类里面存放这4个季节.在jdk5之后,引入了枚举(enum)的概念,可以通过enum去定义这四个季 ...

  4. 基于Django-Cookie的CBV和FBV的用户验证装饰器

    FBV模式 def cookie(func):       def deco(request,*args,**kwargs):             u = request.get_signed_c ...

  5. JS设计模式——9.组合模式

    组合模式概述 组合模式是一种专为创建Web上的动态用户界面量身定制的模式.使用这种模式可以用一条命令在多个对象上激发复杂的递归的行为. 它可以用来把一批子对象组织成树形结构,并且使整棵树都可被遍历.所 ...

  6. bootstrap_bootstrap中日历范围选择插件daterangepicker的使用

    1.引入脚本 <link rel="stylesheet" type="text/css" href="assets/css/bootstrap ...

  7. Linux学习笔记-文件系统和基本命令

    目录 分区设备文件名 分区 挂载 文件目录 文件处理命令 目录处理命令 硬件设备文件名 IDE硬盘 /dev/hd[a-d] USB硬盘 /dev/sd[a-p] 光驱 /dev/cdrom或者/de ...

  8. MVC 视图页对数字,金额 用逗号 隔开(数字格式化)

    cshtml页面代码: <tr> <th>@Model.BankName</th> <th>@Model.Month</th> <th ...

  9. 决策树和adaboost

    前面:好老的东西啊,啊啊啊啊啊啊啊啊啊 来源于统计学习方法: 信息增益: 其中 信息增益率: 基尼指数: 取gini最小的 先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造. 后 ...

  10. java基础73 dom4j修改xml里面的内容(网页知识)

    1.DOM4J对XML文件进行增删改操作 实现代码 package com.shore.code; import java.io.File; import java.io.FileOutputStre ...