FastText的简单介绍

article/2025/8/26 19:29:50

0、引言

FastText是facebook开源的一款集word2vec、文本分类等一体的机器学习训练工具。在之前的论文中,作者用FastText和char-CNN、deepCNN等主流的深度学习框架,在同样的公开数据集上进行对比测试,在保证准确率稳定的情况下,FastText在训练时间上,有着惊人的表现,近百倍的速度提升

1、fastText文本分类

一般情况下,使用fastText进行文本分类的同时也会产生词的embedding,即embedding是fastText分类的产物

(1)字符级别的n-gram

word2vec把语料库中的每个单词当成原子,它会为每个单词生成一个向量,这忽略了单词内部的形态特征,如“apple”与“apples”,两个单词都有较多的公共字符,即它们的内部形态类似,但是在传统的word2vec中,这种单词内部形态信息因为它们被转换成不同的id丢失了

为了克服这个问题,fastText使用了字符级别的n-grams来表示一个单词,对于“apple”,假设n的取值为3,则它的trigram有:

"<ap","app","ppl","ple","le>"

其中<表示前缀,>表示后缀,我们可以使用这5个trigram的向量叠加来表示“apple”的词向量

优点:

对于低频词生成的词向量效果会更好,因为它们的n-gram可以和其他词共享;对于训练词库之外的单词,仍然可以构建它们的词向量,可以叠加它们的字符级别n-gram向量

(2)模型架构

fastText模型架构和word2vec的CBOW模型架构非常相似,下面就是fastText模型的架构图:

 

从上图可以看出来,fastText模型包括输入层、隐含层、输出层共三层。其中输入的是词向量,输出的是label,隐含层是对多个词向量的叠加平均。

1)CBOW的输入是目标单词的上下文,fastText的输入是多个单词及其n-gram特征,这些单词用来表示单个文档

2)CBOW的输入单词被one-hot编码过,fastText的输入特征时被embedding过

3)CBOW的输出是目标词汇,fastText的输出是文档对应的类标

(3)核心思想

将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类

小技巧:字符级n-gram特征的引入以及分层softmax分类

2、安装

pip install fasttext

3、实践

具体代码如下所示:

# coidng:utf-8
import fasttext# 模型的训练
def train():model = fasttext.train_supervised("train.txt", lr=0.1, dim=100, epoch=500, word_ngrams=4, loss='softmax')model.save_model("model_file.bin")# 模型的测试
def test_1():classifier = fasttext.load_model("model_file.bin")# 测试模型result = classifier.test("test.txt")print("准确率:", result)f1 = open('prediction.txt', 'w', encoding='utf-8')with open('test.txt', encoding='utf-8') as fp:for line in fp.readlines():line = line.strip()if line == '':continuef1.write(line + '\t#####\t' + classifier.predict([line])[0][0][0] + '\n')f1.close()if __name__ == '__main__':train()test_1()

 

欢迎同道者交流

 

 

 


http://chatgpt.dhexx.cn/article/GvZ1SlXP.shtml

相关文章

快速文本分类(FastText)

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

FastText:快速的文本分类器

转载请注明作者和出处&#xff1a;http://blog.csdn.net/john_bh/ 一、简介二、FastText原理 2.1 模型架构2.2 层次SoftMax2.3 N-gram特征 三、 基于fastText实现文本分类 3.1 fastText有监督学习分类3.2 fastText有监督学习分类 三、总结 3.1 fastText和word2vec的区别3.2 小…

DCGAN的PyTorch实现

DCGAN 1.什么是GAN GAN是一个框架&#xff0c;让深度模型可以学习到数据的分布&#xff0c;从而通过数据的分布生成新的数据(服从同一分布)。 其由一个判别器和一个生成器构成&#xff0c;生成器负责生成“仿造数据”&#xff0c;判别器负责判断“仿造数据”的质量。两者一起…

GAN论文阅读——DCGAN

论文标题&#xff1a;Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 论文链接&#xff1a;https://arxiv.org/abs/1511.06434 参考资料&#xff1a;http://blog.csdn.net/liuxiao214/article/details/73500737      …

DCGAN整理总结

DCGAN整理总结 GAN什么是GAN&#xff1f;GAN重要参数及损失函数 DCGAN什么是DCGAN&#xff1f;DCGAN结构TensorFlow版本MINIST手写体生成模型Pytorch版本人脸生成模型 GAN 什么是GAN&#xff1f; GAN是一个教深度学习模型捕捉训练数据的布局来从该布局中生成新数据的框架。最早…

DCGAN论文翻译

UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS &#xff08;使用DCGAN的无监督表示学习&#xff09; ABSTRACT&#xff08;摘要&#xff09; In recent years, supervised learning with convolutional networks (CNNs) h…

机器学习中的DCGAN-Tensorflow:用于更稳定的训练

https://www.toutiao.com/a6666031263536644621/ 自从Ian Goodfellow的论文以来&#xff0c;GAN已应用于许多领域&#xff0c;但其不稳定性一直存在问题。GAN必须解决极小极大&#xff08;鞍点&#xff09;问题&#xff0c;因此这个问题是固有的。 马鞍点的滑稽表示 许多研究人…

DCGAN 源码解析

为什么写Blog现在还没找到理由。不过用心看下去你会觉得更有意义。 我们以生成图片为例子: G就是一个生成图片的网络&#xff0c;它接受一个随机的噪声z&#xff0c;然后通过这个噪声生成图片&#xff0c;生成的数据记做G(z)。D是一个判别网络&#xff0c;判别一张图片是不是…

pytorch搭建DCGAN

我们知道gan的过程是对生成分布拟合真实分布的一个过程&#xff0c;理想目标是让判别器无法识别输入数据到底是来源于生成器生成的数据还是真实的数据。 当然这是一个博弈的过程并且相互促进的过程&#xff0c;其真实的过程在于首先判别器会先拟合真实数据的分布&#xff0c;然…

tensorflow实现DCGAN

1、DCGAN的简单总结 【Paper】 &#xff1a; http://arxiv.org/abs/1511.06434 【github】 : https://github.com/Newmu/dcgan_code theano https://github.com/carpedm20/DCGAN-tensorflow tensorflow https://github.com/jacobgil/keras-dcgan keras https://github.c…

DCGAN TUTORIAL

Introduction 本教程将通过一个示例对DCGAN进行介绍。在向其展示许多真实名人的照片之后&#xff0c;我们将训练一个生成对抗网络&#xff08;GAN&#xff09;来产生新名人。此处的大多数代码来自pytorch / examples中的dcgan实现 &#xff0c;并且本文档将对该实现进行详尽的…

DCGAN原文讲解

DCGAN的全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络)。是2014年Ian J.Goodfellow 的那篇开创性的GAN论文之后一个新的提出将GAN和卷积网络结合起来&#xff0c;以解决GAN训练不稳定的问题的一篇paper. 关于基本的GAN的原理&#xff0c;可以…

DCGAN

转自&#xff1a;https://blog.csdn.net/liuxiao214/article/details/74502975 首先是各种参考博客、链接等&#xff0c;表示感谢。 1、参考博客1&#xff1a;地址 ——以下&#xff0c;开始正文。 2017/12/12 更新 解决训练不收敛的问题。 更新在最后面部分。 1、DCGAN的…

深度学习之DCGAN

这一此的博客我给大家介绍一下DCGAN的原理以及DCGAN的实战代码,今天我用最简单的语言给大家介绍DCGAN。 相信大家现在对深度学习有了一定的了解,对GAN也有了认识,如果不知道什么是GAN的可以去看我以前的博客,接下来我给大家介绍一下DCGAN的原理。 DCGAN DCGAN的全称是Deep Conv…

对抗神经网络(二)——DCGAN

一、DCGAN介绍 DCGAN即使用卷积网络的对抗网络&#xff0c;其原理和GAN一样&#xff0c;只是把CNN卷积技术用于GAN模式的网络里&#xff0c;G&#xff08;生成器&#xff09;网在生成数据时&#xff0c;使用反卷积的重构技术来重构原始图片。D&#xff08;判别器&#xff09;网…

对抗生成网络GAN系列——DCGAN简介及人脸图像生成案例

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;对抗生成网络GAN系列——GAN原理及手写数字生成小案例 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞…

DCGAN理论讲解及代码实现

目录 DCGAN理论讲解 DCGAN的改进&#xff1a; DCGAN的设计技巧 DCGAN纯代码实现 导入库 导入数据和归一化 定义生成器 定义鉴别器 初始化和 模型训练 运行结果 DCGAN理论讲解 DCGAN也叫深度卷积生成对抗网络&#xff0c;DCGAN就是将CNN与GAN结合在一起&#xff0c;生…

torch学习 (三十七):DCGAN详解

文章目录 引入1 生成器2 鉴别器3 模型训练&#xff1a;生成器与鉴别器的交互4 参数设置5 数据载入6 完整代码7 部分输出图像示意7.1 真实图像7.2 训练200个批次7.2 训练400个批次7.2 训练600个批次 引入 论文详解&#xff1a;Unsupervised representation learning with deep c…

GANs系列:DCGAN原理简介与基础GAN的区别对比

本文长期不定时更新最新知识&#xff0c;防止迷路记得收藏哦&#xff01; 还未了解基础GAN的&#xff0c;可以先看下面两篇文章&#xff1a; GNA笔记--GAN生成式对抗网络原理以及数学表达式解剖 入门GAN实战---生成MNIST手写数据集代码实现pytorch 背景介绍 2016年&#…

Pix2Pix和CycleGAN

GAN的局限性 即便如此&#xff0c;传统的GAN也不是万能的&#xff0c;它有下面两个不足&#xff1a; 1. 没有**用户控制&#xff08;user control&#xff09;**能力 在传统的GAN里&#xff0c;输入一个随机噪声&#xff0c;就会输出一幅随机图像。 但用户是有想法滴&#xff…