前 言
Python是自然语言处理(NLP)中使用最广泛的语言,这要归功于其用于分析文本和提取计算机可用数据的广泛工具和库。本书将带您了解一系列文本处理技术,从词性标注等基础知识,到主题建模、文本分类和可视化等复杂主题。
这本书从NLP的概述开始,介绍了将文本分成句子、词干提取和词形还原、删除停用词和词性标注的方法,以帮助您准备数据。然后,您将了解提取和表示语法信息的方法,例如依存分析和指代消解,发现使用词袋、TF-IDF、词嵌入和BERT表示语义的不同方法,并使用关键词、SVM、LSTM和其他技术开发文本分类技能。随着学习的深入,您还将了解如何从文本中提取信息、实施无监督和有监督的主题建模技术,以及对短文本(如推文)进行主题建模。此外,本书还介绍了使用NLTK和Rasa开发聊天机器人,以及可视化文本数据。
读完这本NLP书,您将掌握使用一套强大的工具进行文本处理的技能。
这本书是给谁看的
本书适于想要学习如何使用文本的数据科学家和专业人士阅读。Python的中级知识将帮助您充分利用本书。如果您是NLP从业者,本书可作为您项目工作时的代码参考。
这本书涵盖的内容
第1章,学习NLP基础知识,属于概要性章节,介绍了处理文本的基本预处理步骤。它包括诸如将文本分成句子、词干提取和词形还原、删除停用词和词性标注等方法。您将了解用于词性标注的不同方法,以及用于删除停用词的两个选项。
第2章,玩转语法,将展示如何获取和使用有关文本的语法信息。我们将创建一个依存分析器,然后使用它将一个句子拆分为子句。我们还将使用依存分析和名词块来提取文本中的实体和关系。某些专题将展示如何提取英语和西班牙语的语法信息。
第3章,表示文本——捕获语义,介绍了如何处理单词和语义,因为对人来说使用单词和语义很容易,但对计算机而言却很困难,因此我们需要以单词以外的方式表示文本,以便计算机能够处理文本。本章介绍了表示文本的不同方式,从简单的词袋到BERT。本章还讨论了使用这些语义表示的语义搜索的基本实现。
第4章,文本分类,这是NLP中最重要的技术之一。它在许多不同行业中用于不同类型的文本,例如推文、长文档和句子。在本章中,您将学习如何使用各种技术和工具(包括K-Means、SVM和LSTM)进行有监督和无监督的文本分类。
第5章,信息提取入门,讨论NLP的主要目标之一是从文本中提取信息以便后续使用。本章展示了从文本中提取信息的不同方法,从用最简单的正则表达式技术来查找电子邮件和URL,到用神经网络工具来提取情绪。
第6章,主题建模,讨论了确定文本的主题是一个重要的NLP工具,它可以帮助文本分类和发现文本中的新主题。本章介绍了不同的主题建模技术,包括无监督和有监督的技术,以及短文本(如推文)的主题建模。
第7章,构建聊天机器人,介绍聊天机器人,它是过去几年出现的重要营销工具。在本章中,您将学习如何使用两种不同的框架构建聊天机器人,其中NLTK用于关键词匹配聊天机器人,Rasa用于具有深度学习模型的复杂聊天机器人。
第8章,可视化文本数据,讨论了可视化不同NLP分析的结果如何成为一个非常有用的演示和评估工具。本章向您介绍不同NLP工具的可视化技术,包括NER、主题建模和词云。
为了充分利用这本书
您需要在系统上安装Python 3。我们建议使用pip安装本书中讨论的Python库。书中的代码片段提到了在Windows操作系统上安装给定库的相关命令。
书中涉及的软件/硬件操作系统要求Python 3.x, Anaconda, Jupyter NotebookWindows/macOS/Linux
如果您使用本书的数字版本,我们建议您自己输入代码或通过GitHub存储库访问代码(下一节提供链接)。这样做将帮助您避免与复制和粘贴代码相关的任何潜在错误。
下载示例代码文件
您可以从GitHub下载本书的示例代码文件,网址为https://github.com/PacktPublishing/Python-Natural-Language-Processing-Cookbook。如果代码有更新,它将在现有的GitHub存储库中更新。
我们还有来自丰富的书籍和视频目录的其他代码包,可在https://github.com/PacktPublishing/获得。去看一下!
下载彩色图像
我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以在此处下载:https://static.packt-cdn.com/downloads/9781838987312_ColorImages.pdf。
使用的约定
本书通篇使用了许多文本约定。
文本中的代码:表示文本中的代码单词、数据库表格名称、文件夹名称、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面是一个例子:“对于这个专题,我们只需要书的开头,可以在sherlock_holmes_1.txt文件中找到。”
一段代码设置如下:
当我们希望引起您对代码块的特定部分的注意时,相关的行或项目以粗体显示:
任何命令行输入或输出的写法如下:
粗体:表示新词、重要词或您在屏幕上看到的词。例如,菜单或对话框中的单词出现在文本中是这样的。下面是一个例子:“它显示了词汇表中的三个单词,它们是seen、of和Holmes。”
提示或重要说明像这样出现。
小节
在本书中