一、什么是自然语言处理(NLP)

  首先先了解一下什么是自然语言,自然语言是人类社会发展过程中自然产生的语言,是最能体现人类智慧和文明的产物,也是大猩猩与人的区别(2019斯坦福cs224n,lesson1)。它是一种人与人交流的载体,像计算机网络一样,我们使用语言传递知识,人类语言产生是非常近的事情,大概是在10万年前,至于科学家怎么论证的,我也不清楚,但肯定不是敲着头盖骨化石问“爷爷,你当时会说话吗?”问出来的。据我猜测可能是根据书写文字的年代推断出来的,语言早于书写,书写出现在5000年前,例如大家所熟知的甲骨文距今约3600年(甲骨文发现于中国河南省安阳市殷墟,是商朝(约公元前17世纪-公元前11世纪)的文化产物,距今约3600多年的历史)。

  语言是很神奇的东西,只需要短短几个符号,你就可以在脑海里重现一幅图,一个场景。语言是思维的载体,是人类交流思想、表达情感最自然、最直接、最方便的工具,人类历史上以语言文字形式记载和流传的知识占知识总量的80%以上。

  而自然语言处理是一门计算机科学、人工智能、认知科学、信息论、数学及语言学的交叉学科。虽然语言只是人工智能的一部分(人工智能还包括机器学习、计算机视觉等),但它是非常独特的一部分。这个星球上许多生物都拥有超过人类的视觉系统,但只有人类才拥有这么高级的语言。
图片来源 – blog.wizeline.com

自然语言研究内容包括如下:
序列列标注:分词/POS Tag/NER/语义标注
这是最典型的NLP任务,比如中文分词,词性标注,命名实体识别,语义角色标注等都可以归入这一类问题,它的特点是句子中每个单词要求模型根据上下文都要给出一个分类类别。
分类任务:⽂文本分类/情感计算
比如我们常见的文本分类,情感计算等都可以归入这一类。它的特点是不管文章有多长,总体给出一个分类类别即可。
句子关系判断:Entailment/QA/⾃自然语⾔言推理
比如Entailment,QA,语义改写,自然语言推理等任务都是这个模式,它的特点是给定两个句子,模型判断出两个句子是否具备某种语义关系。
生成式任务:机器翻译/⽂文本摘要
比如机器翻译,文本摘要,写诗造句,看图说话等都属于这一类。它的特点是输入文本内容后,需要自主生成另外一段文字。

  自然语言处理的目标是让计算机处理或者说“理解”自然语言,用来完成有意义的任务,比如人工助手订购机票、机器翻译、情感分析、问答系统、智能客服QA等。完全理解和表达语言是极其困难的,完美的语言理解在一定意义上等效于实现了人工智能。

二、NLP的发展简史

1950年前:图灵测试 1950年前阿兰·图灵图灵测试:人和机器进行交流,如果人无法判断自己交流的对象是人还是机器,就说明这个机器具有智能。

1950-1970:主流:基于规则形式语言理论

乔姆斯基,根据数学中的公理化方法研究自然语言,采用代数和集合论把形式语言定义为符号的序列。他试图使用有限的规则描述无限的语言现象,发现人类普遍的语言机制,建立所谓的普遍语法。

1970-至今:主流:基于统计 谷歌、微软、IBM,20世纪70年代,弗里德里克·贾里尼克及其领导的IBM华生实验室将语音识别率从70%提升到90%。 1988年,IBM的彼得·布朗提出了基于统计的机器翻译方法。 2005年,Google机器翻译打败基于规则的Sys Tran。

2010年以后:逆袭:机器学习,深度学习。

AlphaGo先后战胜李世石、柯洁等,掀起人工智能热潮。深度学习、人工神经网络成为热词。领域:语音识别、图像识别、机器翻译、自动驾驶、智能家居。

三、自然语言处理的技术挑战

   自然语言处理为什么难? 人类语言是充满歧义的,不像编程语言那样明确。编程语言中有各种变量名,但人类语言中只有少数几个代词可以用,你得思考到底指代的是谁……
  人类语言的解读依赖于现实世界、常识以及上下文。由于说话速度书写速度阅读速度的限制,人类语言非常简练,省略了大量背景知识。
大量存在的未知语言现象
如:高山、高升;
吉林、武夷山、桂林、温泉、温馨、时光;
虎蝇,埃博拉,奥特,闷骚;
BoW, word2vec;
一带一路;
厉害了word哥;
吃瓜群众;


四字姓名,对中文实体识别带来了巨大的困扰。

无处不在的歧义词汇
如:苹果、粉丝;
bank, interest;
那辆白色的车是黑车。
臭豆腐真香啊!

复杂或歧义结构比比皆是
喜欢乡下的孩子。
上大学子烛光追思钱伟长。
“动物保护警察”明年上岗。
欢迎新老师生前来就餐。

普遍存在的隐喻表达
在微信圈里潜水;
打铁还要自身硬;
你简直是个木头脑袋!
雪域高原处处盛开民族团结之花;
各族人民要像石榴籽一样紧紧拥抱在一起。
帝国主义和一切反动派都是纸老虎。

对翻译而言,不同语言之间的概念不对等
馒头: steamed bread
句子1:We do chicken right.(正确翻译:我们是烹鸡专家。)

句子2:vanilla Transformer(正确翻译:普通版Transformer)

  以上展示的是NLP中文任务的主要难点(巨坑),各位初入NLP行当的兄弟现在跳坑还来得及。。。
  下一篇讲讲述“如何用数学语言表示词”,敬请期待!~

reference:

1、nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert

2、放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较

3、《自然语言处理方法与应用》- 宗成庆

4、《知识指导的自然语言处理》- 刘知远

5、自然语言处理

6、NLP-LOVE/ML-NLP

自然语言处理(NLP)发展历程(1),什么是自然语言处理?相关推荐

  1. 自然语言处理的发展历程

    文章目录 总览 1957-1970 1994- Neural Language Model Multi-task learning Word embedding Neural networks for ...

  2. NLP发展历程从Word2Vec,GloVe,ELMo,Flair,GPT,BERT

    1.2013年,Word2vec模型,Google公司 无监督模型,与语境无关 2.2014年,GloVe模型,Stanford GLoVe:Global Vectors for Word Repre ...

  3. 自然语言处理(NLP)的发展历程,神经语言模型多任务学习介绍, ECM模型介绍等

    1读前准备 读本篇论文之前我先调研了并理解了什么是自然语言处理(自然语言是人类交流信息的工具.很多自然语言处理问题都可以等同于通信系统中的解码问题–一个人根据接收到的信息,去猜测发话人要表达的意思)以 ...

  4. 独家 | 一文读懂自然语言处理NLP(附学习资料)

    前言 自然语言处理是文本挖掘的研究领域之一,是人工智能和语言学领域的分支学科.在此领域中探讨如何处理及运用自然语言. 对于自然语言处理的发展历程,可以从哲学中的经验主义和理性主义说起.基于统计的自然语 ...

  5. 智能金融的三驾马车之自然语言处理NLP

    什么是自然语言处理NLP 用通俗的话来讲,自然语言处理NLP的目标是让机器能够理解人类的语言,NLP就是人和机器进行交流的技术.用专业语言来讲,自然语言处理有狭义和广义之分.狭义的自然语言处理是使用计 ...

  6. 自然语言处理发展历程

    自然语言处理发展历程(算法进阶+历史重要阶段) 作者:张qianer~ 本文适合有一定NLP基础,想对NLP的知识有系统梳理的小伙伴~ 文章目录 自然语言处理发展历程(算法进阶+历史重要阶段) 什么是 ...

  7. 自然语言处理发展历程自我总结

    自然语言处理(NLP)历史悠久,从上个世纪初,便有人开始提出自然语言相关的规律和假设,但本人阅读了若干自然语言相关的书籍后,发现自然语言处理的方法论在长达近1个世纪的时间内并无半点实质上的进展. 自然 ...

  8. 【技术白皮书】第二章:OCR智能文字识别回顾——自然语言文本发展历程

    2.发展历程与现状 2.1信息抽取技术发展历程 从自然语言文本中获取结构化信息的研究最早开始于20世纪60年代中期,这被看作是信息抽取技术的初始研究,它以两个长期的.研究性的自然语言处理项目为代表. ...

  9. 2021年自然语言处理 (NLP) 算法学习路线!

    在过去几年时间里,NLP领域取得了飞速的发展,这也推动了NLP在产业中的持续落地,以及行业对相关人才的需求. 但这里我们要面对的现实是,行业上90%以上的NLP工程师是"不合格的" ...

  10. 【最新】2021年自然语言处理 (NLP) 算法学习路线!

    在过去几年时间里,NLP领域取得了飞速的发展,这也推动了NLP在产业中的持续落地,以及行业对相关人才的需求. 但这里我们要面对的现实是,行业上90%以上的NLP工程师是"不合格的" ...

最新文章

  1. COLING 2018 ⽤对抗增强的端到端模型⽣成合理且多样的故事结尾
  2. vivado中的rtl中电路图无发生成_Vivado 综合崩溃调试指南
  3. MySQL-处理重复数据[20180517]
  4. python123数值运算代码_Python中的变量、数据类型(数值、列表)操作实例
  5. Android开发之自带阴影效果的shape
  6. javascript中基本包装、算数运算符、递增递减运算符、赋值运算符、比较运算符、逻辑运算符、运算符优先级
  7. round()和trunc()函数的应用
  8. [置顶] Android仿人人客户端(v5.7.1)——应用主界面之左侧面板UI实现
  9. python 判断文件夹是否存在 否则创建
  10. cisco5525防火墙***流量分离即***和nat并存的配置方式
  11. 怎么做应力应变曲线_舌尖上的力学——浅谈应力应变曲线
  12. 难解次级债内乱 美国众议院反咬中国金融开放
  13. 整个网站网页变黑白的效果
  14. android webview 电脑网页适应手机屏幕
  15. PS抠发丝技巧 「选择并遮住…」
  16. 【转】Spring横切面(advice),增强(advisor),切入点(PointCut)(JAVA后端)
  17. 设计一个有利于A股东的配股方案
  18. python小游戏-移动木板
  19. WPF自定义控件(教程含源码)-圆形进度条、环形进度条
  20. [note] 电磁场与微波课组(二) 波动光学(1)

热门文章

  1. Matlab画图彩色变黑白
  2. 网络游戏协议测试(接口测试)的一些总结
  3. arcgis 空间交集 计算_ArcGIS叠置分析之相交分析
  4. 如何让你的网站排名靠前
  5. 使用 Cloud Insight SDK 监控北京空气质量!
  6. 数据统计分析案例(对比分析、销量定比分析、同比、双坐标图、环比、shift、贡献度分析(帕累托法则)、差异化分析、resample、季节性波动分析)
  7. SpringBoot+Mybatis实现图片按用户上传存储和获取用户图片功能
  8. Mybatis从零开始
  9. MAT无法打开较大的hprof的解决办法
  10. 使用firewall-cmd限制ssh只能从指定IP段访问