[FastText in Text Classification]论文实现:Bag of Tricks for Efficient Text Classification

简介: [FastText in Text Classification]论文实现:Bag of Tricks for Efficient Text Classification

Bag of Tricks for Efficient Text Classification

论文:Bag of Tricks for Efficient Text Classification

作者:Armand Joulin,Edouard Grave,Piotr Bojanowski,Tomas Mikolov

时间:2016

地址:https://cs.brown.edu/people/pfelzens/segment

一、完整代码

直接调用fastext库就好,很快就能搞定!

import fasttext
# data.train.txt是一个文本文件,每行包含一个训练句和标签。默认情况下,我们假设标签是以  __label__ 为前缀的单词
model = fasttext.train_supervised('data.train.txt')
# 返回概率最高的三个结果,由于预测两个,一共会返回6个结果
model.predict(["Which baking dish is best to bake a banana bread ?", "Why not put knives in the dishwasher?"], k=3)

api中的label是前缀,默认为__label__

二、论文解读

2.1 模型架构

A simple and efficient baseline for sentence classification is to represent sentences as bag of words (BoW) and train a linear classifier, e.g., a logistic regression or an SVM (Joachims, 1998; Fan et al., 2008). However, linear classifiers do not share parameters among features and classes. This possibly limits their generalization in the context of large output space where some classes have very few examples. Common solutions to this problem are to factorize the linear classifier into low rank matrices (Schutze, 1992; Mikolov et al., 2013) or to use multilayer neural networks (Collobert and Weston, 2008; Zhang et al., 2015).

       由于线性分类器不会在类别和特征之间共享参数,所以我们不需要计算每一个类别的softmax值;即可以使用Hierarchical Softmax 或者 Negative Sampling 来加快训练速度;

       同时,由于各个词的内部特征也可以进行考虑,根据论文Enriching Word Vectors with Subword Information,我们可以使用论文的subwords方法进行映射;

       模型架构如下:

与论文Enriching Word Vectors with Subword Information不同的是,那里的output是词向量,而这里是类别(class or label);完毕!

三、过程实现

在论文中Enriching Word Vectors with Subword Information详细讲了;这里只需要softmax就可以了

四、整体总结

实现难度远不如Enriching Word Vectors with Subword Information


目录
相关文章
|
存储 缓存 运维
ISCSI详解(三)——ISCSI原理和架构
ISCSI详解(三)——ISCSI原理和架构
619 2
|
机器学习/深度学习 自然语言处理 监控
NLP技术有哪些主要任务?
【7月更文挑战第8天】NLP技术有哪些主要任务?
961 4
|
8月前
|
存储 人工智能 自然语言处理
OpenSearch LLM智能问答版全新升级
OpenSearch LLM智能问答版全新升级
142 0
|
9月前
|
小程序
产品经理面试分级汇总
《产品经理面试分级汇总》涵盖自我介绍、工作内容、团队配合、需求管理、项目流程等多方面问题,帮助候选人全面准备面试。内容包括如何划分需求优先级、参与项目开发的流程、迭代经验、复杂需求处理、版本验收标准等,旨在考察候选人的综合能力和职业规划。
|
关系型数据库 物联网 数据库
C语言在阿里云
阿里云提供了丰富的C语言资源与规范,涵盖代码标准、学习课程及应用实例。AliOS Things项目制定了基于C99标准的C语言编码规范,适用于嵌入式和IoT开发。阿里云培训中心则设有从入门到进阶的多级课程,助力开发者技能提升。值得注意的是,阿里云RDS for PostgreSQL的DTS服务不支持迁移C语言编写的数据库函数。此外,阿里云还提供了C语言连接数据库的示例代码,方便开发者参考使用。
239 12
|
11月前
|
缓存 前端开发 JavaScript
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
266 6
|
自然语言处理 测试技术
【大模型】描述一些评估 LLM 性能的技术
【5月更文挑战第5天】【大模型】描述一些评估 LLM 性能的技术
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
218 1
|
存储 分布式计算 资源调度
什么是Hadoop及其组件?
【8月更文挑战第31天】
993 1
|
JavaScript 前端开发 API
【前端开发】JS同步与异步调用,Vue2基础知识
本文简要介绍了JavaScript中的同步与异步调用以及Vue2的基础知识。 ### JS同步与异步调用 - **同步调用**:代码按顺序执行,每个任务完成后才执行下一个。 - **异步调用**:允许代码并发执行,不必等待前一个任务完成。 - **回调函数**:传统异步模式,如`setTimeout`。 - **Promise**:解决回调地狱问题,链式调用 `.then()`。 - **async/await**:基于Promise,使异步代码看起来像同步代码。 ### Vue2基础知识 - **核心概念**:指令、实例、组件、模板、数据绑定和生命周期钩子。 - **指令**
494 5