![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NLP
文章平均质量分 78
rebirth_2020
这个作者很懒,什么都没留下…
展开
-
cnews_赛题分析
新闻文本分类本赛题为新闻文本,共有14个类别,属于少量类别的多分类。训练集共20w条,测试集分A/B,分别为5w条。赛题文本token化,防止作弊。赛题目标既然文本已经token化,那么便不可以在预处理方面做多少文章了。主要目的在于网络和超参的选择上。数据简单分析为了方便查看和更新,写在了github中~https://github.com/mathCrazyy/datawhale_cnews/blob/master/ana_cnews_data.ipynb评价标准赛题使用f1作为评价指标。原创 2020-07-21 22:15:17 · 405 阅读 · 0 评论 -
ELMO,GPT,BERT初步学习
https://lilianweng.github.io/lil-log/2019/01/31/generalized-language-models.html在2018年,诸如GPU, BERT等大体积的语言模型在各种任务上达到了比较好的效果。而我们在训练语言模型的过程中,也不同于图像的预训练模型,NLP任务的预训练不需要带标签的数据。最刚开始的语言模型(word2vec, doc)训练思路是基于词共现的,而不会更具特定的上下文做改变。这种方式的embedding在一定程度上会有效,但是其提升程度是有原创 2020-07-04 10:58:37 · 378 阅读 · 0 评论 -
fastext
fastextfastext可以用于文本分类。fasttext其实是在word2vec的基础上,修改了底层的特征表示。引入了ngram以及BPE。fasttext使用x1,x2…xn表示一个ngram向量,原本使用一个向量可以表示一个词,这里需要使用多个向量来表示一个词;然后再使用全部的ngram去预测指定的类别。引入了层级softmax,在做对很多个类别的分类预测时,由于频率更高的类别,具有更浅的深度,所以时间复杂度更低。几个概念BPE(byte pair encoder)字节对编码,可以原创 2020-06-30 23:31:28 · 534 阅读 · 0 评论 -
word2vec和glove
global vector for word representation(Glove)两类模型: count-based,并依赖于因式分解,如LSA,HAL,等,这些方法没有利用全局统计信息,仅仅是初级的单词相似度,另一种方法是 shallow window-based,如skip-gram和CBOW的模型,通过在上下文中预测来进行词向量的学习。但是没有使用全局共线统计的信息。这里的损失是优化减小预测损失。glove相对于window-based模型,首先其是count-based模型,利用了原创 2020-06-27 23:04:10 · 192 阅读 · 1 评论 -
word embedding
由来在处理自然语言任务的时候,需要对文本进行表征,通常我们需要将其转为数字。在word embedding之前,我们经历了wordnet以及onehot,wordnet需要人力去维护,onehot由于每个词都互相正交,没办法计算相似度,同时也存在着维度爆炸的情况。故而出现了word embedding。输入与输出为了得到word embedding,我们通常会使用word2vec工具来进行训练得到。当输入是英文类的字符时,可能需要对文本做适当的预处理(单复数等,不是特别确定),当中文时,需要对字符做分原创 2020-06-24 23:28:59 · 200 阅读 · 0 评论 -
文本分类_acc分数异常
在照搬别人的参数时候,nn.LSMT中有一个参数,batch_first,对它设置了True,于是分数直接下降了70个点。查阅过之后,发现是nn.LSTM中的batch_first是指它接受输入时,会将第一维的位置,认为是batch。为了验证写了一个小例子。为了方便观察,设置了batch为4,句子最长长度为11读入数据file_path="E:/study_series/2020_3_dat...原创 2020-03-21 23:45:31 · 265 阅读 · 0 评论 -
文本分类_引入embedding
分类时为了能够有更好的文本表征,使用预训练的embedding替换之前随机的向量。获取bert embeddingfrom tensorflow.python import pywrap_tensorflowimport numpy as npreader=pywrap_tensorflow.NewCheckpointReader(ckpt_path)param_dict=reader....原创 2020-03-21 23:13:30 · 1006 阅读 · 0 评论 -
文本分类_简单的网络层
网络层处理文本class SimpleLSTMBaseline(nn.Module): def __init__(self, hidden_dim, emb_dim=300, num_linear=3): super().__init__() self.embedding=nn.Embedding(len(TEXT.vocab),emb_dim) ...原创 2020-03-21 17:31:37 · 314 阅读 · 1 评论 -
文本分类_torchtext文本预处理
在看attention的实现时,看的太费劲,在文本预处理一块缺失太多,所以专门补补。torchtext的功能训练模型之前,通常需要做的工作包括: 1. 从硬盘中读取数据到内存中2. 符号化文本,看文章中的操作,是对文本进行格式上的一些转换,清洗方面的操作3. 创建map将词汇或字符转为数字4. 将text转为整型数字list。5. 加载数据,转为需要的格式,包括context和label。6....原创 2020-03-21 17:16:58 · 1059 阅读 · 0 评论 -
文本补全
总体思路:1. 通过一段文本,获取ngram词汇组合,如果是多gram组合,分别做ngram再组合更清晰。2. 使用ngram构建一个字典树3. 输入一个字,获取下一个字的词频排序。如下为核心代码部分1. 取ngram代码:def get_ngram(line, num): temp_ngram=[] for pos in range(0, len(lin...原创 2020-03-04 12:57:12 · 849 阅读 · 0 评论 -
attention_9
作业链接;https://shimo.im/docs/KivfbK9TUHgCqg9b/参考:https://blog.csdn.net/qq_41664845/article/details/84969266LSTM虽然能够减少一定的梯度消失,优与RNN,在文本很长的情况下,LSTM也会丢失大量的信息。attention的出现解决了随着时间推移,信息丢失的问题。如下图B所示,为基...原创 2019-05-28 21:48:43 · 125 阅读 · 0 评论 -
文本预处理_词频计算_ngram
- 中文文本的预处理在处理文本时,由于存在各种不可预知的词,所以只进行我们所关心字符的处理。参考:https://www.jianshu.com/p/093ec1eeccffdef filter_word(sentence): for uchar in sentence: if(uchar>=u'\u4e00' and uchar<=u...原创 2019-05-14 21:36:12 · 1848 阅读 · 0 评论 -
beyes_svm_lda文本分类
参考:https://blog.csdn.net/u013710265/article/details/72780520- 贝叶斯简要来说,贝叶斯是在先验概率和条件概率的基础上,得到后验概率。而先验概率可能是选择了多项式,伯努利或者高斯等,由于先验概率的选择,可能会导致选择不恰当而模型分类不准确,另外贝叶斯的条件概率建立在特征之间的相互独立上,如果特征之间高度相关,则使用贝叶斯不是一个好...原创 2019-05-20 21:50:23 · 219 阅读 · 0 评论 -
tfidf_特征选择_互信息_
- tfidf原理,特征筛选参考:https://www.jianshu.com/p/9b2eb69ab735tiidf选择值更高的词作为句子的表达(作为特征),进而做分类任务或者相关度排序任务。那么值是什么值呢?tfidf其实是td与idf的操作。全称为term frequence - inverse document frequence,前者为某个单词在文档中出现的频率,后者为包含该...原创 2019-05-16 07:32:25 · 1119 阅读 · 0 评论 -
卷积神经网络_7
任务链接:https://shimo.im/docs/RFlP7snWLoQ0ejMU参考:https://blog.csdn.net/sherpahu/article/details/90484459https://blog.csdn.net/randompeople/article/details/90454173卷积的理解,就是在一组变量上,通过一个范围函数做操作,不断移动这...原创 2019-05-24 21:02:22 · 155 阅读 · 0 评论 -
分类模型_数据整理
1- make_classification构造虚拟数据集,主要通过n_samples,n_features, n_classes,weights来进行构建,后期可能会使用到n_redunant和n_informative等进行特征之间相关度的分析。X,y=datasets.make_classification( n_samples=2000, n_features=1...原创 2019-05-12 21:11:10 · 552 阅读 · 0 评论 -
神经网络基础&fasttext
作业:https://shimo.im/docs/Ger2yvth3180SEkL前馈神经网络,是由输入层,隐藏层,输出层组成。参考:https://blog.csdn.net/u010089444/article/details/52555567感知机,最少为单层的感知机,仅由输入层和输出层相链接,中间有权值。感知器类似于逻辑回归模型(可以做二分类或者多分类,逻辑回归是在线...原创 2019-05-22 21:26:35 · 591 阅读 · 0 评论 -
循环和递归神经网络_8
作业: https://shimo.im/docs/3AB1IwSkwBwZlbMY参考:https://blog.csdn.net/roger_royer/article/details/90552633#_2https://blog.csdn.net/qq_39422642/article/details/78676567RNN的结构循环神经网路阔以看作是在时间维...原创 2019-05-26 21:59:33 · 300 阅读 · 0 评论 -
word2vec学习...
第一次认真看..依然有很多看不懂,写一些当下的学习总结。参考:https://blog.csdn.net/itplus/article/details/37998797基本的网络结构是输入层+投影层+隐藏层+输出层。主要为:1. 基于ngram和 2. 基于神经网络的语言模型以及在神经网络的语言模型上改进为 3. CBOW和SKIP-gram的语言模型。基于ngram的语言模型...原创 2019-05-18 21:31:56 · 138 阅读 · 0 评论 -
BERT理论学习_10
https://mp.weixin.qq.com/s/FHDpx2cYYh9GZsa5nChi4ghttps://www.cnblogs.com/d0main/p/10165671.htmlELMO由双向LSTM作为特征获取器,最后得到了三层embedding,最底层是单词的word embedding,向上一层为单词位置的embedding,句法信息多一些;再向上也是单词位置的embed...原创 2019-05-30 20:39:54 · 323 阅读 · 0 评论 -
ngram 求句子概率(平滑)
ngram平滑主要解决在当前gram下,词表中没有出现该词的情况(不能使用想当然的词频0).Sen=一个傻子走在大陆上p(sen)=p(一个|start)p(傻子|一个)p(走|一个,傻子)*p(在|傻子,走)…求p(傻子|一个)的方法为在词表中找【一个傻子】的概率(经过了log计算)但是….没有找到于是,使用这个回退系数bow(-0.4344)来...原创 2019-05-09 19:14:47 · 1779 阅读 · 0 评论