自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白夜

全栈小白

  • 博客(35)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 白话马尔可夫链

1. 古板的定义  马尔可夫链因俄国数学家Andrey Andreyevich Markov得名,为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性”称作马尔可夫性质。马尔科夫链作为实际过程的统计模型具有许多应用。看完这个定义我的表情是下面这样的看过大佬的一些通俗解释的例子: 假如每天的天气是一个状态: 比如昨天是阴天, 今天是晴天,则明天...

2020-05-12 13:47:52 317

原创 SpringMvc 流程

核心组件介绍前端控制器(DisatcherServlet)处理器映射器(HandlerMapping)处理器(Handler)处理器适配器(HandlerAdapter)视图解析器(ViewResovler)组件内容简单介绍1.DispatcherServlet 是 SpringMVC统一的入口,所有的请求都通过它。DispatcherServlet 是前端控制器,配置在web.xml文件中。2.Handler的声明方式有以下几种:Controller接口,HttpRequestHand

2021-06-17 16:23:27 183 1

原创 RabbitMQ work quene 模式

直连模式的缺点当生产者生产消息过快,消费者消费过慢的情况下,会造成消息的大量堆积。因此这个时候就可以使用work模型:让多个消费者绑定到一个队列,共同消费队列中的消息。队列的消息一旦消费就不会存在,所以任务也是不会被重复执行的。角色:P: 生产者:任务的发布者C1: 消费者1,领取任务并且完成任务,假设完成速度较慢C2: 消费者2:领取任务并且完成任务,假设完成速度快。创建提供者package com.wang.rabbitmq.work;import com.rabbitmq.cli

2021-03-19 14:18:06 205

原创 RabbitMQ的核心组成部分

RabbitMQ的核心组成部分交换机(Exchange)一定是要有的,如果没写的话,则是会使用默认的交换机核心概念Server: 又被称为Broker,接受客户端的连接,实现AMQP服务。就是我们自己安装的rabbitmq-serverConnection: 连接,应用程序与Broker的网络连接(使用的是TCP/IP连接)**Channel:**网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道,每个通道Channel代表一个会话任务。Message:消

2021-03-17 10:00:46 895

原创 什么是AMQP

AMQP 是什么AMQP全称:Advanced Message Queuing Protocol(高级消息队列协议)。是应用层协议的一个开发标准,为面向消息的中间件设计。AMQP生产者流转过程AMQP 消费者流转过程

2021-03-17 09:05:15 217

原创 消息的分发策略

消息的分发策略MQ消息队列有下面几个角色1.生产者2.存储消息3.消费者生产者生成消息后,MQ进行存储,消费者是如何获取消息的呢?一般获取消息数据的方式是推(push)和拉(pull)两种方式,典型的git就是有推拉机制,我们发送的http请求就是一种典型的拉去数据库数据返回的过程。而消息队列MQ是一种推送的过程。场景分析消息分发策略的机制和对比轮询分发在轮询分发的场景下,交换机并不知道后面消费者的消费能力,就两个消费者一人一个这样轮询缺点:不同消费者处理任务的时间是不一样的,这样会

2021-03-16 10:57:13 1121 1

原创 消息队列协议

什么是协议我们知道消息中间件负责数据的传递、存储和分发消费三个部分,数据的存储和分发过程是要遵循协议的,我们是采用底层的TCP/IP协议还是UDP协议还是要自己构建,我们把这种规范称为协议网络协议的三要素语法。语法是用户数据与控制信息的结构和格式,以及数据出现的顺序。语义,语义是解释控制信息每个部分的意义。他规定了需要发出何种控制信息以及完成的动作与做出的响应。时序,时序是对事件发生顺序的详细说明。人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。举个例

2021-03-16 10:09:40 392

原创 基于消息中间件的分布式系统的架构

基于消息中间件的分布式系统的架构消息中间件的考察点是否有通讯能力是否高可用是否支持跨平台是否有持久化…从上图可以看出,消息的中间件是1.利用可靠的消息传递机制进行系统和系统之间的直接通讯 。2.通过提供消息传递和消息的排队机制,他可以在分布式系统环境下扩展进程间的通讯。消息中间件应用的场景跨系统的数据传递高并发的流量削峰数据的分发和异步处理大数据分析和传递分布式事务常见的消息中间件ActiveMQ、RabbitMQ、Kafka、RocketMQ消息中间件的

2021-03-16 09:21:53 308 1

原创 LeetCode-1576. 替换所有的问号

题目描述给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s,请你将所有的 ‘?’ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 ‘?’ 字符。题目测试用例保证 除 ‘?’ 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。示例示例1:输入:s = “?zs”输出:“azs”解释:该示例共有 25 种解决方案,从 “azs”

2021-03-01 10:24:24 174

原创 LeetCode-682. 棒球比赛

题目描述你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D” - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的

2021-02-27 22:24:13 96

原创 轻松理解消息队列

什么是消息队列(Message Queue)消息队列是一种进程间或者线程间的异步通信方式,使用消息队列,消息生产者在产生消息后,会把消息保存在消息队列中,直到消息消费者把它取走。使用消息队列消息发送者和接收者不需要同时和消息队列交互。而且使用消息队列,可以实现服务的解耦,提高系统的可靠性和扩展性。为什么使用消息队列解耦异步削峰上面三个是十分核心的功能,除此之外还有一些别的场景。接下来详细介绍上面三个主要场景。解耦看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果

2021-02-26 15:49:16 154

原创 LeetCode-977. 有序数组的平方

题目描述给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例1输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例2输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]个人解题思路1.重新创建一个数组,用来保存原数组的平方值,然后使用sort()函数排

2021-02-26 09:11:45 118 1

原创 Java数组

数组介绍数组是一种数据结构, 用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。例如, 如果 a 是一个整型数组, a[i] 就是数组中下标为 i 的整数。数组初始化初始化有三种方式int[] is= new int[3]; is[0]=1; is[1]=2; is[2]=3;int[] is2= {1,2,3};int[] is3= new int[]{1,2,3};数组用法toString(把数组输出到字符串,主要是用于查看数组信息)用法 i

2021-02-25 15:13:51 57

原创 LeetCode-数组-867.转置矩阵

题目描述给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]个人解题思路创建一个新的数组,大小是根据原数组来定,然后进行转置赋值。代码cla

2021-02-25 14:16:03 103

原创 LeetCode-堆栈-832.翻转图像

题目描述给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例1输入:[[1,1,0],[1,0,1],[0,0,0]]输出:[[1,0,0],[0,1,0],[1,1,1]]解释:首先翻转每一行: [[0,1,1],[1,0

2021-02-25 11:38:52 78

原创 堆栈

堆栈介绍堆栈(stack),是数据结构的一种,特点是先进后出、后进先出。他也是一种操作受限的线性表。在使用的时候,可以把它想象为家里面的盘子,洗刷过后放在最上面的都是要先拿出来使用的。也就是说最后放进去的要先拿出来。然后再依次拿里面内部的。这就是后进先出的原则。栈是线性的,虽然拥有两个端,但是只允许在一个端进行操作进和出。这也是为什么栈操作受限的原因。栈的操作:只有两种:push和pop ,push(压入) 表示往栈中插入数据,也叫入栈。 pop(弹出) 表示从栈中删除数据。也叫做出栈。栈的实

2021-02-25 11:26:24 210

原创 根据姓名猜性别

根据中文姓名猜测其性别1.安装方法pip install ngender2.使用方法1.在命令行使用$ ng 赵本山 宋丹丹name: 赵本山 => gender: male, probability: 0.9836229687547046name: 宋丹丹 => gender: female, probability: 0.97594861289499072.在Python程序种使用>>> import ngender>>>

2020-11-03 20:52:35 719

原创 编写优雅代码的七条建议(python 版)

编程是一种与计算机系统通信的语言。交流就是与某人分享思想。二进制语言是计算机的最核心的语言。但是在前端,我们有很多种语言。这些语言使用解释器将前端代码转换为二进制代码。基本上,系统对一行代码执行大量内部操作。为了与系统通信,我们需要给出清晰易读的命令。这对系统和代码查看器都很有帮助。一些程序员最初编写的代码行很高,这会影响程序的执行时间和编译时间。作为一个程序员必须知道一种特定编程语言的所有快捷方法和内置函数。使用快捷方式和内置函数来减少代码行和减少执行时间。程序员编写的程序必须是可读的。对新的程序员和.

2020-10-28 16:22:27 276

转载 python 之while详解

一、while 简介Python 的循环有 for 和 while 两种,while 为条件控制循环,通过条件表达式控制循环结束。流程图如下:Python 中 while 语句的格式如下:while <条件表达式>: 【语句块】释:当 while 的 <条件表达式>为 True 时运行【语句块】,【语句块】运行结束后,再次进入 <条件表达式>进行 判断,如果 <条件表达式>结果为 True 则再次运行【语句块】, 以此循环直到

2020-06-18 21:33:50 45480

原创 浅谈深度学习过拟合和解决办法

什么是过拟合所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。举个例子:现在我训练一个模型来识别狗狗,训练的数据恰好全是二哈的图片,结果多次迭代后把二哈的全部特点都识别成狗狗特有的了(比如二哈的颜色、和爱拆家的特点等)。这样如果我去识别一只金毛的时候则无法识别。这就是过拟合。 简单的一句话就是机器模型学到了太多不该学到的特点。过拟合的原因使用的模型比较复杂有噪声存在数据量有限过拟合

2020-06-17 22:31:04 1694

原创 小样本处理思路

需要解决的问题现在有24类数据,对24类问题进行分类,每类的数据量只有10条数据。根据这些数据进行构建模型。解决思路1.直接构建分类器进行文本分类结果:可想而知,由于数据量巨少,所以准确率只有1%2.分类加实体提取相结合主要思路:首先对24类数据进行二分类,因为我处理的问题可以归为两个大类,首先对两个大类的数据进行标签备注,然后去除相关实体之后可以保证二分类效果更好。在没有对实体进行去除的情况下,二分类的**准确率为50%**左右实体提取方面,由于我的数据不是量比较少和实体不是通

2020-06-16 10:08:48 1338

原创 leetcode之罗马数字转整数解题思路(python)

问题描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 X

2020-06-09 17:23:19 146

原创 leetcode之回文数解题思路(Python实现)

问题描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?解题思路1.转换为字符串进行对比class

2020-06-08 21:02:12 159

原创 终于有人讲清楚准确率(accuracy)、召唤率(recall)和精确率(precision)的关系了

一、概述召回率、准确率、精确率、F值的作用在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。二、定义首先给出一个大家经常见到的图:详细定义准确率(accuracy)=(TP+TN)/(TP+FN+FP+TN)通俗解释: 在所有样本中,预测正确的概率精确率(precision)=TP/(TP+FP)通俗解释:你认为的正样本中,有多少是真的正确的概率召回率(recall)=TP/(TP+FN)通俗解释:正样本中有多少是被找了出来P和R指标有时候会出现

2020-06-08 16:59:05 2391

原创 Leetcode之两数相加解题思路

问题描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路####1.暴力破解 双重for循环class Solution(obje

2020-06-06 16:51:39 137

原创 Django-rest-framework之——认证

一、生成项目及项目环境使用开发工具: Pycharm开发环境: asgiref 3.2.7 Django 3.0.7 django-cors-headers 3.3.0 django-rest-framework 0.1.0 djangorestframework 3.11.0 pip 19.0.3 pytz 2020.1 setuptools

2020-06-05 11:29:35 235

原创 py2neo详细介绍第一章

1.1 节点和关系的对象官网的例子,创建两个节点,并为两个节点创建关系。from py2neo.data import Node, Relationshipa = Node("Person", name="Alice")b = Node("Person", name="Bob")ab = Relationship(a, "KNOWS", b)print(ab)# 结果为 (Alice)-[:KNOWS {}]->(Bob)可以知道创建两个标签为"Person"的节点,并且设置属性na

2020-06-02 17:02:15 709

原创 python字典详细介绍

字典的用途  字典是Python提供的一种常用的数据结构,它用于存放具有映射关系的数据。 字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如下图所示:注意:key是十分关键的数据,而且访问value的时候需要通过key进行访问,因此字典的key不允许重复。创建和使用字典使用dict函数创建可以使用函数 dict 从其他映射或键值对序列创建字典ite

2020-05-24 21:18:46 11889 1

原创 python 赋值、浅拷贝和深拷贝的区别

一、python的三种赋值方式直接赋值浅拷贝(copy)深拷贝(deepcopy)直接赋值直接赋值,就是对象的引用。(相当于给原来的对象起个别名),比如有个人叫李大壮,外号叫小李,对象的引用就是类似,虽然换个名字,但是两个名字指的是同一个人。接下来用代码直观的解释a=[1,2,[3,4],5]b=aprint(b)# 输出结果为 [1,2,[3,4],5]浅拷贝浅拷贝,拷贝的是父对象,不会拷贝到内部的子对象。(单从一个浅字就可以看出他拷贝的东西不深,可以理解为只拷贝一层)

2020-05-22 15:15:24 272

原创 python列表常见用法

python列表概述在了解python列表之前,我们先来简单的了解一下python的序列和数据结构。python数据结构基本概念数据结构是以某种方式组合起来的数据元素集合数据结构的家庭成员列表list元组tuple字典dict集合set列表List的特征列表中的每个元素都可变的,意味着可以对每个元素进行修改和删除列表是有序的,每个元素的位置是确定的,可以用索引去访问每个元素列表中的元素可以是Python中的任何对象可以为任意对象就意味着元素可以是字符串

2020-05-21 16:21:19 196

原创 初窥语义搜索

什么是语义搜索万维网之父Tim Berners-Lee的解释是语义搜索的本质是通过数学来拜托当今搜索中使用的猜测和近似,并为词语的含义以及它们如何关联到我们在搜索引擎输入框中所找的东西引进一种清晰的理解方式。这个介绍是看不太懂的,我就简单的说一下我的理解:字面意思理解“语义”就是不单单看搜索的本质,我们平常的搜索用的一般都是关键字搜索,搜索内容也都是包含要搜的内容。语义搜索则是透过现象看本质,举个简单的例子:我们搜索“梦字去掉林”,语义搜索则是直接出现“夕”,不会去包含我们搜索内容。语义搜索试

2020-05-18 17:23:14 241

原创 js函数声明和函数表达式

在js中函数有两种表达方式。1 函数声明 2 函数表达式函数声明 function sayname(){alert("li lei");}函数表达式var sayname=function(){alert("lilei");}函数声明会进行函数提升,但是函数表达式不能。函数提升比变量提升优先级要高。这是一篇比较好的文章...

2018-03-28 22:04:17 268

原创 javascript高级程序学习日记3

1. js变量要区分大小写。比如test和Test代表的是不同变量2.标识符:包括变量名,函数名,属性名字,或者函数的参数。标识符的规格要求:1.必须要以字母开头(不论大小写)、美元符号$、下划线。比如:Test test  _test $test都是合法的标识符。2.后面的字符则可以是字母,数字,美元符号,下划线等。  在书写标识符的时候最好按照驼峰式规则来命名。(第一个字母和单词首字母大写,比...

2018-03-26 18:51:57 133

原创 javascript 高级程序设计解读

1. 在html中使用javascript向html内部插入javascript的主要方法就是使用&lt;script&gt;元素使用&lt;script&gt;的方式有两种,直接在页面里面包含和从外部使用在内部使用时只需要在&lt;script&gt;元素中指定type属性  需要注意的是在使用&lt;script&gt;元素的时候不能出现&lt;/script&gt;的字符串,当浏览器遇到这个...

2018-03-24 17:31:01 184

原创 js基础知识

javascript基本数据类型有 string number boolean undefined null复杂数据类型 objectjs变量是松散型的, 可以用typeof来检测数据类型   typeof  123     //Numbertypeof 'abc'  //stringtypeof true   //booleantypeof undefined //undefinedtypeof...

2018-03-24 15:35:59 93

zh_core_web_sm-2.0.3.tar.gz

由于官网并没有中文包,有大佬搞了一份中文的包,可以用来对中文进行处理,大家在下载之后记得导入,导入之后才可以使用

2020-05-18

en_core_web_sm-2.2.5.tar.gz

官网下载不了,所以上传有利大家,下载之后 记得使用 pip install 命令安装,单单下载之后没有用

2020-05-18

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

TA关注的人

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