-
【指针网络】-Global Pointer NER
写在前面 该系列主要事对指针网络在NER以及关系抽取系列取得的成果进行展示,并根据大佬们的笔记总结其中的优劣以及理论分析。 老规矩,排版问题,请参考我在博客园的地址【指针网络系列1】-GlobalPointer NER - 爱吃帮帮糖 - 博客园 (cnblogs.com)GlobalPointer 在之前的工作中,我们NER采用传统的LSTM+CRF,在各个字段指标也取得不错的效果,简单字段类似学历这种f1值均在95以上,复杂一点的比如行业专业等也在90以上;最终评...…
-
交叉熵损失函数
写在前面:GitHub的这个公式调整实在是搞得有点奔溃,再博客园排版就很好,请参考我的博客园地址交叉熵 - 爱吃帮帮糖 - 博客园 (cnblogs.com)交叉熵损失函数 - Cross entropy loss function 标准形式\(\color{blue}{C=-\frac{1}{n}\sum_x{[ylna+(1-y)ln(1-a)]}}\)其中\(\color{blue}{x}\)表示样本,\(\color{blue}{y}\)表示实际的标签,\(\co...…
-
GPT1-GPT3
简介 GPT(Generative Pre-trained Transformer)系列是由OpenAI提出的非常强大的预训练语言模型,这一系列的模型可以在生成式任务中取得非常好的效果,对于一个新的任务,GTP只需要很少的数据便可以理解任务的需求并达到或接近state-of-the-art的方法。 GPT训练需要超大的训练语料以及堆叠的transformer,123系列具体情况如下: 模型 发布时间 参数量 预训练数据...…
-
BERT
Bert全称Bidirectional Encoder Representations from Transformers,再多项NLP任务中引起了轰动,其关键技术创新在于用双向Transformer模型,区别于之前从左向右和从右向左拼接,并添加了MLM的新技术。下面将详细介绍。背景 计算机视觉领域,通过对大规模数据进行网络训练,然后迁移学习进行微调适用于新的任务,去的很好的效果。近年来,这样的任务也用于许多自然语言任务。在此之前比如ELMo、GPT等。前人工作elmo ...…
-
NER谈古论今
定义命名实体识别(NER)是自然语言处理领域的核心问题之一,他的目标是为了再一段文本中识别出特定类型的字段,eg:人名、地名等。从而应用到下游任务中。标注类型常见的标注类型BIOES或者BIOS,因为NER识别的是特定的字段,这个字段的start标记为B-xx,结尾标记为E-xx或者I-xx(对应两种标注方式),中间的部分均用I-xx标记,如果出现单独的字为一个实体,那么用S-xx进行标记,其他非提取字段用O进行标注。实例如下: 我 爱 ...…
-
Transformer探索
1、什么是Transformer 《Attention is All You Need》是一篇谷歌提出的将attention思想发挥到极致的论文,这篇论文提出一个全新的模型,叫Transformer,抛弃了以往深度学习中的CNN和RNN。包括后来的Bert、GPT等都是基于此构建的,广泛的应用于NLP领域。2、Transformer结构2.1 总体结构 Transformer的结构和Attention模型一样,Transformer模型中也采用了encoder-deco...…
-
生成式模型探索
简述 工作中需要对jd职位描述生成一些具有总结性的话语,可以理解为自动文本摘要,因此尝试了如下模型,记录以下碰到的问题以及改进,话不多说,直接上干货吧~先知 由于是工作探索阶段,因此没有很好的数据,具体方式如下: 通过训练NER提取关键词(这一步怎么来的就不再介绍),关键词组成的语句作为label;Seq2seq+Attention训练方式 jieba切词,词为单元训练 训练使用 teach forcing,预测使用 Beam search encoder 和 ...…
-
Glove
早上看到了Glove,细思之下发现了解不多,于是抽空网上搬砖。Glove是何方妖孽 Glove 全称 Global Vectors for Word Representation,基于全局词频统计的词表征,是一种词嵌入方式,将高维稀疏向量表示为低维稠密向量,并且保留了词与词之间的相似性(即cos距离更近)。Glove来龙去脉 三步曲实现Glove 一步预备 根据corpus构建一个共现矩阵(Co-ocurrence Matrix)$\color{blue}{X}$,...…
-
A Neural Probabilistic Language Model
Abstract在摘要中作者提到,通过学习一个分布式的词表示来克服维数的诅咒,它允许每个训练句子向模型告知一个指数数量的语义相邻句子。该模型同时学习 (1) 每个单词的分布式表示,以及 (2) 用这些表示 表示的单词序列的概率函数。Introduction在介绍中,作者举例到,如果相对10000个词建立连续10个词得联合分布,那么可能需要得参数是$10000^{10}-1$,当对连续变量进行建模时,我们比较容易获得泛化(光滑得函数类,神经网路模型,高斯模型等),对于离散空间...…
-
文本分类
三步骤 特征工程 常用的特征主要是词袋特征,复杂的特征词性标签、名词短语和树核 特征选择 特征选择旨在删除噪音特征,常用的就是移除法 信息增益、L1正则 分类器 机器学习方面主要有逻辑回归、朴素贝叶斯、支持向量机 —– 数据稀疏性问题 深度学习和表征学习为解决数据稀疏问题 RCNN 在我们的模型中,当学习单词表示时,我们应用...…
-
信息抽取-seq2seq_DGCNN
数据类型原始数据类型{ "text": "九玄珠是在纵横中文网连载的一部小说,作者是龙马", "spo_list": [ ["九玄珠", "连载网站", "纵横中文网"], ["九玄珠", "作者", "龙马"] ]}笔者实际任务{ "text": "2、负责oa系统建设、运营及维护", "spo_list": [ ["oa系统", "链接", "建设"], ["oa系统", "链接", "运营"], ["oa系统", "链接"...…
-
seq2seq 综述
seq2seq是一种循环神经网络的变种,包括编码器和解码器两部分,可用于机器翻译、对话系统、自动摘要常见seq2seq结构seq2seq是一种重要的RNN模型,也称为Encoder-Decoder模型,可以理解为 NMN∗M* 的模型,模型包含两部分,Encoder部分编码序列的信息,将任意长度的信息编码到一个向量 cc 里,而Decoder部分通过向量 cc 将信息解码,并输出序列,常见的结构如下几种:第一种 seq2seq结构第二种 seq2seq结构第三种 seq2s...…
-
百问机器学习
一、特征工程巧妇难为无米之炊1、为什么归一化 归一化能够更快的找到迭代优化的方向,因此在实际中通过梯度下降求解的模型通常是需要归一化,eg:线性回归、逻辑回归、支持向量机、神经网络等,决策模型则不适用,eg:C4.5,决策树节点分裂主要依靠数据集D关于特征x的信息增益比,信息增益比与特征是否经过归一化是无关的。 常用的归一化方法有线性函数归一化(最大最小值归一化),零均值归一化$z=\frac{x-\mu}{标准差}$2、类别特征数据预处理 类别特征主要指性别(男女)...…
-
机器学习过拟合欠拟合
1、当遇到过拟合问题,当优化开发集和训练集的差异时,面临整体误差上升,有什么好的解决办法 过拟合,数据简单,模型复杂,开发训练分布不一致,优化数据,整体误差上升,欠拟合,模型不能拟合数据,第一:模型不适用这个数据,第二:数据量不够或者数据特征不够2、拟牛顿法比牛顿法的优点是什么 牛顿法是迭代算法,每一步都需求解目标函数的海塞矩阵(Hessian Matrix),计算比较复杂。拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这一计算过程。 ...…
-
关于 GBDT 特征编码
问题起因 在用户风险预测模型(安全审核)中,提出了特征应该用类别特征还是 one-hot 特征,针对此问题进行调研理论分析1、GBDT做为树模型对高维稀疏特征处理效果差,究其原因到底是因为什么呢?? 假设在分类场景下,某一维特征有 1000 个类别,那么采用 one-hot 编码,每一维特征就是 0 or 1,那么 GBDT 可能会错误的学习到只要某个特征为 0 或者 1 就是某个类别,这种情况下就会产生过拟合,在训练数据不充足的情况下,这种问题更严重; 同样的场景下,不采用 one...…
-
十大排序算法
1、冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。但这种改进对于提升性能来说并没有什么太大作用。算法步骤 比较相邻...…
-
code
两个list关联排序# 打包zipped = zip(sen,count)# 排序sort_zipped = sorted(zipped,key=lambda x:(x[1],x[0]),reverse=True)# 还原result = zip(*sort_zipped)sen,count = [list(x) for x in result]pandas 行列显示不全解决方式#显示所有列pd.set_option('display.max_columns', None)#显示所有行pd...…