什么是「自然语言处理」?

本问题被收录至活动「十万个是什么」中。
活动时间:11/29 - 12/14
活动规则:大于 200 字的客观事实定义,且注明可信来源,创作时间在前的优先采纳。
活动内容:欢迎参与活动分享你的知识、经验和见解,优质内容将有机会被收录在《十万个是什么》电子书中,同时还有机会获得一份精美的知乎周边礼物。更多相关问题请进入活动页面了解。
这是一本留给未来的百科全书,我们邀你一起合著。期待你的分享~
收藏者
0
被浏览
105

5 个回答

tszqc LV

发表于 2025-4-9 16:58:08

本文从什么是自然语言处理、自然语言发展史、应用场景对的维度出发进行介绍一下。

什么是「自然语言处理」?-1.jpg

什么是自然语言处理


  • 自然语言处理(Natural Language Processing, 简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域。
自然语言处理的发展史


什么是「自然语言处理」?-2.jpg


什么是「自然语言处理」?-3.jpg


什么是「自然语言处理」?-4.jpg


什么是「自然语言处理」?-5.jpg


什么是「自然语言处理」?-6.jpg

自然语言的应用场景


  • 语音助手
  • 机器翻译
  • 搜索引擎
  • 智能问答
  • ...
如何通俗的理解自然语言处理?

其实我们和聊天机器人互动、和虚拟助手互动,或者是车载娱乐系统的请求,仔细想想人类语言和情绪的表达非常复杂,但是机器可以识别,这都要归功于一个叫:自然语言处理的东西
自然语言处理是教会计算机以人类的方式理解问题并让其给出适当回应的技术,借助NLP机器可以学习阅读、解密和解释人类的书面和口头语言,并创建以类似人类的方式描述、概括或解释输入(结构化数据)的叙述。NLP是你经常与交互的诸多AI解决方案的驱动力,并促使了人类与机器之间的理解。
<hr/>推荐一个人工智能的学习路线图:

请推荐一个人工智能学习路线图?

玛卡巴卡 LV

发表于 2025-4-9 17:12:56

《构建企业级推荐系统》作者,公众号「数据与智能」主理人,9年推荐系统实战经验,持续输出推荐系统、大数据、机器学习、AI等硬核技术文章
本章为自然语言处理提供了一个高层次的介绍。解释了自然语言处理是什么,最常见的自然语言处理应用是哪些以及开发自然语言处理应用程序的基本方法是什么。
1.理解自然语言处理

人类通过自然语言互动,自然语言包括了许多信息。例如说,通过选择不同的词语,语气和句子的上下文可以被用来揭露一个人的心情,意图和情感。
此外,诸如书籍,报纸和博客之类的文本文档中充满了可用于执行各种任务的信息。对于人类来说,理解并且从一个文档中提取有用的信息以及做出基于来自文档的这个信息的决定需要花费大量的时间。
而这,就是自然语言处理发挥作用的地方。
自然语言处理被定义为“一个使计算机能够阅读,理解和提取人类所说自然语言含义的人工智能领域。”
有了自然语言处理,计算机不仅能够理解自然语言,而且还能通过自然语言对人类做出回应。除了用于人机交互目的之外,NLP技术还广泛用于处理公司的大量数据,而手动处理则需要数月甚至数年的时间。
例如,一个人可能需要花几周的时间来从一本一千页的书中人工提取信息进行总结,但有了自然语言处理,类似的文本摘要可以在几分钟内完成。同理,聘用人工读者通读所有用户评论,并编写包含用户对特定产品的意见的报告是花费成本非常高的,然而有了自然语言处理之后,用户意见可以被自动从文本中提取,从而使公司能够制定出组织决策。

2 . 自然语言处理的实际应用

从Microsoft的Cortona到Apple的Siri,NLP为各种应用程序提供了支持。本节简要介绍了NLP的一些最常见的应用程序。

情感分析
NLP通常被用于执行文本情感分析。文字形式的大众意见,例如有关特定产品或实体的推文,博客和评论都包含了情感。情感分析是指从这些文字中识别情感。自动检测有关推文的公众情绪可以帮助公司决定如何改进其产品以及保留或丢弃哪种产品。

垃圾邮件以及非垃圾邮件的分类
Gmail和其他电子邮件服务器使用NLP技术来精确地区分非垃圾和垃圾邮件。这是文本分类的一个经典应用,其中文本文档被划分为预定义类别之一,即非垃圾邮件或垃圾邮件。

语音到文字的转换
NLP技术被广泛的使用到语音与文字的自动双向转换中。在你说出内容时,你不再需要要求某人代你把你讲的内容写下。谷歌的自动语音识别(https://bit.ly/2N6xYSt) 就是一个很经典的语音文字转换的例子。

人机交互
需要按键盘按钮并单击鼠标以向计算机发出命令的日子已经一去不复返了。NLP 已经能够使人类和机器人通过自然语言进行互动。机器人在有了NLP的帮助下不仅能够理解人类的语言而且能够用自然语言对人类进行回应。Sophia(https://bit.ly/2YLprtx)就是一个经典的通过自然语言处理与人类互动的人形机器人的例子。

增强虚拟助手
正如上面所提到的,NLP技术也被用来开发包括亚马逊Alexa, 苹果的Siri以及微软的Cortona在内虚拟助手。这些虚拟私人助手依靠NLP方法来理解人类的请求并以自然语言回复。

文字翻译
自动文本翻译是NLP最强大的应用程序之一。使用文本翻译技术,人们只需单击几下鼠标,便可以将文档从一种语言翻译成另一种语言。 Google翻译就是使用NLP技术进行文字翻译的最著名例子之一。

文字摘要
并非每个人都有时间来阅读冗长的文章,内容摘要是需要时间和人力的。有了NLP技术,文字文档可以被自动地总结摘要,节省了时间与人力也节约了成本。

文本生成
基于深度学习的高级NLP技术现在还被用于文本生成。近年来,文本生成技术被用于生成基于(权力的游戏)脚本的诗歌。文本生成技术目前还处于初始阶段。

3. 学习NLP的路线图


掌握NLP需要时间和精力。不能仅通过阅读两个博客就声称自己是NLP专家。本节分步介绍怎么
学习NLP。
为了成为一个优秀的NLP专家,需要按顺序按照以下步骤学习。

3.1 了解NLP的全部意义
在开始开发NLP应用程序之前,你需要知道你实际在做什么。你应该了解NLP的全部含义,为何有用以及最重要的一些NLP应用程序。本书的第一章就是为自然语言处理理论建立基础。

3.2 学习一门编程语言
如果你希望成为一名NLP专家,你需要学会一点编程,这是无法绕过的现实。你必须学会编程才能开发NLP应用程序。尽管你可以使用任何一种编程语言来编程自然语言应用程序,但我还是会建议学习Python编程语言。Python是NLP最常用的库之一,具有无数的基本和先进的NLP库。此外,许多NLP应用程序基于机器学习和深度学习。并且Python是一种提供易于使用的深度学习和机器学习库的语言。简而言之,学习Python。第2章介绍 了面向初学者的Python入门的速成课程。

3.3 从基础任务开始
从非常基本的NLP应用程序开始。建议初学者不要立即开始开发NLP应用程序,相反,应该首先了解最常见和最基本的NLP任务。例如,学习如何执行停用词删除、如何将句子划分为单词以及如何将段落划分为句子、知道如何为文本等中的单词找到一部分语音标签等等。此外,精通文本清洗和操作技术也是必须的。最后,你需要掌握如何从不同的来源将数据导入你的应用以及如何抓取网站上的数据以将它导入你的应用程序。基本的NLP任务在第四,第五以及第六章中有详细解释。

3.4 了解如何以统计方式表示文本
正如之前提到的,大部分的NLP技术包含了深度学习以及机器学习的概念,而深度学习与机器学习都是统计学方面的技术。为了在NLP中实现这些技术,需要用统计学的方式表达文本。有多种方法可以用来统计地表示文本,关于详细信息,请参见第7章。

3.5 了解机器学习与深度学习
一旦学习完所有基本的NLP概念后,则需要学习机器学习和深度学习概念,尤其是有监督的机器学习算法。在深度学习算法中,应该注重了解稠密连接的神经网络,递归神经网络(尤其是LSTM)和卷积神经网络的基本工作原理。这些概念将在第3章中进行解释。

3.6 开发高级的NLP应用
熟悉了基本的NLP任务并且对深度学习和机器学习有基本的了解后,就可以准备开发高级NLP应用程序了。对于NLP应用程序,建议首先使用诸如Logistic回归,Random Forest等机器学习算法开发机器学习应用程序(例如文本分类)。一旦开始能熟悉地使用机器学习开发NLP应用程序,就可以转向使用基于深度学习的运用各种神经网络的高级应用程序。本书的第2部分致力于开发基于深度学习和机器学习NLP应用程序。

3.7 NLP应用部署
基于高级NLP的应用程序与机器学习应用程序非常相似。有几种部署此类应用程序的方法。可以使用包含REST API的专用服务器,这些服务器可服务于调用NLP应用程序。要部署此类应用程序,需要学习Python Flask,Docker或类似的Web技术。此外,还可以使用Amazon Web Services或任何其他基于云的部署平台来部署应用程序。
要成为NLP专家,需要不停地按照上述7个步骤练习执行。练习得越多,就可以在NLP获得更好的成就。

4.主要的自然语言处理方法


自然语言处理的方法分为两大类:基于规则的方法和统计方法。

4.1 基于规则的方法
顾名思义,基于规则的方法是由人类定义的规则组成。例如,一个关于情感分类的基于规则的方法可能包含了这样一条规则:如果推文中肯定词的数量大于否定词的数量,则该推文可以归类为总体上具有积极情绪。
基于规则的方法有其的好处也有不足。其最主要的一个好处是它们具有很高的可解释性。另外,基于规则的方法不需要大量的数据来做训练。而其最主要的一个不足是,这些基于规则的方法不能灵活变通,可能无法扩展到不同的数据集。

4.2 统计学方法
顾名思义,统计方法涉及到用于开发自然语言处理技术的统计算法。机器学习和深度学习方法是NLP统计方法的主要示例。与基于规则的方法相比,统计方法更加灵活和可扩展。使用统计方法的主要缺点是缺乏可解释性,并且需要大量的数据集来训练NLP算法。

下一章将介绍如何设置环境以运行用于执行基本NLP任务和开发NLP应用程序的脚本。

深度阅读– Python [1]
想要了解有关NLP的更多信息,请查看以下链接:
https://bit.ly/3fD8SHd
https://bit.ly/3hNEwDM
https://bit.ly/30UfInA
有关机器学习和深度学习的知识,请参阅以下链接:
https://bit.ly/2zLXAkE
https://bit.ly/2Y96lyv
<hr/>了解更多推荐系统、大数据、机器学习、AI等硬核技术,可以关注我的知乎,或同名微信公众号
数据与智能​www.zhihu.com/people/liu-qiang-5-5

橙子 LV

发表于 2025-4-9 17:27:54

自然语言处理(Natural Language Processing,NLP)是AI的一个领域,旨在让计算机理解和使用人类语言,从而执行有用的任务。自然语言处理又划分为两个部分:自然语言理解(Natural Language Understanding,NLU)和自然语言生成(Natural Language Generation,NLG)。
近年来,AI改变了机器与人类的互动方式。AI可以帮助人类解决各种复杂问题,例如,根据个人喜好向用户推荐电影(推荐系统)。得益于高性能GPU和大量的可用数据,人们现在可以创造出具有类似人类的学习和行为能力的智能系统。
有许多库旨在帮助人们创建这种系统。本章会介绍一些著名的Python库,用来从原始文本中提取和清洗信息。完全理解并解读语言这件事本身是一项困难的任务。例如,“C罗进了3个球”这句话对机器来说是很难理解的,因为机器既不知道C罗是谁,也不知道进球的数量意味着什么。
NLP中最流行的主题之一是问答系统(Question Answering System,简称QA),而这种系统又包含了信息检索(Information Retrieval,IR)。这种系统通过在数据库中查询知识或信息来进行回答,也能够从自然语言文档库中提取回答。搜索引擎都是这样工作的。
如今,NLP在业界越来越流行,最新的NLP趋势包括在线广告匹配、情感分析、机器翻译,以及聊天机器人。
NLP面对的下一个挑战是会话代理,俗称“聊天机器人”。聊天机器人可以进行真正的对话,很多公司利用这种技术来分析客户的行为和观点,以便获取产品反馈或者发起广告宣传活动。NLP的一个很好的例子就是虚拟助手,并且它们已经被引入市场中了。著名的虚拟助手包括Siri、亚马逊的Alexa,以及Google Home。本书会创建一个聊天机器人,用来控制一个虚拟机器人,并且它能够理解我们希望虚拟机器人做什么事情。
3.1.1 自然语言处理

如前所述,NLP是AI中负责理解和处理人类语言的一个领域。NLP属于AI、计算机科学和语言学的重叠部分,该领域的主要目标是让计算机理解使用人类语言表达的语句或文字。它们之间的关系如图3.1所示。


什么是「自然语言处理」?-1.jpg


图3.1 NLP与AI、语言学和计算机科学的关系

语言学专注于研究人类语言,试图描绘和解释语言中的不同方法。
语言可以被定义为一组规则和一组符号,符号按照规则结合在一起,用来传播信息。人类语言是特殊的,不能简单描述为自然形成的符号和规则。上下文不同,词语的含义也可能不同。
NLP可以用来解决许多难题。由于可获取文本数据的数据量是非常大的,人们是不可能处理所有这些数据的。维基百科平均每天的新增文章数是547篇,文章总数则超过了500万篇。显然,一个人是无法阅读这么多信息的。
NLP面临着3个挑战,它们分别是收集数据、数据分类,以及提取相关信息。
NLP能够处理许多单调乏味的任务,例如垃圾邮件检测、词性标注,以及命名实体识别。利用深度学习,NLP还可以解决语音转文本的问题。NLP虽然显示出了强大的能力,但在人机对话、问答系统、自动文摘和机器翻译等问题上,还没有很好的解决方案。
3.1.2 自然语言处理的两个部分

如前所述,NLP可以划分为两个部分:NLU和NLG。
3.1.2.1 自然语言理解

NLP的这一部分旨在理解和分析人类语言,重点关注对文本数据的理解,通过对其进行处理来提取相关信息。NLU提供直接的人机交互,并执行和语言理解相关的任务。
NLU涵盖了AI面对的最困难的挑战,即文本解读。NLU所面对的主要挑战是理解对话。
NLP使用一组方法来生成、处理和理解语言,利用函数来理解文本的含义。
起初,人们使用树来表示对话,但许多对话的情况都无法使用这种方法表示。为了覆盖更多情况,就需要更多的树,每个对话的上下文对应一棵树,从而导致了很多句子重复,如图3.2所示。


什么是「自然语言处理」?-2.jpg


图3.2 使用树表示的一个对话

这种方法已经过时了,并且效率低下,因为它是基于固定规则的,本质上就是一种if-else结构。如今,NLU提出了另一种方法,那就是将对话表示为一个文氏图,其中的每个集合代表对话的一个上下文,如图3.3所示。


什么是「自然语言处理」?-3.jpg


图3.3 使用文氏图表示的一个对话

NLU的这种方法改进了对话理解的结构,因为它不再是一个由if-else条件组成的固定结构。NLU的主要目标是解读人类语言的含义、处理对话上下文、消除歧义和管理数据。
3.1.2.2 自然语言生成

NLG是生成包含意义和结构的短语、句子和段落的过程,是NLP的一个不负责理解文本的领域。
为了生成自然语言,NLG的方法需要利用相关数据。
NLG由以下3个部分构成。

  • 生成器:负责根据给定的意图,选择与上下文相关的文本。
  • 表示的组件和层级:为生成的文本赋予结构。
  • 应用:从对话中保存相关数据,从而遵循逻辑。
生成的文本必须使用一种人类可读的格式。NLG的优点是可以提高数据的可访问性,还可以用来快速生成报告摘要。
3.1.3 NLP的各层次

人类语言具有不同的表示层次,层次越高越复杂,理解难度也越大。
下面介绍了各个层次,其中前两个层次取决于数据类型(音频或文本)。

  • 音位分析:对于语音数据,需要先分析音频,以获得句子。
  • OCR/词例化:对于文本数据,需要先使用计算机视觉的光学字符识别(Optical Character Recognition,OCR)技术来识别字符,形成词语,或者需要先对文本进行词例化(即把句子拆分为文本单元)。
OCR用来识别图像中的字符,生成词语,以作为原始文本处理。

  • 构词学分析:关注句子中的词语,分析词素。
  • 句法分析:这一层关注句子的语法结构,理解句子的不同部分,例如主语和谓语。
  • 语义表示:程序不能理解单独的词,而是通过一个词在句子中的用法来理解它的含义。例如,“cat”和“dog”这两个词对算法来说可能具有同样的含义,因为它们有同样的用法。通过这种方式理解句子,称为词语级别含义。
  • 语篇处理:分析并识别文本中的连接句以及句子间的关系,从而理解文本的主题。
如今,NLP在业界展现出了非常大的潜力,但也有一些例外。在其中的一些例外情况中,使用深度学习可以获得更好的结果。
自然语言处理书籍推荐
自然语言处理实战

什么是「自然语言处理」?-4.jpg

《自然语言处理实战 利用Python理解、分析和生成文本(异步图书出品)》([美]霍布森·莱恩,科尔·霍华德,汉纳斯·马克斯·哈普克)【摘要 书评 试读】- 京东图书本书是介绍自然语言处理(NLP)和深度学习的实战书。NLP已成为深度学习的核心应用领域,而深度学习是NLP研究和应用中的必要工具。本书分为3部分:第一部分介绍NLP基础,包括分词、TF-IDF向量化以及从词频向量到语义向量的转换;第二部分讲述深度学习,包含神经网络、词向量、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆(LSTM)网络、序列到序列建模和注意力机制等基本的深度学习模型和方法;第三部分介绍实战方面的内容,包括信息提取、问答系统、人机对话等真实世界系统的模型构建、性能挑战以及应对方法。
Python自然语言处理

什么是「自然语言处理」?-5.jpg

《Python自然语言处理(异步图书出品)》([美]Steven,Bird Ewan,Klein Edward,Loper)【摘要 书评 试读】- 京东图书本书是自然语言处理领域的一本实用入门指南,旨在帮助读者学习如何编写程序来分析书面语言。本书基于Python编程语言以及一个名为NLTK的自然语言工具包的开源库,但并不要求读者有Python编程的经验。全书共11章,按照难易程度顺序编排。第1章到第3章介绍了语言处理的基础,讲述如何使用小的Python程序分析感兴趣的文本信息。第4章讨论结构化程序设计,以巩固前面几章中介绍的编程要点。第5章到第7章介绍语言处理的基本原理,包括标注、分类和信息提取等。第8章到第10章介绍了句子解析、句法结构识别和句意表达方法。第11章介绍了如何有效管理语言数据。后记部分简要讨论了NLP领域的过去和未来。
本书的实践性很强,包括上百个实际可用的例子和分级练习。本书可供读者用于自学,也可以作为自然语言处理或计算语言学课程的教科书,还可以作为人工智能、文本挖掘、语料库语言学等课程的补充读物。

唐小蛇 LV

发表于 2025-4-9 17:41:15

NLP 英文全称 Natural Language Processing,
自然语言处理应用主要分为序列标注,分类任务,句子关系判断和生成式任务。自然语言处理就是使用计算机处理和分析我们的语言,能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。不同的任务,比如序列标注有分词,词性的标注,命名实体识别等;分类任务有对文本的分类,对情感的计算;句子关系 判断包括文本匹配和相似度计算 ;生成式任务则是对机器的翻译,问答系统和文本摘要。

快把鞋穿上 LV

发表于 2025-4-9 17:50:06

自然语言处理方向研究生路过,斗胆强答一波,个人拙见,抛砖引玉。
自然语言处理,英文Natural Language Processing,简写NLP。NLP这个概念本身过于庞大,很难通过简短的几句定义就能明白它是什么。不妨把它分成“自然语言”和“处理”两部分。先来看自然语言。区分于计算机语言,自然语言是人类发展过程中形成的一种信息交流的方式,包括口语及书面语,反映了人类的思维。简单的一句问候“你好”,以及正在看的这篇,都是以自然语言的形式表达。现在世界上所有的语种语言,都属于自然语言,包括汉语、英语、法语等。然后再来看“处理”。如果只是人工处理的话,那我们原本就有专门的语言学来研究,也没必要特地强调“自然”。因此,这个“处理”必须是计算机处理的。但计算机毕竟不是人,无法像人一样处理文本,需要有自己的处理方式。因此自然语言处理,简单来说即是计算机接受用户自然语言形式的输入,并在内部通过人类所定义的算法进行加工、计算等系列操作,以模拟人类对自然语言的理解,并返回用户所期望的结果。正如机械解放人类的双手一样,自然语言处理的目的在于用计算机代替人工来处理大规模的自然语言信息。它是人工智能、计算机科学、信息工程的交叉领域,涉及统计学、语言学等的知识。由于语言是人类思维的证明,故自然语言处理是人工智能的最高境界,被誉为“人工智能皇冠上的明珠”。
下面,统一以NLP来指代自然语言处理。
【NLP的终极目标】
从计算机诞生,NLP这个概念被提出伊始,人们便希望计算机能够理解人类的语言,于是便有了图灵测试。尽管今年google I/O大会上的Google Assistant宣称已经通过了图灵测试,但离真正理解人类语言仍有很长的距离(并且我对其生成的对话是否完全由机器生成而不是用规则定义表示深深的怀疑。。。)让计算机能够确切理解人类的语言,并自然地与人进行交互是NLP的最终目标也是大多数NLPer的最高信仰。为此各路大佬挥舞手中的代码不断挖坑填坑,攻克一个又一个难题,推动NLP一直往前发展。

【NLP的技术概貌】
NLP里细分领域和技术实在太多,根据NLP的终极目标,大致可以分为自然语言理解(NLU)和自然语言生成(NLG)两种。NLU侧重于如何理解文本,包括文本分类、命名实体识别、指代消歧、句法分析、机器阅读理解等;NLG则侧重于理解文本后如何生成自然文本,包括自动摘要、机器翻译、问答系统、对话机器人等。两者间不存在有明显的界限,如机器阅读理解实际属于问答系统的一个子领域。
大致来说,NLP可以分为以下几个领域:

  • 【文本检索】:多用于大规模数据的检索,典型的应用有搜索引擎
  • 【机器翻译】:跨语种翻译,该领域目前已较为成熟。目前谷歌翻译已用上机翻技术
  • 【文本分类/情感分析】:本质上就是个分类问题。目前也较为成熟,难点在于多标签分类(即一个文本对应多个标签,把这些标签全部找到)以及细粒度分类(二极情感分类精度很高,即好中差三类,而五级情感分类精度仍然较低,即好、较好、中、较差、差)
  • 【信息抽取】:从不规则文本中抽取想要的信息,包括命名实体识别、关系抽取、事件抽取等。应用极广。
  • 【序列标注】:给文本中的每一个字/词打上相应的标签。是大多数NLP底层技术的核心,如分词、词性标注、关键词抽取、命名实体识别、语义角色标注等等。曾是HMM、CRF的天下,近年来逐步稳定为BiLSTM-CRF体系。
  • 【文本摘要】:从给定的文本中,聚焦到最核心的部分,自动生成摘要。
  • 【问答系统】:接受用户以自然语言表达的问题,并返回以自然语言表达的回答。常见形式为检索式抽取式生成式三种。近年来交互式也逐渐受到关注。典型应用有智能客服
  • 【对话系统】:与问答系统有许多相通之处,区别在于问答系统旨在直接给出精准回答,回答是否口语化不在主要考虑范围内;而对话系统旨在以口语化的自然语言对话的方式解决用户问题。对话系统目前分闲聊式和任务导向型。前者主要应用有siri、小冰等;后者主要应用有车载聊天机器人。(对话系统和问答系统应该是最接近NLP终极目标的领域)
  • 【知识图谱】:从规则或不规则的文本中提取结构化的信息,并以可视化的形式将实体间以何种方式联系表现出来。图谱本身不具有应用意义,建立在图谱基础上的知识检索、知识推理、知识发现才是知识图谱的研究方向
  • 【文本聚类】:一个古老的领域,但现在仍未研究透彻。从大规模文本数据中自动发现规律。核心在于如何表示文本以及如何度量文本之间的距离

所涉及的基本技术有:

  • 分词:基本算是所有NLP任务中最底层的技术。不论解决什么问题,分词永远是第一步
  • 词性标注:判断文本中的词的词性(名词、动词、形容词等等),一般作为额外特征使用
  • 句法分析:分为句法结构分析依存句法分析两种
  • 词干提取:从单词各种前缀后缀变化、时态变化等变化中还原词干,常见于英文文本处理
  • 命名实体识别:识别并抽取文本中的实体,一般采用BIO形式
  • 指代消歧:文本中的代词,如“他”“这个”等,还原成其所指实体
  • 关键词抽取:提取文本中的关键词,用以表征文本或下游应用
  • 词向量与词嵌入:把单词映射到低维空间中,并保持单词间相互关系不变。是NLP深度学习技术的基础
  • 文本生成:给定特定的文本输入,生成所需要的文本,主要应用于文本摘要、对话系统、机器翻译、问答系统等领域
  • ……

常用算法有:
tfidf、BM25、TextRank、HMM、CRF、LSI、主题模型、word2vec、GloVe、LSTM/GRU、CNN、seq2seq、Attention……

【NLP的发展历程】
1948年,香农提出信息熵的概念。此时尚未有NLP,但由于熵也是NLP的基石之一,在此也算作是NLP的发展历程。
按照维基百科的说法,NLP发源于1950年。图灵于该年提出“图灵测试”,用以检验计算机是否真正拥有智能。
-----------NLP规则时代-----------
1950-1970年,模拟人类学习语言的习惯,以语法规则为主流。除了参照乔姆斯基文法规则定义的上下文无关文法规则外,NLP领域几乎毫无建树。
-----------NLP统计时代-----------
70年代开始统计学派盛行,NLP转向统计方法,此时的核心是以具有马尔科夫性质的模型(包括语言模型,隐马尔可夫模型等)。
2001年,神经语言模型,将神经网络和语言模型相结合,应该是历史上第一次用神经网络得到词嵌入矩阵,是后来所有神经网络词嵌入技术的实践基础。也证明了神经网络建模语言模型的可能性。
2001年,条件随机场CRF,从提出开始就一直是序列标注问题的利器,即便是深度学习的现在也常加在神经网络的上面,用以修正输出序列。
2003年,LDA模型提出,概率图模型大放异彩,NLP从此进入“主题”时代。Topic模型变种极多,参数模型LDA,非参数模型HDP,有监督的LabelLDA,PLDA等。
2008年,分布式假设理论提出,为词嵌入技术的理论基础。(分布式假设的思想并非直到08年才有,详见Gavagai - Distributional Semantics - gavagai.se)
在统计时代,NLP专注于数据本身的分布,如何从文本的分布中设计更多更好的特征模式是这时期的主流。在这期间,还有其他许多经典的NLP传统算法诞生,包括tfidf、BM25、PageRank、LSI、向量空间与余弦距离等。值得一提的是,在20世纪80、90年代,卷积神经网络、循环神经网络等就已经被提出,但受限于计算能力,NLP的神经网络方向不适于部署训练,多停留于理论阶段。
-----------NLP深度时代-----------
2013年,word2vec提出,NLP的里程碑式技术,从此万物embedding
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所独有,主要是深度学习的发展,故此处不列出)

【NLP的目前难点】
目前,仍有很多制约NLP发展的因素,这些因素构成了NLP的难点。而且要命的是,大多数是基础技术的难点。个人不完全统计,有:

  • 中文分词,这条是专门针对中文说的。众所周知汉语博大精深,老外学汉语尚且虐心,更别提计算机了。同一个任务,同一个模型在英文语料的表现上一般要比中文语料好。无论是基于统计的还是基于深度学习的NLP方法,分词都是第一步。分词表现不好的话,后面的模型最多也只能尽力纠偏
  • 词义消歧:很多单词不只有一个意思,但这个在今年BERT推出后应该不成问题,可以通过上下文学到不同的意思。另一个较难的是指代消歧,即句子中的指代词还原,如“小明受到了老师的表扬,他很高兴”,这个“他”是指“小明”还是指“老师”。由于对指代消歧领域没有深入的了解过,这里不好展开
  • 二义性:有些句子,往往有多种理解方式,其中以两种理解方式的最为常见,称二义性。如“我们两人一组”,究竟是“我们两人/一组”(这个组就2个人),还是“我们/两人一组”(每组2个人)
  • OOV问题:随着词嵌入技术大热后,使用预训练的词向量似乎成为了一个主流。但有个问题就是,数据中的词很可能不在预训练好的词表里面,此即OOV(out of vocabulary)。目前主流方法是要么当做UNK处理,要么生成随机向量或零向量处理,当然都存在一定的弊端。更合理的是用subword和char-CNN(感谢评论区 @Towser 的指出)。
  • 文本相似度计算:是的你没有看错。文本相似度计算依旧算是难点之一。不过与其说难点,主要是至今没有一种方法能够从理论证明。目前主流认可的是用余弦相似度。但看论文就会发现,除了余弦相似度外,有人用欧式距离,有人用曼哈顿距离,有人直接向量內积,且效果还都不错;还有到底用什么去计算呢?传统的tfidf?还是词向量求平均?或者tfidf加权词向量平均?还是说过RNN/CNN/MLP得到向量再计算?总之大家好像都还处于经验阶段,缺少真正的理论证明。
  • 文本生成的评价指标:目前文本生成的评价指标多用BLEU或者ROUGE,但尴尬的是,这两个指标都是基于n-gram的,也就是说会判断生成的句子与标签句子词粒度上的相似度。然而由于自然语言的特性(同一个意思可以有多种不同的表达),会出现生成的句子尽管被人为判定有意义,在BLEU或ROUGE上仍可能会得到很低的分数的情况。这两个指标用在机翻领域倒是没多大问题(本身就是机翻的评价指标),但用在文本摘要和对话生成就明显不合适了。这个现象大概17年中就有大佬发文批判过,然而一年过去了情况还是依旧(摊手)
  • ……(想到再补充)

【NLP对其他领域的影响】
由于自然语言作为人类社会信息的载体,使得NLP不只是计算机科学的专属。在其他领域,同样存在着海量的文本,NLP也成为了重要支持技术:

  • 在社会科学领域,关系网络挖掘、社交媒体计算、人文计算等,国内一些著名的大学实验室,如清华的自然语言处理与社会人文计算实验室、哈工大的社会计算与信息检索研究中心均冠有社会计算的关键词
  • 在金融领域,单A股就有300多家上市公司,这些公司每年都有年报、半年报、一季报、三季报等等,加上瞬息万变的金融新闻,金融界的文本数量是海量的。金融领域的NLP公司举例:李纪为大佬的香侬科技;
  • 在法律领域,中国裁判文书网上就有几千万公开的裁判文书,此外还有丰富的流程数据、文献数据、法律条文等,且文本相对规范。该领域已经有不少公司在做,如涂存超大佬的幂律智能;
  • 在医疗健康领域,除了影像信息,还有大量的体检数据、临床数据、诊断报告等,同样也是NLP大展身手的地方。该领域的NLP公司:碳云智能
  • 在教育领域,智能阅卷、机器阅读理解等都可以运用NLP技术。国内这方面目前领先者应该是科大讯飞和猿辅导。
  • ……
(列举的公司名字为当时脑里想到的第一个名字,不具普遍性)

以上,仅以我近2年的NLP入坑经历的角度出发。根据《2018年新一代人工智能白皮书:产业增长点研判》,全球(包括我国)在NLP产业均处于产业培育阶段,或许不出几年我们就能有幸见证NLP产业的扩张。希望能有更多的人分享自己的看法,也希望有更多的人对NLP产生兴趣。

参考
Gavagai - Distributional Semantics - gavagai.se
Natural language processing
http://ruder.io/a-review-of-the-recent-history-of-nlp/index.html
《数学之美》吴军,第2章  自然语言处理——从规则到统计
拥有少见的技术实力,这两位清华博士想让法律人用上真正的AI
中国电子学会发布《2018新一代人工智能白皮书:产业增长点研判》(附白皮书下载)

您需要登录后才可以回帖 登录 | 立即注册