一直听说有一个研究领域是NLP,但一直没有时间了解,借这篇文章对NLP做个简单了解。文章围绕如下几个问题:
  1.什么是NLP?
  2.NLP的构成
  3.NLP的一些具体应用场景和研究现状
  4.如何学习NLP?

1.什么是NLP?

  首先先要明确NLP不是某一项具体的技术,而是一个很大的领域。
  自然语言处理 (NLP,Natural Language Processing),先给个定义:自然语言处理(NLP)指以计算机为工具解决一系列现实中和自然语言相关的问题。可以分成两部分理解:自然语言、处理过程。首先自然语言就是人类市场交流所使用的语音和字符系统,换句话说字符系统就是NLP的研究对象,处理过程指对字符进行理解融合应用。计算机接受用户自然语言形式的输入,并在内部通过人类所定义的算法进行加工、计算等系列操作,以模拟人类对自然语言的理解,并返回用户所期望的结果

  NLP目前属于AI中一个比较火的方向,有人将人工智能分为三大领域,计算机视觉(CV),自然语言处理(NLP)以及语音识别。NLP属于比较困难的部分

2.NLP由什么组成?

  NLP算法的三个级别:简单匹配式、模糊匹配式和段落理解式
  NLP处理的三个维度:单词、句子、句子语义
  关于NLP的组成,要说下和NLP相关的两个概念。有一个等式说:NLP=NLU+NLG,来具体看看:
  自然语言理解(Natural Language Understanding, NLU)——理解文本中的意思,NLU对应的是理解俚语、错误发音、拼写错误以及其他语言变体的能力

  自然语言生成(Natural Language Generation, NLG)——根据意思生成文本,NLG对应的是计算机自行创建通信的能力
NLU侧重于如何理解文本,包括文本分类、命名实体识别、指代消歧、句法分析、机器阅读理解等;NLG则侧重于理解文本后如何生成自然文本,包括自动摘要、机器翻译、问答系统、对话机器人等。两者间不存在有明显的界限
  以上两个其实算笼统的概念,下面列举了NLP中一些具体的支撑技术手段:

NLP 关系图 nlp 系统_自然语言处理


图源:

  但NLP研究目前是有困难的,源于如下几个方面:
    1)文字中相同一种含义,却有多种表达方式
    2)一词多义
    3)在处理的各个阶段都会出现误差,最终串行误差累加
  在这篇博客中也简要提到了几个方面:NLP遇到的困难:自然语言处理入门第一章笔记

3.NLP的应用场景及研究现状

  NLP应用场景
  主要包括智能问答系统、文本生成、机器翻译、情感分析、聊天机器人、虚假新闻检测、文本主题分类、信息抽取
  NLP的研究现状
  NLP的研究已经初具成果,现在有许多流行NLP软件,在此做一下列举:

•自然语言工具包(NLTK)。自然语言工具包(NLTK)是一个开放源代码框架,用于构建Python程序以使用人类语言数据。它是在宾夕法尼亚大学计算机和信息科学系开发的,为50多个语料库和词汇资源库、一个文本处理库、自然语言处理库和论坛提供接口。自然语言工具包(NLTK)是在Apache2.0许可下提供的。
•SpaCy。SpaCy是一个开放源代码库,用于高级自然语言处理,专门为生产目的而非研究目的而设计。SpaCy的设计充分考虑了高级数据科学,并允许深度数据挖掘。它是由麻省理工学院授权的。
•Gensim。Gensim是一个用于自然语言处理的开源Python库。独立于平台的库支持可扩展的统计语义、针对语义结构的纯文本文档分析以及检索语义相似文档的能力。可以在无需人工监督的情况下处理大量文本。
•AmazonComprehend。这项Amazon服务不需要机器学习的经验。它旨在帮助组织从电子邮件、客户评论、社交媒体、支持通知单和其他文本中获得见解。它使用情感分析、词性提取和标记化来分析单词背后的意图。
•IBMWatson音频分析器。这个基于云计算的解决方案旨在用于社交监听、聊天机器人集成和客户服务监控。它可以分析客户帖子中的情绪和语气,并监视客户服务电话和聊天对话。
•谷歌云翻译。这个API使用自然语言处理来检查源文本以确定语言,然后使用神经机器翻译将文本动态翻译为另一种语言。这个API允许用户将功能集成到他们自己的程序中。

参考:自然语言处理的前景是怎样的

4.如何学习NLP呢?

  关于具体如何学习还没有去深刻研究,毕竟目前还没有这方面的需求,不过可以肯定的是机器学习是基础,但也要明白机器学习、深度学习是解决这些问题的具体手段

  在这里留一些学习NLP资源吧:
GitHub - km1994/nlp_paper_study: 该仓库主要记录 NLP 算法工程师相关的顶会论文研读笔记
如何系统性地学习NLP 自然语言处理? - 知乎 (zhihu.com)

最后留一些参考资料吧:
NLP训练数据集:The NLP Index (quantumstat.com) NLP常用库:自然语言处理NLP概述自然语言NLP处理概述

因作者水平有限,如有错误之处,请在下方评论区指正,谢谢!