FastText是一个三层的神经网络,输入层、隐含层和输出层。

FastText的优点:

使用浅层的神经网络实现了word2vec以及文本分类功能,效果与深层网络差不多,节约资源,且有百倍的速度提升

深度学习和机器学习的区别:

与传统机器学习不同,深度学习既提供特征提取功能,也可以完成分类的功能。机器学习需要再根据提取到的特征再进行分类。

安装FastText

使用pip安装

pip install fasttext

因为FastText依赖C 的环境,安装的时候可能会报错,有的是C 11

有的是C 14看报错里面缺少那个版本的C 环境就安装那个版本的环境就可以了

使用FastText进行文本分类的一般步骤

数据格式的要求:

__label__标签 文本内容  或  文本内容 __label__标签
__label__标签\t文本内容  或  文本内容\t__label__标签
文本内容和标签之间用\t或空格都可以
目前这几种形式都支持

数据预处理:

将原数据处理为数据要求的格式,分词以后词于词之间用空格连接

这个根据自己数据的情况自己进行处理

训练模型

import fasttext
model = fasttext.train_supervised('train.csv', lr=1.0, wordNgrams=2, verbose=2, minCount=1, epoch=25, loss="hs")     # 训练模型
# train.csv 文件路径,也可以是txt文件,里面的参数根据需要调
"""
  训练一个监督模型, 返回一个模型对象
  input:           训练数据文件路径
  lr:              学习率
  dim:             向量维度
  ws:              cbow模型时使用
  epoch:           次数
  minCount:        词频阈值, 小于该值在初始化时会过滤掉
  minCountLabel:   类别阈值,类别小于该值初始化时会过滤掉
  minn:            构造subword时最小char个数
  maxn:            构造subword时最大char个数
  neg:             负采样
  wordNgrams:      n-gram个数
  loss:            损失函数类型, softmax, ns: 负采样, hs: 分层softmax
  bucket:          词扩充大小, [A, B]: A语料中包含的词向量, B不在语料中的词向量
  thread:          线程个数, 每个线程处理输入数据的一段, 0号线程负责loss输出
  lrUpdateRate:    学习率更新
  t:               负采样阈值
  label:           类别前缀
  verbose:         ??
  pretrainedVectors: 预训练的词向量文件路径, 如果word出现在文件夹中初始化不再随机
  model object
  """

预测数据

使用predict预测数据,预测一段文本属于的类别

model.predict(x)  # x文本内容 返回的数据格式(('__label__4',), array([0.99441689]))
# 可能性最大的标签和准确率

使用test验证模型的准确率,传入的是一个文件,文件的格式和训练集一样

返回一个元组(样本数,精确率,找回率)

模型的保存

model.save_model("model_cooking.bin") # 文件路径

模型读取

fasttext.load_model("model_cooking.bin") # 读取模型

模型的优化

直接使用默认参数去训练模型一般都得不到特别好的结果,可以通过一些手段来优化模型。第一种可以采取的手段是去掉语料库当中的停止词,对于英文的语料库来说,还可以把所有的大写字母都转化成小写字母。另一种可以采取的手段是调整超参数,比如说修改学习速率、修改epoch等,大家可以参照着fastTest的文档去进行相应的调整,fastText的文档中介绍了一种更加方便的自动调参方法,只要我们同时提供训练集和测试集就可以了,带来的精确度提升还是非常显著的:

model = fasttext.train_supervised(input='train.csv', autotuneValidationFile='test.csv', autotuneDuration=600) 
"""
autotuneValidationFile='test.csv',   测试集数据集
autotuneDuration=600                 时间限制,单位为秒,默认为5分钟
"""
# 如果想查看对应的参数,可以使用
对象.属性的方式进行查看

举例:

使用FastText进行文本分类的基本操作就是这些内容,关于深层次的学习大家可以参考

传送门

到此这篇关于Python深度学习之FastText实现文本分类详解的文章就介绍到这了,更多相关Python FastText内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Python深度学习之FastText实现文本分类详解的更多相关文章

  1. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

  2. Swift社交应用文本输入优化汇总

    本文将汇总一下Swift社交应用文本输入优化技巧。

  3. Swift基本使用-函数和闭包(三)

    声明函数和其他脚本语言有相似的地方,比较明显的地方是声明函数的关键字swift也出现了Python中的组元,可以通过一个组元返回多个值。传递可变参数,函数以数组的形式获取参数swift中函数可以嵌套,被嵌套的函数可以访问外部函数的变量。可以通过函数的潜逃来重构过长或者太复杂的函数。

  4. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  5. 在 Cocoa 中实现 ICU 文本变换

    ICU库提供了一整套强大的文本变换功能,在处理用户输入、特别是当你的程序需要处理一些英语之外的语言或者非拉丁字符时非常有用。在Apple的平台中,字符串变换一直以来都是通过CoreFoundation的CFStringTranform函数来实现。输入变换结果HELLOWORLDLowerhelloworld仅转换元音字母为小写。拉丁到ASCII这一步会移除变音符以及会把ASCII码范围之外的字符和标点符号转换成ASCII中与之最为接近的版本。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@fox

  6. Swift、Go、Julia与R能否挑战 Python 的王者地位

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  7. 可点击 @、# 标记文本实现

    在社交类APP中@、#符号构成的标记文本已经形成了某种通用的意义:前者表示通知某位好友,而后者表示为某个话题或者分类。开始上码的代码首先声明了一个wordType的枚举类型,该类用用于对标示文本进行类型标记。这里之所以使用.character而不是后面的.word的原因是:后者会将@、#这些标示符丢弃,导致一只类似点击到无效区域的情形。当上诉检查通过也就是点击区域有效的时候,我们使用.word,获取点击区域的单词。

  8. 红薯因 Swift 重写开源中国失败,貌似欲改用 Python

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  9. 你没看错:Swift可以直接调用Python函数库

    上周Perfect又推出了新一轮服务器端Swift增强函数库:Perfect-Python。对,你没看错,在服务器端Swift其实可以轻松从其他语种的函数库中直接拿来调用,不需要修改任何内容。以如下python脚本为例:Perfect-Python可以用下列方法封装并调用以上函数,您所需要注意的仅仅是其函数名称以及参数。

  10. Swift中的列表解析

    在Swift中完成这个的最简单的方法是什么?我在寻找类似的东西:从Swift2.x开始,有一些与你的Python样式列表解析相当的东西。(在这个意义上,它更像是Python的xrange。如果你想保持集合懒惰一路通过,只是这样说:与Python中的列表解析语法不同,Swift中的这些操作遵循与其他操作相同的语法。

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部