第10章 文本聚类和文本分类

上一章探讨了如何使用主题模型更好地组织和理解文档。本章将继续讨论机器学习算法中的聚类和分类任务及其工作原理,以及如何使用流行的Python机器学习库scikit-learn来执行这些任务,本章介绍的主题如下:

  • 文本聚类;
  • 文本分类。

此前,我们通过分析文本来更好地理解文本或语料库是由什么组成的,比如POS标注或NER标注会告诉我们文档中出现了什么样的单词;主题模型会告诉我们隐藏在文本中的潜在主题是什么。当然,开发人员也可以使用主题模型来对文档进行聚类,但这并不是主题模型的强项,贸然尝试并期望取得比较好的效果,是不切实际的。注意,由于主题建模的目的是在语料库中查找隐藏的主题,而不是将文档分组,因此目前没有特别好的办法对其进行聚类方面的优化。例如,在执行主题建模之后,文档可以由主题1、2、3组成,占比分别为30%、30%和40%,这些信息还不足以用来进行聚类。

下面我们开始介绍两种更偏向定量分析的机器学习算法:聚类和分类。聚类是一种流行的机器学习任务,经典的聚类任务中所使用的技术也可以用于文本。顾名思义,聚类是将同一组中的数据点分组或聚类的任务,其中同一组中的点比其他组中的点更相似。扩展开来讲,数据点可以是一篇文档,或者是一个单词。聚类是一个无监督的学习问题。在开始将数据点分配给集群或组之前,我们并不知道它们的类别(尽管我们可能知道会找到什么)。

分类任务与聚类任务有些类似,是通过包含已知样本类别(或实例)的训练数据集,来确定未知样本属于一组类别中的哪一个类别。例如,将收到的电子邮件分配到垃圾邮件或非垃圾邮件类,或者将报纸文章分配到指定的类或组。

一个著名的聚类或分类任务的数据集叫作Iris,该数据集包含花的花瓣长度和类别信息。另一个非常流行的数据集叫作MNIST,它包含手写数字,这些数字应该按照它所代表的数字进行分类。 ...

Get 自然语言处理与计算语言学 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.