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相关推荐

  1. fasttext 文本分类_一文综述经典的深度文本分类方法

    作者 |  何从庆 转载自AI算法之心(ID:AIHeartForYou) 笔者整理最近几年比较经典的深度文本分类方法,希望帮助小伙伴们了解深度学习在文本分类中的应用. Convolutional N ...

  2. 公开课报名 | 那些年,我们在文本分类中遇到的坑

    文本分类问题是企业在 NLP 领域中处理文本数据时经常会遇到的一个问题,很多时候,我们需要将文本信息进行分类,或提相关的接口以供外部进行文本上传,在针对于用户所上传的文档信息就需要进行文档内容的分类, ...

  3. EMNLP 2021 | 多标签文本分类中长尾分布的平衡策略

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | 黄毅 作者简介:黄毅,本文一作,目前为罗氏集团的数据科学家 ...

  4. label-embedding在文本分类中的应用

    ©PaperWeekly 原创 · 作者|蔡杰 学校|北京大学硕士生 研究方向|QA 最近在做文本分类相关的工作,目标是想提高分类器泛化新样本的能力,当有新样本产生的时候能够不需要重新训练分类器.所以 ...

  5. 【自然语言处理】词袋模型在文本分类中的用法

    词袋模型在文本分类中的用法 1.加载数据 20 Newsgroups:数据被组织成 20 个不同的新闻组,每个新闻组对应一个不同的主题.一些新闻组彼此非常密切相关(例如 comp.sys.ibm.pc ...

  6. 文本分类中的文本特征表示

    Introduce 文本话题分析文本分类的一个应用领域,主要是针对文本表现的主题的划分.目前,针对文本话题分类的研究还是很热的,主要包括微博,知乎等大型话题社区,论坛类网站.之前知乎针对该问题在著名的 ...

  7. paddle2.0高层API实现自定义数据集文本分类中的情感分析任务

    paddle2.0高层API实现自定义数据集文本分类中的情感分析任务 本文包含了: - 自定义文本分类数据集继承 - 文本分类数据处理 - 循环神经网络RNN, LSTM - ·seq2vec· - ...

  8. 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)

    写在前面 已经发布: [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) 继续NLP傻瓜式教程系列,今天的教程是基于FAIR的Bag of ...

  9. fasttext 文本分类_4种常见的NLP实践思路【特征提取+分类模型】

    越来越多的人选择参加算法赛事,为了提升项目实践能力,同时也希望能拿到好的成绩增加履历的丰富度.期望如此美好,现实却是:看完赛题,一点思路都木有.那么,当我们拿到一个算法赛题后,如何破题,如何找到可能的 ...

最新文章

  1. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
  2. 80网口打印机ip固定工具_网络打印机端口用名称好是还是IP好?
  3. 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
  4. Exchange企业实战技巧(15)启用向外部联系人发送邮件时的提醒
  5. SAP云平台CloudFoundry上部署应用的log分析
  6. Python:self理解
  7. 安卓页面布局中android:gravity与android:layout_gravity的区别
  8. mysql 5.6 2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server
  9. python中的ord,chr函数
  10. Q90:简易地模拟透明材质(Simple Transparency)
  11. orcale :SQL语句小测试select * from emp order by hiredate asc;
  12. linux给目录分配空间,Linux 分配/home的磁盘空间给根目录
  13. 群晖NAS的公网、NAT、DDNS、证书等配置一
  14. uni-app小程序答题功能开发(左右滑动,判断,填空,问答,答题卡,纠错,做题倒计时等)
  15. SAP UI5 应用开发教程之六十九 - 如何从 SAP UI5 Not Found 页面跳转回到正常的应用页面试读版
  16. 怎么拍照识别植物的名称呢?教大家一个识别小妙招
  17. android和ios传文件怎么打开方式,安卓怎么给iPhone传文件?文件互传教程
  18. 软件质量保证与测试PTA作业
  19. 关联网页可信度分析和文本内容(IEEE2014)
  20. 【转】《致新员工书》

热门文章

  1. 2021-10-24 PAT(5)
  2. 计算机网络DTE和DCE,什么叫DTE与DCE
  3. 为什么很多SpringBoot开发者放弃了Tomcat而选择Undertow
  4. 全国计算机access考试题型,计算机access考试题型
  5. CE工具实例:修改植物大战僵尸植物2
  6. leet_452_find_min_arrow_shots(用最少数量的箭引爆气球)
  7. 网络安全-渗透术语讲解
  8. 【傅里叶变换】DFT详细分析与Python实现
  9. 强化学习系列之翻译OpenAI用户手册(一)
  10. 幻境游戏里人物关于射线检测的问题(一)