NLP文本分类--词向量
1.基于规则,对于要提取的分类维护一个dict,在dict里面保存需要提取的关键词,存在关键词的对应标记为分类;(缺点,不断的去维护词典)
2.基于机器学习:HMM(分词最常用的),CRF,SVM,LDA,CNN
3.词袋模型:bag of word :(one hot)一种是统计词频和位置,一种是只存储是否出现;(缺点很明显,只有词出现信息,对于词的重要度完全没有体现)
4.tf-idf:先考虑每个词在当前词词表中多高,再考虑在所有的文本中出现频率。这样就有词的重要程度了。(缺点是还是么有词的顺序考量,毕竟 l love you, you love l 是不一样的。但是tf )
5.n-gram:将n个词体现为一个向量表示,这样就可以体现顺序了。那一句话出现的概率就可以表示为:
(这个里面业界一般不会用相乘,用相加处理。)(缺点:维度会爆炸,随着n越大。n小效果不好,一般n要到5才会有量变,这样所有词的顺序组合足以变得非常爆炸。不能表达句子或者说词之间的相似性。只能对文本进行表达。不能捕捉文本含义。)
6.distribution representation:一个东西可以通过分布式表示方法就能可以用很少的东西,也能表示词的相似性。一个词表示可以通过他附近的词表示: 比如 我是一个 _____人 :这个例子中的空格,我们可以填写,中国人,好人,坏人,善良;那这些词都有一些相似性的。这样就可以通过周边词去表示这个词。
7.共线矩阵cocurrence matrix :因为用分布式表达,我们不能无限的取他旁边的词,这个时候要选取几个旁边的词。这个和 n-gram很像。 但不同的是旁边词形成局域窗中的词,而自己本身并不参与。做成一个共线矩阵。
缺点:线性增长,维度太高,太稀疏。
8.对上面的矩阵进行svd降维
缺点: n*n 算法复杂O(n^3)对大型语料库而言:n–40万。1-60Btoken;对新加入词就要重新计算。
9.NNLM(neural network language model)
(缺点:计算量还是很大,需要的参数太多。对于训练就不是很友好了)
10.Word2vector:CBOW,SKIP-GRAM(去掉映射层)
改进:去掉映射层,直接用每个词词向量(初始化好的词表)。把NNLM中拼接维度参数改成直接对词向量的求和。 直接去预测目标词。不使用激活函数,是一个线性的表示器。(缺点:最后的soft的分类还是太多了。)
11.CBOW-层次softmax:通过词频出现次数,使用Huffman编码。在最后做决策每次softmax就会只有0,1两种,权重放到了这个上面。这样变成每次softmax按照树进行乘积。使得这个乘积最大。这样相当于4次决策。
(缺点:建立Huffman树,并对这个分层结构进行训练还是比较麻烦。训练每个词都可能全部遍历整个树结构。这个计算也比较大。)
12.CBOW-负采样:对每一个目标词而言。其实训练结果中只有一个词是目标词(比如整个词库有10万个词,去预测一句话里面的一个词出现的概率。这里面只有这个词是正样本,其他词全都是负样本(10-1)。),可以通过只在负样本中取得部分负样本(十万取500个)参与训练。这样一个是平衡数据集,一个是减小了softmax训练成本。这里一个问题是省略的负目标不会对样本训练产生影响。
负样本采集原理:根据概率分布,频率分布来采样的。
13.skip-gram–和cbow反着来的。里面使用的原理一致,不过最后预测出来多个词(取决于你的窗口大小)。样本量小的时候用CBOW,样本量非常大用skip-gram:
词向量评分:类比任务:inner
word2vector缺点:窗口问题,一词多义问题。
14.GloVe 方法:
NLP文本分类--词向量相关推荐
- 第六课.NLP文本分类任务
第六课目录 NLP文本分类简介 IMDB数据集准备 设置随机种子 下载IMDB并划分数据集 构建词汇表 使用torchtext生成batch WordAveraging 模型定义 加载由glove.6 ...
- fastText、TextCNN、TextRNN……这里有一套NLP文本分类深度学习方法库供你选择 作者:机器人圈 / 微信号:ROBO_AI发表时间 :2017-07-28 图:pixabay
fastText.TextCNN.TextRNN--这里有一套NLP文本分类深度学习方法库供你选择 「机器人圈」编译:嗯~阿童木呀.多啦A亮 这个库的目的是探索用深度学习进行NLP文本分类的方法. 它 ...
- NLP --- 文本分类(基于LDA的隐语意分析详解)
前几节我们分析了向量空间模型(VSM).基于奇异值分解(SVD)的潜语意分析(LSA).基于概率的潜语意分析(PLSA)这些模型都是为了解决文本分类问题,他们各自有自己的优点和缺点,其中VSM模型简单 ...
- [NLP] 文本分类之TextCNN模型原理和实现(超详细)
1. 模型原理 1.1论文 Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出Tex ...
- NLP——文本分类模型(HAN)(三)
NLP--文本分类模型(HAN)(三) 1.引入 1. NLP--文本分类模型(一) 2. NLP--文本分类模型(二) 在之前的文章中,我们介绍了基于CNN机制是如何应用于文本分类.近些年来Atte ...
- NLP --- 文本分类(基于LDA的隐语意分析训练算法详解)
上一节详细介绍了什么是LDA,详细讲解了他的原理,大家应该好好理解,如果不理解,这一节就别看了,你是看不懂的,这里我在简单的叙述LDA的算法思想: 首先我们只拥有很多篇文本和一个词典,那么我们就可以在 ...
- NLP --- 文本分类(基于概率的隐语意分析(PLSA)详解)
上一节我们详细的讲解了SVD的隐语意分析,一旦提到这个,大家脑海里应该立刻有如下的矩阵形式: 我们通过矩阵的分解对文本数据进行压缩,压缩量很可观,尤其是原始的矩阵的维度很高时压缩的更可观,因为k通常要 ...
- NLP文本分类大杀器:PET范式
作者 | 周俊贤 整理 | NewBeeNLP 之前我们分享了NLP文本分类 落地实战五大利器!,今天我们以两篇论文为例,来看看Pattern Exploiting Training(PET)范式,可 ...
- 【NLP文本分类算法集锦】零基础入门经典文本分类项目实战(附代码+数据集)
前言 大家好,我是阿光. 本专栏整理了<NLP文本分类算法集锦>,内包含了各种常见的中英文文本分类算法,以及常见的NLP任务:情感分析.新闻分类以及谣言检测等. 文本分类是NLP的必备入门 ...
- 【NLP】fastText词向量与文本分类工具
一.简介 fastText 是 Facebook 于2016年开源的一个词向量训练与文本分类工具,其典型应用场景是"无监督的词向量学习"和"有监督的文本分类". ...
最新文章
- 写给 Android 应用工程师的 Binder 原理剖析
- linux svn强制注释,svn强制提交时添加注释
- linux bin模式,binlog有哪些工作模式?Linux云计算运维入门
- 2020-10-27(汇编收获)
- [蓝桥杯] 连号区间数
- hdu 4983 Goffi and GCD(欧拉函数)
- php long2ip,php 中IPV6 ip2long的问题解决办法
- python千位分隔符_python – 为pandas数据帧中的整数设置千位分隔符
- 代码补全_补全股票代码位数的一百种姿势
- 数组实现UITabview的cell设置
- MacOS下SVN的使用
- SQL Server 2008 R2:error 26 开启远程连接详解
- PyTorch中常用Module和Layer的学习笔记~
- 项目管理工具Redmine各功能测试
- 8.26树状数组讲解
- jdk8 mysql安装教程_Linux系统:centos7下安装Jdk8、Tomcat8.5、MySQL5.7环境
- python之web编程
- 一次使用针式打印机打印异常问题的处理
- 一个简单的项目Java后端框架(springboot+maven包括shiro,验证码的生成与使用,异常处理,跨域处理)
- 导出excel表格并返回给前端的快捷用法(上)