自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_22441151的博客

临渊羡鱼,不若退而结网

  • 博客(40)
  • 收藏
  • 关注

原创 机器阅读理解笔记之glove词向量与attentive reader&impatient reader和bi-DAF

glove词向量模型词向量的表示可以分成两类:基于统计方法 共现矩阵、svd基于语言模型 神经网络语言模型,word2vector,glove,elmo word2vector中的skip-gram模型是利用类似于自动编码的器网络以中心词的one-hot表示作为输入来预测这个中心词环境中某一个词的one-hot表示,即先将中心词one-hot表示编码然后解码成环境中某个词的one-hot表示(多分类模型,损失函数用交叉熵)。CBOW是反过来的,分别用环境中的每一个词去预测中心词。尽管word2

2020-11-12 18:14:22 378

原创 简明的jieba中文分词教程

简介jieba是一种中文分词工具,比较好用。获取链接支持三种分词模式:精确模式全模式索索引擎模式paddle模式(需要使用 飞浆)主要功能jieba.cut() 方法接受三个输入参数:需要分词的字符串;cut_all参数控制是否使用全模式;HMM控制是否使用HMM模型,默认Truejieba_cut_for_search() 方法接受两个参数:需要分词的字符串;HMM;该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细jieba.cut() 和 jieba_cut_for_sea

2020-11-09 22:45:50 422

原创 机器阅读理解的简要介绍---以百度dureader和斯坦福SQuAD为例(一)

什么是机器阅读?QA问题的一个子集。通过交互从书面文字中提取与构造文章语义的过程。机器阅读理解常见的任务完形填空从原文中去除若干词,需要模型填入正确的单词或者短语多项选择模型需要从给定的若干选项中选出正确的答案答案抽取答案限定为文本中某一句,需要模型在文本中标注正确答案的起始和终止位置自由回答模型根据文本数据生成回答机器阅读任务中的数据集常见的数据集有百度知道的 DuReader 数据集 和 斯坦福大学的SQuAD数据集。DuReader 数据集数据来源问题和文档均来

2020-11-06 17:21:15 497

原创 DuReader数据集,文本提取、分词等简单处理

import jsonimport pandas as pdimport jiebaimport redata_path = '../datas/dureader_robust-data/train.json'with open(data_path,'r',encoding='utf-8') as f: data = json.load(f)print(data.keys())dict_keys(['data'])print(data['data'][0].keys())

2020-11-06 17:16:49 963 1

原创 week2

import re # 正则化import pandas as pdfrom collections import defaultdict # 计算词频from time import timeimport spacy # 用来预处理import logging # 设置日志用来监控gensimlogging.basicConfig(format="%(levelname)s - %(asctime)s: %(message)s",datefmt='%H:%M:%S',level=lo

2020-11-04 21:22:31 414

原创 dec-pca

背景解决过拟合的问题除了正则化和添加数据之外,降维是最好的方法。降维的思路来源于维度灾难,简单地例子n维的球的体积:CRnCR^nCRnn维球体的体积与边长为2R2R2R的超立方体的比值:lim⁡n→0CRn2nRn=0\lim\limits_{n\rightarrow0}\frac{CR^n}{2^nR^n}=0n→0lim​2nRnCRn​=0所谓的维度灾难,就是在高维数据中,主要样本都分布在立方体的边缘,也就是基本分布在外壳上,所以数据更加洗漱。降维算法的分类:直接降维 :特

2020-11-02 20:01:32 217 2

原创 朴素贝叶斯的理解

最近在学习贝叶斯分类器,看着公式头大,记一下自己的理解。在讲贝叶斯之前,要把条件概率公式和全概率公式简单回顾一下。条件概率条件概率本身没有什么需要讲的,但是它有一个很常用的变形,得到概率的乘法公式:概率的乘法公式:一个事件发生的概率等于造成这件事发生的所有事件概率的乘积,如果甲和乙同时发生,那么就让其中一个发生,另一件随后发生,这样两件事就同时发生了。下面写出概率乘法公式的n个事件的形式:每个发生的事件,都要成为下一个事件发生的条件之一。全概率公式全概率公式:例如一个事情的结果

2020-10-30 18:59:55 211 1

原创 动态规划超详细长文

动态规划本文搬运自天池leetcode刷题组对学习,仅用于个人学习,笔记。附上以前写的三篇day1day2day3后面补,待续!!!

2020-08-23 23:17:26 259

原创 分值算法(三)

实现归并排序def merge_sort(nums) n = len(nums) if n <= 1: return nums mid = n //2 left_li = merge_sort(nums[:mid]) # 嵌套递归,且上一级函数的执行需要下一级函数的返回值 right_li = merge_sort(nums[mid:]) left_pointer,right_pointer = 0,0 result =

2020-08-23 22:32:23 297

原创 分治算法(二)

1 实现归并排序def merge_sort(nums): n = len(nums) mid = n // 2 if n <= 1: return nums # 分 left_li =merge_sort(nums[:mid]) right_li = merge_sort(nums[mid:]) # 治 left_pointer,right_pointer = 0,0 result = [] while left_pointer < len(left_li) an

2020-08-21 23:14:06 121

原创 数据结构与算法之分治思想

分治1. 主要思想分值算法的主要思想是将一个规模很大的问题化简为n个规模较小的问题,这些子问题虽然独立而不同,但是问题的本质是一致的,从而达到分而治之的目的。2. 分值算法的步骤分:递归的将问题分解为各个子问题(性质相同,相互独立的子问题)治:将这些规模更小的问题逐个击破合:将已解决的子问题逐层合并,最终得出原问题leetcode 169.多数元素给定一个大小为n的数组,找到其中的众数,众数是指在数组中出现次数大于 n/2 的元素def majorityelement(self,num

2020-08-19 22:56:49 203

原创 树(二)之二叉搜索树

class Node(object): def __init__(self,item,left=None,right=None): self._item = item self._left = left self._right = rightclass binary_search_tree(object): def __init__(self,root=None): self._root = root

2020-08-15 23:48:54 69

原创 刷题day6

1 二叉树的最大深度一般来说涉及二叉树的题目都是使用递归。class Node(object): def __init__(self,node): self.elem =node self.left = None self.right = Noneclass solution(object): def maxdeepth(self,root): if root == None: return 0 else: return 1 + max(max(self.maxde

2020-08-09 21:50:02 111

原创 数据结构与算法之树(一)

1. 树的概念树(tree)是一种抽象的数据结构,用来模拟具有树状结构性质的的数据集和。它是由n个有限节点组成具有层次关系的集合。每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;下面是霍夫曼树的结构图1.2 树的术语节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一棵树中,最大的节点的度称为树的度;叶节点或终端节点:度为零的节点;父亲节点或父节点:若一个节点含有子节点,则这个节

2020-08-09 18:52:14 133

原创 数据结构与算法学习 day 6

1.二分查找二分查找类似于查字典,先翻译版,判断目标在那一半,然后再翻一半,再进行判断。缺点是要求待查表为有序表,首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。最坏时间复杂度 0(logN)def binary_search(a

2020-08-08 23:26:21 86

原创 刷题 day5

1.矩阵搜索(1)编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行中的整数从左到右按升序排列。思路:矩阵中的元素的全部按照顺序排列的,所以如果展成排序的列表,使用二分查找即可。其中:row = idx // nclo = idx % ndef search_matrix(matrix,target): m = len(matrix) if m == 0: return False n = len(mat

2020-08-06 00:32:00 149

原创 基础算法之排序(一)

1 冒泡排序按照一个列表中从左到右,依次的将list[i] 和list[i+1]进行比较,将大的数放到右边,直至最大数被排到最大的位置。将上述循环执行直到所有数都已经正确的排序def bubble_sort(alist): n = len(alist) for j in range(n-1):#这里的j表示已经有j个数已经排好了 count = 0 for i in range(n-1-j):#每排好一个数,需要比较的数就少一个 if alist[i] > alist[i+1]

2020-08-05 19:27:04 120

原创 预训练模型BERT简单介绍

1.BERT模型BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。1.1 BERT的模型结构BERT模型进一步增加词向量模型泛化能力,充分描述字符级、词级、句子

2020-08-05 00:08:40 2781

原创 基于深度学习的文本分类

学习内容学习word2vec学习textcnn、textrnn学习使用HAN网络结构完成文本分类1 学习Wordvec前面写了使用tf-idf提取特征,然后使用xgb分类的方法,可以完成不错的准确率,但是one-hot编码没有语义信息,且稀疏性问题严重,浪费大量的计算资源。寻找一种既能包含语义信息,有能压缩词向量维度的方法。因此引入了Wordvec。word2vec模型背后的基本思想是对出现在上下文环境里的词进行预测。对于每一条输入文本,我们选取一个上下文窗口和一个中心词,并基于这个中心词去

2020-07-31 22:29:28 1505

原创 动态规划day3

1.最大子序列和给定一个数组nums,找到一个具有最大和的连续子序列(子数组最少包含一个元素),返回最大和。转移方程f[i]--------->第i个数的和f[i] = max(f[i-1] + nums[i],nums[i])def max_array(nums): for i in range(1,len(nums)): nums[i] = nums[i] + max(nums[i-1],0) return max(nums)2. 买卖股票(2)假设一组数据nums,不

2020-07-29 17:56:17 108

原创 动态规划day2

1.爬楼梯问题有一个n级楼梯,每次可以上1级或者2级,有多少种方法登顶?dp[i]------->第i级有多少种方法转移方程每次可以上1级或者两级,站在第n级有两种方法,走到。 1)从n-2过里 2)从n-1过来即 dp[i] = dp[i-1]+dp[i-2]边界条件num1------------->1种num2------------->2种 从num1 和 num0 虽然0不存在,但是作为边界需要填1num3------------->3种

2020-07-27 23:03:21 101

原创 FastText原理与文本分类实战

1.FastText原理1.1 fasttext简介fasttext是一个快速文本分类的算法,有几个优点:fastText 在保持精确度的条件下加快了训练和测试的速度fastText 不需要预先训练好的词向量,fasttext可以自己训练词向量fastText 使用了层级softmax和字符级N-gram1.2 fasttext 的网络模型结构fasttext模型与word2vec中的CBOW很相似,不同之处是fastText预测标签而CBOW预测的是中间词,即模型架构类似但是模型

2020-07-27 21:11:09 329

原创 使用gensim学习word2vector

1.gensim安装gensim是很好用的Python的NLP包,目前只学了使用word2vector,还有很多API需要去探索!pip install gensim即可完成安装from gensim.models import word2vector执行这一行命令,如果不报错即安装成功!2.gensim.word2vector API概述在gensim中,word2vec 相关的API都在包gensim.models.word2vec中。和算法有关的参数都在类gensim.models

2020-07-27 15:23:43 366

原创 os.path/pathlib的应用总结

1.os.path/pathlib# 获得项目根目录root = pathlib.Path(os.path.abspath(__file__)).parent.parentos.path.abspath(__file__) # 作用: 获取当前脚本的完整路径# 只有当在脚本中执行的时候,os.path.abspath(__file__)才会起作用获取上级目录# os.path 写法import os ptrh = os.path.dirname(os.path.dirname(os

2020-07-27 14:50:50 471

原创 动态规划day1

1.抢劫问题职业罪犯打算洗劫一条街道,每一个房子中都有不同的钱数,但是不能抢劫相邻的房子,求解可以抢到的最多钱数。钱 : 1 2 3 4 5 6抢: 1 2 4 6 9 12不: 0 1 2 4 6 9数组:f[i][j] 某一间房子抢不抢,i:房间编号 j=0,1不抢/抢转移方程:y(i) = n(n-1)+a(i)n(i)=max[y(n-1),n(n-1)]def rob(self,n

2020-07-26 23:22:03 102

原创 动态规划基础简介

磨人的动态规划准备秋招,从数据结构开始!看了一大堆视频、教程都没搞懂,没办法回归本源吧!我发现了一本书,我觉得讲的不错。你也看得懂的python算法书下边就是自己的笔记动态规划算法是将要解决的问题拆分成一系列相互交叠的子问题,通过推导关系定义子问题的求解策略,并随时记录子问题的解,最终获得原始解,避免子相互交叠子问题的重复求解(这里骂的是递归)动态规划的三要素(中间结果保存数组)#擅自加上的最优子结构状态转移方程边界条件(计算顺序) # 同1最优子结构每个阶段最优状态,可以从之

2020-07-26 21:38:16 77

原创 Tf-idfVectorizer 与CountVectorizer详解

Tf-idfVectorizer 与CountVectorizer详解1 机器学习文本分类机器学习是对能通过经验自动改进的计算机算法的研究。机器学习通过历史数据训练出模型对应于人类对经验进行归纳的过程,机器学习利用模型对新数据进行预测对应于人类利用总结的规律对新问题进行预测的过程。文本表示方法One-hotOne-hot与数据挖掘任务中的操作是一致得,每一个单词使用一个离散的向量表示,具体将每一个字、词使用一个索引(语料库vocab)表示,向量的长度的是语料库vocab中词的个数,词袋模型该

2020-07-25 22:18:57 1148

原创 task-2-数据读取与分析

import pandas as pdimport matplotlib.pyplot as plt# 误区1,pd,read_csv('直接读取会报错')train_df = pd.read_csv('./data/train_set.csv',sep='\t')train_df.head(10) label text 0 2 2967 6758 339 2021

2020-07-22 22:15:21 169

原创 新闻文本分类-赛题理解

新闻文本分类 - 赛题理解赛题介绍赛题名称 :零基础入门新闻文本分类赛题任务:赛题以自然语言处理为背景,要求选手对新闻文本进行分类,这是一个典型的字符识别问题。赛题数据赛题以匿名处理后的新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。赛题数据由以下几个部分构成:训练集20w条样本,测试集A包括5w条样本,测试集B包括5w条样

2020-07-21 19:28:04 218

原创 Task3-subword模型

task-3 subword模型之前的模型都是基于word单词作为基本单位的,但是其缺点是不能很好的解决out-of-vocabulary即单词不在词汇库里的情况,且对于单词的一些词法上的修饰(morphology)处理的也不是很好。一个自然的想法就是能够利用比word更基本的组成来建立模型,以更好的解决这些问题。Character-Level Model一种思路是将字符作为基本单元,建立Character-level model,但是由于基本单元换为字符后,相较于单词,其输入的序列更长了,使得数据更

2020-06-30 22:40:36 169

原创 Task2-GloVe原理介绍

Task2-Word Vectors and Word Senses1.skipgram、cbow回顾使用skipgram和cbow两种模型进行词向量预训练,我们会发现Word2Vec模型是一个超级大的神经网络(权重矩阵规模非常大)。举个栗子,我们拥有10000个单词的词汇表,我们如果想嵌入200维的词向量,那么我们的输入-隐层权重矩阵和隐层-输出层的权重矩阵都会有 10000 x 200 = 200万个权重,在如此庞大的神经网络中进行梯度下降是相当慢的。更糟糕的是,你需要大量的训练数据来调整这些权重并

2020-06-27 23:08:27 150

原创 自然语言处理(NLP)介绍和词向量

Task 1:NLP introduction and word vectors1 什么是NLP?自然语言处理(natural language processing)简称NLP。人类比猩猩更加聪明,是因为人们可以通过语言进行交互,对语言的理解和思考,展现了人类语言的复杂和高效。每个人对于语言都可以有自己的理解,因此语言不光具有信息传递的功能,还可以通过语言来影响其他人。当今社会,网络速度不断更新迭代,5G已经油然而生,相对于人类语言,我们使用NLP技术可以高速学习构建更强大的处理能力。简单点说:N

2020-06-24 23:20:15 1144

原创 WIN10环境下使用Anaconda 搭建GPU环境

WIN10环境下使用Anaconda 搭建GPU环境1.PyTorch1.1确定 pytorch、cuda、cudnn版本的对应关系如果安装的版本不匹配,安装后会出现各种各样的问题。本渣踩的坑----安装完成之后,anaconda navigator显示环境已经搭建好,pycharm和jupyter notebook中也能添加pytorch-gpu的编译器,但是在import torch时报错!!OSError: [WinError 126] 找不到指定的模块 一定要匹配!一定要匹配!一定

2020-06-03 23:26:37 2769

原创 Task-5 模型集成

Task-5 街景字符识别内容后补

2020-06-03 10:55:34 170

原创 模型训练与验证-Task4

模型训练与验证-Task41 构造验证集在机器学习模型(特别是深度学习模型)的训练过程中,模型是非常容易过拟合的。深度学习模型在不断的训练过程中训练误差会逐渐降低,但测试误差的走势则不一定。在模型的训练过程中,模型只能利用训练数据来进行训练,模型并不能接触到测试集上的样本。因此模型如果将训练集学的过好,模型就会记住训练样本的细节,导致模型在测试集的泛化效果较差,这种现象称为过拟合(Overfitting)。与过拟合相对应的是欠拟合(Underfitting),即模型在训练集上的拟合效果较差。导致模型

2020-05-30 22:53:53 213

原创 Task3-字符识别模型(卷积神经网络)

Task3-字符识别模型(卷积神经网络)1 卷积神经网络原理定义卷积神经网络由一个或多个卷积层、池化层以及全连接层等组成。与其他深度学习结构相比,卷积神经网络在图像等方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他浅层或深度神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7EmixS7C-1590503988383)(file:///F:/1-%E4%BA%BA

2020-05-26 22:40:14 1427

原创 Task-2 数据读取与数据扩增

Task-2 数据读取与数据扩增1.数据集的读取1.1图像的读取PillowPillow是Python图像处理函式库(PIL)的一个分支。Pillow提供了常见的图像读取和处理的操作,而且可以与ipython notebook无缝集成,是应用比较广泛的库。Pillow的官方文档 https://pillow.readthedocs.io/en/stable/OpenCVOpenCV是一个跨平台的计算机视觉库,最早由Intel开源得来。OpenCV发展的非常早,拥有众多的计算机视觉、数字

2020-05-23 22:09:15 131

原创 解决PyTorch安装好以后jupyter notebook中没有编译器,并任意改变jupyter notebook工作目录(踩坑1)

安装过程1. 打开Anaconda Prompt2.激活PyTorch环境activate *pytorch-gpu* #星号部分是安装的pytorch的环境名称3.安装conda install nb_conda4.重新激活PyTorch环境5.任意改变工作目录cd /d *F:\Python_test* #星号部分是要设置的工作路径jupyter notebook这种方法可以随意修改目录!但是每次编辑之前都要重复步骤5....

2020-05-22 20:24:22 671

原创 Python图像处理库PIL的基本概念

Python图像处理库PIL的基本概念PIL中有一下几个基本概念:通道(bands),模式(mode),尺寸(size),坐标系(coordinate system),信息(information),调色板(palette)和滤波器(filters).1.通道每张图片都由一个或者多个数据通道组成,PIL允许在单张图片中合成相同维数和深度的多个通道。使用getband() 方法可以获取图片的通道数量和名称 ,返回值是一个字符串元组,元组区别于列表,列表可以编辑。import PIL.Image as

2020-05-21 19:00:25 559

原创 Datawhale 零基础入门CV赛事

Task1 赛题理解1.赛题理解1.1赛题数据1.2 数据标签1.3赛题难点1.4解题思路1.赛题理解赛题名称:零基础入门cv之街道字符识别赛题任务:赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。为了简化赛题难度,赛题数据采用公开数据集SVHN,因此可以选择很多相应的paper作为思路参考。1.1赛题数据赛题以街道字符为为赛题数据,数据集报名后可见并可下载,该数据来自收集的SVHN街道字符,并进行了匿名采样处理。1.2 数据标签Field

2020-05-20 19:59:21 194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除