第6章 文本分类
上一章对NLP领域中一些最常见的工具和预处理步骤进行了详细的讨论。本章将会利用之前所学习的大部分知识来构建一种复杂度最高的NLP应用。本章将会给出一个解决文本分类问题的通用方法,并带你从零开始用尽可能简短的代码来构建文本分类器。除此之外,还将给出一份适用于文本分类问题的分类算法清单。
虽然本章会对部分最常见的文本算法进行一些讨论,但也都只能是些蜻蜓点水式的介绍,对于那些想要了解具体细节和相关数学背景的读者,本章在后面会列出许多在线资源和相关书籍,以供参考。我们会竭尽所能地帮助读者了解他们所要了解的知识,使读者能够着手使用本章提供的代码片段。尽管,文本分类问题是NLP领域中一个很典型的用例,但本章并不打算使用NLTK来做这件事,因为scikit-learn库中包含了更为广泛的分类算法,使用该库来执行文本挖掘会更为有效。
在阅读完本章之后,希望读者能掌握以下内容。
- 学会所有的文本分类算法并理解它们。
- 学会如何使用点对点的管道来构建文本分类器,并用scikit-learn和NLTK来实现它。
下面来看一下scikit-learn库在机器学习应用上的功能列表,如图6-1所示。
事实上,下面这个功能列表可以被当成一个流程图。这样就会有一个明确的方向,如了解哪种方法对应的是哪个问题、分类器之间的迁移要依赖多大规模的标记样本等。对于构建实用程序来说,从这张流程图入手是一个不错的开始,它在大多数情况下都是适用的。本章大多数时候关注的是文本数据,尽管scikit-learn库也可以处理其他类型的数据,但在这里只探讨文本(为了降低维度)中的文本分类、文本聚类以及主题检测问题,并构建一些炫酷的NLP应用。当然,本章不会对机器学习、分类和聚类的概念进行详细说明,因为对于这些内容,大家可以在Web上找到充足的可用资料。我们会在谈到相关语料库时给出这些概念的更多细节,不过在此之前,还是得先来做个复习。 ...
Get NLTK应用开发指南 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.