赞
踩
文本分类是许多应用程序的核心问题,如垃圾邮件检测,情绪分析或智能回复。 在本教程中,我们将介绍如何使用fastText工具构建文本分类器。
文本分类的目标是将文档(例如电子邮件,帖子,文本消息,产品评论等)分配给一个或多个类别。 这些类别可以是评论分数,垃圾邮件vs. 非垃圾邮件或输入文档的语言。 如今,构建此类分类器的主要方法是机器学习,即从示例中学习分类规则。 为了构建这样的分类器,我们需要标记数据,其由文档及其对应的类别(或标签或标签)组成。
作为一个例子,我们构建了一个分类器,它自动将StackExchange有关烹饪的问题分类为几个可能的标签之一,例如:pot
、bowl
或者 baking
本教程的第一步是安装和构建fastText。 它只需要一个c ++编译器,并且支持c ++ 11。
$ wget https://github.com/facebookresearch/fastText/archive/v0.2.0.zip
$ unzip v0.2.0.zip
$ cd fastText-0.2.0
$ make
提示:data和pre_train_model目录是我后来新建的,正常情况下都是可以一次性安装成功的。
监督
,测试
和预测
子命令,这些子命令对应于学习(和使用)文本分类器。 有关fastText的其他功能的介绍,请参阅有关学习词向量的教程。# 在当前目录新建一个data目录用于存放数据
$ mkdir data
$ cd data
$ wget https://dl.fbaipublicfiles.com/fasttext/data/cooking.stackexchange.tar.gz && tar -xvzf cooking.stackexchange.tar.gz
$ head cooking.stackexchange.txt
下载完成之后如下所示:
文本文件的每一行都包含一个标签列表,后跟相应的文档。 所有标签都以__label__
前缀开头,这就是fastText识别什么是标签或什么是单词的方式。 然后训练该模型以预测给定文档中的单词的标签。
在训练我们的第一个分类器之前,我们需要将数据分成训练和验证。 我们将使用验证集来评估学习分类器对新数据的好坏程度。
我们的完整数据集包含15404个示例。 让我们将它分成12404个示例的训练集和3000个示例的验证集:
-input
命令行选项指示包含训练示例的文件,而-output
选项指示保存模型的位置。 在训练结束时,在当前目录中创建包含训练分类器的文件model_cooking.bin。由于时间原因,还有些后续步骤没有实现,后期会慢慢补上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。