fasttext实现文本分类

FastText是一种快速文本分类算法,能在短时间内训练大量数据并完成高效分类。它以其速度和准确性著称,同时能自我训练词向量,无需预先准备。模型包括层次Softmax和N-gram特征,其结构类似CBOW,但用于标签预测。本文将概述FastText的原理,并展示代码实现。
摘要由CSDN通过智能技术生成

一.算法简述

FastText是一个快速文本分类算法,在使用标准多核CPU的情况下,在10分钟内可以对超过10亿个单词进行训练,并且在不到一分钟的时间内对312K类中的50万个句子进行分类。 与基于神经网络的文本分类算法相比它主要由两个优点首先FastText在保持高精度的同时极大地加快了训练速度和测试速度。再有就是不需要使用预先训练好的词向量,因为FastText会自己训练词向量 。

二.原理

fastText 方法包含三部分:模型架构、层次 Softmax 和 N-gram 特征。

fastText 模型输入一个词的序列(一段文本或者一句话),输出这个词序列属于不同类别的概率。
序列中的词和词组组成特征向量,特征向量通过线性变换映射到中间层,中间层再映射到标签。
fastText 在预测标签时使用了非线性激活函数,但在中间层不使用非线性激活函数。
fastText 模型架构和 Word2Vec 中的 CBOW 模型很类似。不同之处在于,fastText 预测标签,而 CBOW 模型预测中间词。

三.代码

1.1对文本进行分词处理(用的THUCNews公开数据集)

import fastText.FastText as ft
import jieba
import os
basedir = "THUCNews/" #文件地址,需跟据文件夹位置进行更改,后面直接合成文件地址
dir_list = ['affairs','constellation','economic','edu','ent',
            'social', 'fashion','game','home','house','lottery','science','sports','stock']
ftrain = open("news_fasttext_train.txt","w")
ftest = open("news_fasttext_test.txt",
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值