第7章 文本分类
本章将介绍以下内容。
- 词袋特征提取。
- 训练朴素贝叶斯分类器。
- 训练决策树分类器。
- 训练最大熵分类器。
- 训练scikit-learn分类器。
- 衡量分类器的准确率和召回率。
- 计算高信息量单词。
- 使用投票组合分类器。
- 使用多个二元分类器分类。
- 使用NLTK训练器训练分类器。
7.1 引言
文本分类是归类文件或文本片段一种方式。通过检查一段文字中的单词用法,分类器可以决定分配给这个单词何种类型标签。二元分类器可以在两个标签(如正或负)之间做决定。文本可以是其中一个标签,但是不能同时拥有两个标签,而多标签分类器可以给一段文本分配一个或多个标签。
分类器在有标签的特征集或训练数据中学习,然后,对没有标签的特征集进行分类。简单来说,有标签的特征集就是一个元组,这个元组看起来像(feat, label),而没有标签的特征集就只有feat本身。特征集基本上就是特征名称到特征值的关键值映射。在文本分类的情况下,特征名通常是单词,值全为True。因为文档可能有未知的单词,可能的单词数目可能非常巨大,因此会省略在文本中未出现的单词,而不是使用值False将它们包含在特征集中。
实例是特征集的另一种说法。它代表单次出现的特征组合。这里将可互换地使用实例和特征集。有标签的特征集是具有已知类标签的实例,可以利用它来训练或评估。总之,(feat, label)是有标签的特征集,或有标签的实例。feat就是特征集,通常表示为关键值字典。当feat没有与之相关联的标签时,它也称为没有标签的特征集,或实例。
7.2 词袋特征提取
文本特征提取是本质上将单词列表转变为特征集的过程,从而使分类器可以使用这个特征集。由于NLTK分类器期望得到dict式的特征集,因此必须将文本变换为dict。词袋模型是最简单的方法。它从一个实例的所有单词中构建出单词出现特征集。这种方法不在乎单词的顺序,或单词出现了多少次,这种方法所关心的是在单词列表中单词是否出现。 ...
Get Python和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.