基本定义

 自然语言处理,英文Natural Language Processing,简写NLP。NLP这个概念本身过于庞大,可以把它分成“自然语言”和“处理”两部分。先来看自然语言。区分于计算机语言,自然语言是人类发展过程中形成的一种信息交流的方式,包括口语及书面语,反映了人类的思维,都是以自然语言的形式表达。

现在世界上所有的语种语言,都属于自然语言,包括汉语、英语、法语等。然后再来看“处理”。如果只是人工处理的话,那原本就有专门的语言学来研究,也没必要特地强调“自然”。因此,这个“处理”必须是计算机处理的。但计算机毕竟不是人,无法像人一样处理文本,需要有自己的处理方式。因此自然语言处理,简单来说即是计算机接受用户自然语言形式的输入,并在内部通过人类所定义的算法进行加工、计算等系列操作,以模拟人类对自然语言的理解,并返回用户所期望的结果。正如机械解放人类的双手一样,自然语言处理的目的在于用计算机代替人工来处理大规模的自然语言信息。它是人工智能、计算机科学、信息工程的交叉领域,涉及统计学、语言学等的知识。由于语言是人类思维的证明,故自然语言处理是人工智能的最高境界,被誉为“人工智能皇冠上的明珠”。

发展历程

1948年,香农提出信息熵的概念。此时尚未有NLP,但由于熵也是NLP的基石之一,在此也算作是NLP的发展历程。

按照维基百科的说法,NLP发源于1950年。图灵于该年提出“图灵测试”,用以检验计算机是否真正拥有智能。

NLP规则时代

1950-1970年,模拟人类学习语言的习惯,以语法规则为主流。除了参照乔姆斯基文法规则定义的上下文无关文法规则外,NLP领域几乎毫无建树。

NLP统计时代

20世纪70年代开始统计学派盛行,NLP转向统计方法,此时的核心是以具有马尔科夫性质的模型(包括语言模型,隐马尔可夫模型等)。

2001年,神经语言模型,将神经网络和语言模型相结合,应该是历史上第一次用神经网络得到词嵌入矩阵,是后来所有神经网络词嵌入技术的实践基础。也证明了神经网络建模语言模型的可能性。

2001年,条件随机场CRF,从提出开始就一直是序列标注问题的利器,即便是深度学习的现在也常加在神经网络的上面,用以修正输出序列。

2003年,LDA模型提出,概率图模型大放异彩,NLP从此进入“主题”时代。Topic模型变种极多,参数模型LDA,非参数模型HDP,有监督的LabelLDA,PLDA等。

2008年,分布式假设理论提出,为词嵌入技术的理论基础。

在统计时代,NLP专注于数据本身的分布,如何从文本的分布中设计更多更好的特征模式是这时期的主流。在这期间,还有其他许多经典的NLP传统算法诞生,包括tfidf、BM25、PageRank、LSI、向量空间与余弦距离等。值得一提的是,在20世纪80、90年代,卷积神经网络、循环神经网络等就已经被提出,但受限于计算能力,NLP的神经网络方向不适于部署训练,多停留于理论阶段。

NLP深度时代

2013年,word2vec提出,NLP的里程碑式技术。

2013年,CNNs/RNNs/Recursive NN,随着算力的发展,神经网络可以越做越深,之前受限的神经网络不再停留在理论阶段。在图像领域证明过实力后,Text CNN问世;同时,RNNs也开始崛起。在如今的NLP技术上,一般都能看见CNN/LSTM的影子。

本世纪算力的提升,使神经网络的计算不再受限。有了深度神经网络,加上嵌入技术,人们发现虽然神经网络是个黑盒子,但能省去好多设计特征的精力。至此,NLP深度学习时代开启。

2014年,seq2seq提出,在机器翻译领域,神经网络碾压基于统计的SMT模型。

2015年,attention提出,可以说是NLP另一里程碑式的存在。带attention的seq2seq,碾压上一年的原始seq2seq。记得好像17年年初看过一张图,调侃当时学术界都是attention的现象,也证明了attention神一般的效果。

2017年末,Transformer提出。似乎是为了应对Facebook纯用CNN来做seq2seq的“挑衅”,google就纯用attention,并发表著名的《Attention is All You Need》。初看时以为其工程意义大于学术意义,直到BERT的提出才知道自己还是too young。

2018年末,BERT提出,横扫11项NLP任务,奠定了预训练模型方法的地位,NLP又一里程碑诞生。光就SQuAD2.0上前6名都用了BERT技术就知道BERT的可怕。

深度学习时代,神经网络能够自动从数据中挖掘特征,人们从复杂的特征中脱离出来,得以更专注于模型算法本身的创新以及理论的突破。并且深度学习从一开始的机器翻译领域逐渐扩散到NLP其他领域,传统的经典算法地位大不如前。但神经网络似乎一直是个黑箱,可解释性一直是个痛点,且由于其复杂度更高,在工业界经典算法似乎还是占据主流。

基本分类

NLP里细分领域和技术实在太多,根据NLP的终极目标,大致可以分为自然语言理解(NLU)和自然语言生成(NLG)两种。

NLU侧重于如何理解文本,包括文本分类、命名实体识别、指代消歧、句法分析、机器阅读理解等。

NLG则侧重于理解文本后如何生成自然文本,包括自动摘要、机器翻译、问答系统、对话机器人等。两者间不存在有明显的界限,如机器阅读理解实际属于问答系统的一个子领域。

大致来说,NLP可以分为以下几个领域:

文本检索

多用于大规模数据的检索,典型的应用有搜索引擎。

机器翻译

跨语种翻译,该领域目前已较为成熟。目前谷歌翻译已用上机翻技术。

文本分类/情感分析

本质上就是个分类问题。目前也较为成熟,难点在于多标签分类(即一个文本对应多个标签,把这些标签全部找到)以及细粒度分类(二极情感分类精度很高,即好中差三类,而五级情感分类精度仍然较低,即好、较好、中、较差、差)

信息抽取

从不规则文本中抽取想要的信息,包括命名实体识别、关系抽取、事件抽取等。应用极广。

序列标注

给文本中的每一个字/词打上相应的标签。是大多数NLP底层技术的核心,如分词、词性标注、关键词抽取、命名实体识别、语义角色标注等等。曾是HMM、CRF的天下,近年来逐步稳定为BiLSTM-CRF体系。

文本摘要

从给定的文本中,聚焦到最核心的部分,自动生成摘要。

问答系统

接受用户以自然语言表达的问题,并返回以自然语言表达的回答。常见形式为检索式、抽取式和生成式三种。近年来交互式也逐渐受到关注。典型应用有智能客服

对话系统

与问答系统有许多相通之处,区别在于问答系统旨在直接给出精准回答,回答是否口语化不在主要考虑范围内;而对话系统旨在以口语化的自然语言对话的方式解决用户问题。对话系统目前分闲聊式和任务导向型。前者主要应用有siri、小冰等;后者主要应用有车载聊天机器人。(对话系统和问答系统应该是最接近NLP终极目标的领域)

知识图谱

从规则或不规则的文本中提取结构化的信息,并以可视化的形式将实体间以何种方式联系表现出来。图谱本身不具有应用意义,建立在图谱基础上的知识检索、知识推理、知识发现才是知识图谱的研究方向。

文本聚类

一个古老的领域,但现在仍未研究透彻。从大规模文本数据中自动发现规律。核心在于如何表示文本以及如何度量文本之间的距离。

基本技术

分词:基本算是所有NLP任务中最底层的技术。不论解决什么问题,分词永远是第一步。

词性标注:判断文本中的词的词性(名词、动词、形容词等等),一般作为额外特征使用。

句法分析:分为句法结构分析和依存句法分析两种。

词干提取:从单词各种前缀后缀变化、时态变化等变化中还原词干,常见于英文文本处理。

命名实体识别:识别并抽取文本中的实体,一般采用BIO形式。

指代消歧:文本中的代词,如“他”“这个”等,还原成其所指实体。

关键词抽取:提取文本中的关键词,用以表征文本或下游应用。

词向量与词嵌入:把单词映射到低维空间中,并保持单词间相互关系不变。是NLP深度学习技术的基础。

文本生成:给定特定的文本输入,生成所需要的文本,主要应用于文本摘要、对话系统、机器翻译、问答系统等领域。

终极目标

从计算机诞生,NLP这个概念被提出伊始,人们便希望计算机能够理解人类的语言,于是便有了图灵测试。

尽管google I/O大会上的Google Assistant宣称已经通过了图灵测试,但离真正理解人类语言仍有很长的距离,让计算机能够确切理解人类的语言,并自然地与人进行交互是NLP的最终目标也是大多数NLPer的最高信仰。为此各路大佬挥舞手中的代码不断挖坑填坑,攻克一个又一个难题,推动NLP一直往前发展。

本文仅作为学习用途

参考:(自然语言处理 - 知乎 (zhihu.com)https://www.zhihu.com/topic/19560026/intro

自然语言处理(NLP)概论相关推荐

  1. 【组队学习】【29期】9. 基于transformers的自然语言处理(NLP)入门

    9. 基于transformers的自然语言处理(NLP)入门 航路开辟者:多多.erenup.张帆.张贤.李泺秋.蔡杰.hlzhang 领航员:张红旭.袁一涵 航海士:多多.张红旭.袁一涵.童鸣 基 ...

  2. 【组队学习】【28期】基于transformers的自然语言处理(NLP)入门

    基于transformers的自然语言处理(NLP)入门 论坛版块: http://datawhale.club/c/team-learning/39-category/39 开源内容: https: ...

  3. 自然语言处理(NLP)之用深度学习实现命名实体识别(NER)

    几乎所有的NLP都依赖一个强大的语料库,本项目实现NER的语料库如下(文件名为train.txt,一共42000行,这里只展示前15行,可以在文章最后的Github地址下载该语料库): played ...

  4. 自然语言处理(NLP)之使用TF-IDF模型计算文本相似度

    自然语言处理(NLP)之使用TF-IDF模型计算文本相似度 所用数据集:ChnSentiCorp_htl_all.csv 语料库即存放稀疏向量的列表. 要注意的是,搜索文本text与被检索的文档共用一 ...

  5. 自然语言处理(NLP)之gensim中的TF-IDF的计算方法

    自然语言处理(NLP)之gensim中的TF-IDF的计算方法 step 1.  去掉所有文本中都会出现的词 texts = [['这是', '一个', '文本'], ['这是', '第二个', '文 ...

  6. 自然语言处理NLP之语义相似度、语言模型、doc2vec

    自然语言处理NLP之语义相似度.语言模型.doc2vec 目录 自然语言处理NLP之语义相似度.语言模型.doc2vec 语义相似度

  7. 自然语言处理NLP之BERT、BERT是什么、智能问答、阅读理解、分词、词性标注、数据增强、文本分类、BERT的知识表示本质

    自然语言处理NLP之BERT.BERT是什么.智能问答.阅读理解.分词.词性标注.数据增强.文本分类.BERT的知识表示本质 目录

  8. 自然语言处理NLP之文本蕴涵、智能问答、语音识别、对话系统、文本分类、情感计算

    自然语言处理NLP之文本蕴涵.智能问答.语音识别.对话系统.文本分类.情感计算 目录

  9. 自然语言处理NLP之文本摘要、机器翻译、OCR、信息检索、信息抽取、校对纠错

    自然语言处理NLP之文本摘要.机器翻译.OCR.信息检索.信息抽取.校对纠错 目录

  10. 自然语言处理NLP之自然语言生成、文本相似性、看图说话、说话生图、语音合成、自然语言可视化

    自然语言处理NLP之自然语言生成.文本相似性.看图说话.说话生图.语音合成.自然语言可视化 目录

最新文章

  1. 神经网络“炼丹炉”内部构造长啥样?牛津大学博士小姐姐用论文解读
  2. 博威特瞄准数据备份市场
  3. 安装虚拟机和docker封装
  4. Linux下部署MyEclipse开发环境
  5. Codeforces round 1098
  6. 专家:不仅人脸识别,信息验证、生物特征都不可靠
  7. php中调行高代码_网页代码如何调整行距
  8. 最受推荐的 9本全栈开发书籍,助web前端开发学习
  9. 为提升在线语音识别效率,他创造了两种升级版算法模型
  10. git pull 提示当前不在某个分支上解决办法
  11. 微信小程序下拉刷新,上拉加载
  12. FRM-10102错误解决
  13. Java银行账户管理系统实验总结
  14. 浅析SkipList跳跃表原理及代码实现
  15. 计算机系统中设置保护系统还原,电脑设置的还原点,怎么使用之前设置的还原点进行恢复系统?...
  16. no module named ‘lap‘
  17. kaggle | 入门教程
  18. 计算机中哪些是rom哪些是ram,电脑RAM和ROM的区别是什么?RAM和ROM有哪些作用?
  19. Java限流及常用解决方案总结
  20. 在解压缩某些文件时出现问题检查计算机上,解压缩超大文件时出现问题

热门文章

  1. 伦斯勒理工学院计算机科学专业强吗,2020年伦斯勒理工学院排名TFE Times美国最佳计算机科学硕士专业排名第59...
  2. 发送短信验证码时触发天级流控Premit:10
  3. 嵌入式驱动学习之PWM蜂鸣器驱动
  4. vue中yarn install报错:info There appears to be trouble with your network connection. Retrying…
  5. latex设置times new roman新罗马字体
  6. 我知道苏宁会玩,但没想到它能把“千人千面”玩到了极致
  7. Jquery不同版本的兼容性
  8. C#实现QQ窗体的步骤和总结
  9. 普罗米修斯监控mysql与邮件告警
  10. Unity Timeline 初识