【小笔记】fasttext文本分类问题分析

【学而不思则罔,思维不学则怠】
2023.9.28
在这里插入图片描述
关于fasttext的原理及实战文章很多,我也尝试在自己的任务中进行使用,是一个典型的短文本分类任务,对知识图谱抽取的实体进行校验,判断实体类别是否正确,我构建了27000个样本,3种类别(A,B,C),经过调参,最好的F1只有0.61,感觉这就是它的天花板了,在网上看到很多人在自己的场景中都能达到0.8、0.9之类的,我就在想,为什么我这个提不上去。
可能的原因有一下几个:

1.数据量不够?

比如知乎有个人做7分类的数据量也差不多,但他的性能很不错。
在这里插入图片描述
相比较而言,我这边每类样本接近1W,我个人感觉对于这个轻量级模型是够了。

2.类别不均衡导致?

我这边三中类别的数据比例分别是1:1:0.7,应该还好,不算很极端的类别不均衡。

Q:fasttext对类别不均衡敏不敏感?
敏感

3.数据中有噪声?

数据中是有噪声,会有那种错误分类的样本存在,但应该不是很多。

4.F1被平均?

我用过测试发现,算法在我应用场景中,基本上能把错误分类的A给识别出来并进行准确分类,但是会把正确的B给错误分类成A,而且比例比较高。
说明B很容易被分类为A,B这个类别的P应该不高,算法对三种类别的分类性能不一致,0.61是被平均的结果(待验证)

5.文本太长了,N-gram无法准确捕捉语义信息?

网上的一种主流声音是fasttext适合短文本分类,究其原因是fast对于语序特征不能很好的提取,虽然它考虑用n-grams来捕捉一些语序特征(即图中的N-gram特征),但N通常不会太大,如2-3,这样小的一个窗口,是很难捕捉长距离的语义信息的。(多说一点,transformer和bert添加了专门的位置编码来记录语序信息)
在这里插入图片描述
如下面的句子:

  • 这电影不是很好看,但我还是很喜欢它
  • 这电影是很好看,但我还是不喜欢它
  • 我不喜欢这电影,但它还是很好看
    其中第1、3句整体极性是positive,但第2句整体极性就是negative。

分析上述例子:

  • 在词向量特征层面,三个句子非常接近,很难区分
  • 在N-gram特征层面,比如N=3,会发现第2句和第3句也很难区分。
    因此,fasttext只是通过简单的取向量的平均来作为s句向量进行分类,很难学出词序对句子语义的影响。
    换句话说,fasttext不适合这类对语序特征敏感的场景。

我的场景中有一些比较接近但类别不同的短文本,如“方向盘”为A,“打方向”、“打方向盘”为C,这类文本很可能会导致分类混淆。(待验证)

6.文本太短了,N-Gram特征无法准确用于分类?

我数据中有很多文本的长度比较短,甚至只有一两个字,:“异响”,“亮”,“不亮”,针对这类文本,fast的N-gram有效吗?
(待验证)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/90376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高级时钟项目(2)Json文件解析学习---C语言版本

笔者来介绍一下json文件解析 1、背景介绍 笔者在获取天气数据的时候,是通过MCU的WIFI去获取,但是获取到的数据json数据,需要解析,C语言没那么解析库,所以就需要找一些开源的解析库。 笔者找到cjson这个适用于C语言…

【c语言】通讯录【动态版本:有排序和文件操作】

目录 一、通讯录定义 二、通讯录的实现 1、test.c中菜单的实现 2、通讯录的创建逻辑 3、初始化 4、检查容量和添加 5、查找 6、删除功能 7、修改功能 8、打印 9、查找并打印 10、qsort排序 11、摧毁 12、保存数据到文件 13、从文件中读数据 完整代码: 一、通讯录定…

【C++进阶(六)】STL大法--栈和队列深度剖析优先级队列适配器原理

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 栈和队列 1. 前言2. 栈和队列的接口函数熟悉3. …

基础算法--KMP字符串

KMP 算法是一个快速查找匹配串的算法,它的作用其实就是本题问题:如何快速在「原字符串」中找到「匹配字符串」。 在朴素解法中,不考虑剪枝的话复杂度是 O(m∗n) 的,而 KMP 算法的复杂度为 O(mn)。 KMP 之所以能够在O(mn) 复杂度内…

leetCode 213. 打家劫舍 II 动态规划 房间连成环怎么偷呢?

213. 打家劫舍 II - 力扣(LeetCode) 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装…

如何定时备份使用Docker构建的MySQL容器中的数据库

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…

PIE:1979-2018年中国气温数据产品(空间分辨率为0.1º)

简介 中国气温数据产品包含1979-2018年期间中国的近地表气温数据(单位为摄氏度),时间分辨率为每日,空间分辨率为0.1。本产品集成了再分析数据(ERA5、CMFD)、遥感数据(MODIS)、原位数…

php eayswoole node axios crypto-js 实现大文件分片上传复盘

不啰嗦 直接上步骤 步骤1.开发环境配置 项目需要node.js 做前端支撑 官网下载地址: http://nodejs.cn/download/ 根据自己需要下载对应的版本,我下载的是windows系统64位的版本。 包下载好后 进行安装,安装步骤在此省略... 测试是否安装成功 …

蓝海彤翔亮相2023新疆网络文化节重点项目“新疆动漫节”

9月22日上午,2023新疆网络文化节重点项目“新疆动漫节”(以下简称“2023新疆动漫节”)在克拉玛依科学技术馆隆重开幕,蓝海彤翔作为国内知名的文化科技产业集团应邀参与此次活动,并在美好新疆e起向未来动漫展映区设置展…

C#生成自定义海报

安装包 SixLabors.ImageSharp.Drawing 2.0 需要的字体:宋体和微软雅黑 商用的需要授权如果商业使用可以使用方正书宋、方正黑体,他们可以免费商用 方正官网 代码 using SixLabors.Fonts; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Draw…

使用SPY++查看窗口信息去排查客户端UI软件问题

目录 1、使用SPY查看窗口的信息 2、使用SPY查看某些软件UI窗口用什么UI组件实现的 2.1、查看海康视频监控客户端安装包程序 2.2、查看华为协同办公软件WeLink 2.3、查看字节协同办公软件飞书 2.4、查看最新版本的Chrome浏览器 2.5、查看小鱼易连视频会议客户端软件 2.6…

CIP或者EtherNET/IP中的PATH是什么含义?

目录 SegmentPATH举例 最近在学习EtherNET/IP,PATH不太明白,翻了翻规范,在这里记个笔记。下面的叙述可能是中英混合,有一些是规范中的原文我直接搬过来的。我翻译的不准确。 Segment PATH是CIP Segment中的一个分类。要了解PATH…

Dev C++安装与运行

参考: https://blog.csdn.net/Keven_11/article/details/126388791 https://www.cnblogs.com/-Wallace-/p/cpp-stl.html 2021年真题要求 2022年真题要求 河南省的考试环境 IDE环境 Dev C 安装 下载 安装 点击OK,选择我接受 修改安装路径为D盘d:\Program Fi…

MQTT协议是什么?快速了解MQTT协议在物联网中的应用

随着工业互联网的迅猛发展,工业设备数据采集和实时监控成为制造业提高生产效率和质量的重要手段。在物联网应用中,通信技术包括Wi-Fi、RFID、NFC、RS232、RS485、USB等,其中在物联网技术框架体系中所使用到的通讯协议主要有:AMQP、…

Django(21):使用Celery任务框架

目录 Celery介绍Celery安装Celery使用项目文件和配置启动Celery编写任务调用异步任务查看任务执行状态及结果 设置定时和周期性任务配置文件添加任务Django Admin添加周期性任务启动任务调度器beat Flower监控任务执行状态Celery高级用法与注意事项给任务设置最大重试次数不同任…

26663-2011 大型液压安全联轴器 课堂随笔

声明 本文是学习GB-T 26663-2011 大型液压安全联轴器. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了大型液压安全联轴器的分类、技术要求、试验方法及检验规则等。 本标准适用于联接两同轴线的传动轴系,可起到限制…

软考高级之系统架构师之软件需求工程

概述 一个完整的软件生存周期是以需求为出发点。软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。 需求开发: 需求获取需求分析需求定义(需求规格说明书)需求验证 需求管理: 变更控制版本控制需求跟踪需求状态跟踪 需…

零基础Python经验体验代码检查工具

作者:yd_257945187 原文链接:零基础Python经验体验代码检查工具-云社区-华为云 1 开发小白自述 年初,我开始从java语言转战Python语言的开发,对于零基础python经验的人来说,要开发出高质量且安全性能高的Python 代码…

解决craco启动react项目卡死在Starting the development server的问题

现象: 原因:craco.config.ts配置文件有问题 经过排查发现Dev开发模式下不能有splitChunk的配置, 解决办法: 加一个生产模式的判断,开发模式不加载splitChunk的配置,仅在生产模式才加载 判断条件代码&#…

notepad++配置python2环境

(1)python2版本下载:Index of /ftp/python/2.7.8/https://www.python.org/ftp/python/2.7.8/ (2) 配置notepad环境 1.打开Notepad,点击“插件”-“插件管理器”,在“可用”选项卡中&#xff0c…