FastText文本分类中的n-grams
FastText文本分类中的n-grams
- FastText
- FastText模型结构
- FastText n-grams
- n-grams如何计算
FastText
FastText是facebook Tomas Mikolov提出的,也是在其word2vec的cbow模型的衍生物,该模型仅用一个隐层(仅仅求了平均,并未使用激活函数的非线性变换,故在Word2Vec模型中其实被叫做投影层Project Layer),一个分层的softmax,可以媲美深度神经网络,速度极快。在实际测试的时候,发现该模型比较适合数据量大的数据集,个人感觉他自己训练词向量如果数据太少的话,词向量的语义就不能保证,并且相比于rnn其前后文捕获能力,参数量等等也不够。
FastText模型结构
论文Bag of Tricks for Efficient Text Classification中给出的用于文本分类的FastText模型如下:
该模型看起来很简单,输入为一个句子的embed+n-gram,hidden是求输入的平均(未加入非线性),n-gram是加入顺序。对于模型的介绍这里就不说了,我们来关注一下embed+n-gram。
FastText n-grams
FastText的官方文档:https://fasttext.cc/docs/en/supervised-tutorial.html
文档中提到FastText模型默认是unigram,unigram指的是单个未划分单元,fastText中在单词级别上,故而unigram为单词。
在word级别上,n-grams是第i个词只与前面n-1个词有关,如bigrams:
如想对模型进行微调或是通过使用n-grams提高模型效果,如下代码(其中wordNgrams为1-5,lr为0.1-1.0,当数据量很大尤其是标签数很多时,可以选择loss=‘hs’,使用hierarchical softmax,dim为词向量的维度dimension):
model = fasttext.train_supervised(data_path+filename,lr=0.1,dim=200,epoch=20,wordNgrams=2,loss='hs')
n-grams如何计算
n-grams依据马尔科夫假设(Markov Assumption):一个词的出现仅与它之前的若干个词有关,表示如下:
以bigrams为例,即为:
每一项条件概率(wn|wn-1)使用极大似然估计计算,也就是词频:
举个例子,假设我们有两个句子:
我 喜欢 吃 苹果
你 喜欢 吃 什么
我 爱 吃 葡萄
那么p(喜欢|我)=p(我喜欢)/p(我)=1/2=0.5
p(吃|喜欢)=p(喜欢吃)/p(喜欢)=1/2=0.5
NLP中的N-gram模型更加详细的解说可参见https://blog.csdn.net/songbinxu/article/details/80209197#Naive_Bayes_6
FastText文本分类中的n-grams相关推荐
- fasttext 文本分类_一文综述经典的深度文本分类方法
作者 | 何从庆 转载自AI算法之心(ID:AIHeartForYou) 笔者整理最近几年比较经典的深度文本分类方法,希望帮助小伙伴们了解深度学习在文本分类中的应用. Convolutional N ...
- 公开课报名 | 那些年,我们在文本分类中遇到的坑
文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题,很多时候,我们需要将文本信息进行分类,或提相关的接口以供外部进行文本上传,在针对于用户所上传的文档信息就需要进行文档内容的分类, ...
- EMNLP 2021 | 多标签文本分类中长尾分布的平衡策略
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 黄毅 作者简介:黄毅,本文一作,目前为罗氏集团的数据科学家 ...
- label-embedding在文本分类中的应用
©PaperWeekly 原创 · 作者|蔡杰 学校|北京大学硕士生 研究方向|QA 最近在做文本分类相关的工作,目标是想提高分类器泛化新样本的能力,当有新样本产生的时候能够不需要重新训练分类器.所以 ...
- 【自然语言处理】词袋模型在文本分类中的用法
词袋模型在文本分类中的用法 1.加载数据 20 Newsgroups:数据被组织成 20 个不同的新闻组,每个新闻组对应一个不同的主题.一些新闻组彼此非常密切相关(例如 comp.sys.ibm.pc ...
- 文本分类中的文本特征表示
Introduce 文本话题分析文本分类的一个应用领域,主要是针对文本表现的主题的划分.目前,针对文本话题分类的研究还是很热的,主要包括微博,知乎等大型话题社区,论坛类网站.之前知乎针对该问题在著名的 ...
- paddle2.0高层API实现自定义数据集文本分类中的情感分析任务
paddle2.0高层API实现自定义数据集文本分类中的情感分析任务 本文包含了: - 自定义文本分类数据集继承 - 文本分类数据处理 - 循环神经网络RNN, LSTM - ·seq2vec· - ...
- 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)
写在前面 已经发布: [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) 继续NLP傻瓜式教程系列,今天的教程是基于FAIR的Bag of ...
- fasttext 文本分类_4种常见的NLP实践思路【特征提取+分类模型】
越来越多的人选择参加算法赛事,为了提升项目实践能力,同时也希望能拿到好的成绩增加履历的丰富度.期望如此美好,现实却是:看完赛题,一点思路都木有.那么,当我们拿到一个算法赛题后,如何破题,如何找到可能的 ...
最新文章
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
- 80网口打印机ip固定工具_网络打印机端口用名称好是还是IP好?
- 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
- Exchange企业实战技巧(15)启用向外部联系人发送邮件时的提醒
- SAP云平台CloudFoundry上部署应用的log分析
- Python:self理解
- 安卓页面布局中android:gravity与android:layout_gravity的区别
- mysql 5.6 2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server
- python中的ord,chr函数
- Q90:简易地模拟透明材质(Simple Transparency)
- orcale :SQL语句小测试select * from emp order by hiredate asc;
- linux给目录分配空间,Linux 分配/home的磁盘空间给根目录
- 群晖NAS的公网、NAT、DDNS、证书等配置一
- uni-app小程序答题功能开发(左右滑动,判断,填空,问答,答题卡,纠错,做题倒计时等)
- SAP UI5 应用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到正常的应用页面试读版
- 怎么拍照识别植物的名称呢?教大家一个识别小妙招
- android和ios传文件怎么打开方式,安卓怎么给iPhone传文件?文件互传教程
- 软件质量保证与测试PTA作业
- 关联网页可信度分析和文本内容(IEEE2014)
- 【转】《致新员工书》
热门文章
- 2021-10-24 PAT(5)
- 计算机网络DTE和DCE,什么叫DTE与DCE
- 为什么很多SpringBoot开发者放弃了Tomcat而选择Undertow
- 全国计算机access考试题型,计算机access考试题型
- CE工具实例:修改植物大战僵尸植物2
- leet_452_find_min_arrow_shots(用最少数量的箭引爆气球)
- 网络安全-渗透术语讲解
- 【傅里叶变换】DFT详细分析与Python实现
- 强化学习系列之翻译OpenAI用户手册(一)
- 幻境游戏里人物关于射线检测的问题(一)