本文转载自微信公众号《数据与智能》,作者AI出版社。转载本文请联系数据与情报公众号。本章对自然语言处理进行了高级介绍。解释什么是自然语言处理,最常见的自然语言处理应用程序有哪些,以及开发自然语言处理应用程序的基本方法是什么。1.理解自然语言处理人类通过包含大量信息的自然语言进行交互。例如,通过词语的选择、语气和句子的上下文可以揭示一个人的心情、意图和情绪。此外,书籍、报纸和博客等文本文档中充满了可用于执行各种任务的信息。人类需要花费大量时间来理解和提取文档中的有用信息,并根据文档中的这些信息做出决策。这就是自然语言处理发挥作用的地方。自然语言处理被定义为“使计算机能够阅读、理解和提取人类所说的自然语言的含义的人工智能领域”。通过自然语言处理,计算机不仅可以理解自然语言,还可以通过自然语言作用于人类。出回应。NLP技术除了用于人机交互目的外,还广泛用于处理公司中需要数月甚至数年才能手动处理的大量数据。例如,人工从一千页的书中提取信息进行摘要可能需要数周时间,但通过自然语言处理,类似的文本摘要可以在几分钟内完成。同样,雇用人类读者阅读所有用户评论并撰写包含用户对特定产品意见的报告的成本非常高,而通过自然语言处理,可以从文本中自动提取用户意见,使公司能够做出组织决策。2.自然语言处理的实际应用从微软的Cortona到苹果的Siri,NLP为各种各样的应用提供了动力。本节简要介绍NLP的一些最常见的应用。情感分析NLP通常用于执行文本情感分析。书面形式的流行观点,例如关于特定产品或实体的推文、博客和评论,包含情绪。情感分析是指从这些词中识别情感。自动检测公众对推文的看法可以帮助公司决定如何改进他们的产品以及保留或丢弃哪些产品。垃圾邮件和非垃圾邮件的分类Gmail和其他电子邮件服务器使用NLP技术来准确区分非垃圾邮件和垃圾邮件。这是文本分类的经典应用,其中文本文档被分类到预定义的类别之一,不是垃圾邮件或垃圾邮件。语音到文本的转换NLP技术广泛应用于语音和文本的自动双向转换。您不再需要让别人在您说话时为您写下您所说的话。Google的自动语音识别(https://bit.ly/2N6xYSt)是语音到文本转换的经典示例。人机交互需要按下键盘按钮并单击鼠标向计算机发出命令的日子已经一去不复返了。NLP使人类和机器人能够通过自然语言进行交互。在NLP的帮助下,机器人不仅可以理解人类语言,还可以用自然语言回应人类。Sophia(https://bit.ly/2YLprtx)是类人机器人的一个典型例子,它通过自然语言处理与人类进行交互。增强虚拟助手如上所述,NLP技术也被用于开发虚拟助手,包括AmazonAlexa、Apple的Siri和Microsoft的Cortona。这些虚拟个人助理依靠NLP方法来理解人类请求并以自然语言做出响应。文本翻译自动文本翻译是NLP最强大的应用之一。使用文本翻译技术,人们只需点击几下鼠标就可以将文档从一种语言翻译成另一种语言。谷歌翻译是使用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的基本任务在第4、5、6章中有详细解释。3.4理解如何用统计方式表示文本如前所述,大多数NLP技术都包含深度学习和机器学习的概念,这两者都是统计技术。为了在NLP中实施这些技术,需要对文本进行统计表示。有多种方法可用于统计地表示文本,详见第7章。3.5理解机器学习和深度学习学习了所有基本的NLP概念之后,你需要学习机器学习和深度学习的概念,尤其是有监督的机器学习算法。在深度学习算法中,应该重点理解密集连接神经网络、递归神经网络(尤其是LSTM)和卷积神经网络的基本工作原理。这些概念将在第3章中解释。3.6开发高级NLP应用程序一旦您熟悉了基本的NLP任务并对深度学习和机器学习有了基本的了解,您就可以准备开发高级NLP应用程序了。对于NLP应用程序,建议首先使用机器学习算法(如逻辑回归、随机森林等)开发机器学习应用程序(例如文本分类)。一旦您习惯使用机器学习开发NLP应用程序,您就可以转向高级深度学习使用各种神经网络的基于学习的应用程序。本书的第2部分致力于开发基于深度学习和机器学习的NLP应用程序。3.7NLP应用程序部署基于NLP的高级应用程序与机器学习应用程序非常相似。有几种方法可以部署此类应用程序。包含服务调用NLP应用程序的RESTAPI的专用服务器可用。要部署此类应用程序,需要学习PythonFlask、Docker或类似的Web技术。此外,该应用程序可以使用AmazonWebServices或任何其他基于云的部署平台进行部署。要成为NLP专家,你需要不断地练习和执行以上7个步骤。你练习得越多,你在NLP中的成就就越好。4.主要的自然语言处理方法自然语言处理方法分为两大类:基于规则的方法和统计方法。4.1基于规则的方法顾名思义,基于规则的方法由人类定义的规则组成。例如,基于规则的情感分类方法可能包括一条规则,即如果推文中正面词的数量大于负面词的数量,则可以将推文归类为具有总体正面情绪。基于规则的方法有其优点和缺点。主要好处之一是它们具有高度可解释性。此外,基于规则的方法不需要大量数据进行训练。主要缺点之一是这些基于规则的方法不灵活,并且可能无法扩展到不同的数据集。4.2统计方法顾名思义,统计方法涉及用于开发自然语言处理技术的统计算法。机器学习和深度学习方法是NLP统计方法的主要示例。统计方法比基于规则的方法更灵活和可扩展。使用统计方法的主要缺点是缺乏可解释性以及需要大型数据集来训练NLP算法。
