自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Giyn

悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。

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

原创 【计算机网络自顶向下方法】—— 第一章思维导图整理

2021-06-20 15:44:27 470 1

原创 【自然语言处理入门笔记】—— 二元语法与中文分词

本章学习了语言模型,为了学习语言模型参数,标注了微型语料库,在该语料库上使用极大似然估计法估计了二元语法模型的参数,捕捉了词语二元接续的统计知识,此外尝试了平滑策略缓解数据稀疏的问题,为了搜索最大概率的分词序列,将中文分词转化为有向无环图上的最短路径问题,为了高效求解词网上的最短路,学习并实现了维特比算法。此外还有模型调整的手段。但 OOV 召回仍然是 n 元语法模型的短板。...

2021-03-06 23:22:20 711 1

原创 【自然语言处理入门笔记】—— 词典分词

此章节实现了字典树、首字散列之后二分的 BinTrie、双数组字典树、AC 自动机以及基于双数组字典树的 AC 自动机,以上数据结构还可用于关键词过滤、简繁转换和拼音转换。但目前的词典分词实现还有准确率不高、无法区分歧义和召回新词等缺点。...

2021-03-03 23:09:25 519 1

原创 在 spaCy 3.0 版本中使用自定义管道组件

最近使用 spaCy 时遇到如下问题:查询文档得知在 spaCy 3.0 版本中可以直接使用的 component 是固定的,但我需要用到 TextRank 算法的管道组件,它不在 spaCy 的固定列表中,所幸 spaCy 3.0 版本提供了用户自定义管道组件的方式:from spacy.language import [email protected]("my_component")def my_component(doc): # Do something to t

2021-02-07 17:07:30 545

原创 【自然语言处理入门笔记】—— 新手上路

此章节介绍了自然语言处理的相关知识,以及自然语言处理与人工智能、机器学习、语言学和计算机科学之间的关系,此外还介绍了自然语言处理这一学科的发展时间线,从规则系统到统计模型再到深度学习。pyhanlp 接口的调用:from pyhanlp import HanLPprint(HanLP.segment('你好,欢迎在Python中调用HanLP的API'))for term in HanLP.segment('下雨天地面积水'): print('{}\t{}'.format(term.w

2021-02-03 13:36:58 227

原创 Pyppeteer 的基本使用方法

什么是 Puppeteer?要想知道什么是 Pyppeteer,首先应该先了解一下 Puppeteer:Puppeteer 是 Google 基于 Node.js 开发的一个工具,拥有 Puppeteer 即可通过 JavaScript 来控制 Chrome 浏览器的一些操作,也可以用于网络爬虫上,其 API 极其完善,功能非常强大。什么是 Pyppeteer?Pyppeteer 是 Puppeteer 的 Python 实现,在 Pyppetter 背后也有一个类似 Chrome 浏览器的 Chr

2021-01-29 14:55:18 6042 6

原创 使用 Pyppeteer 的 evaluateOnNewDocument 方法时出现 Object.defineProperty(...) is not a function 的解决方案

所遇问题最近使用 Pyppeteer 过程中调用 evaluateOnNewDocument 方法在浏览器中执行 JavaScript 代码时出现了一个错误,关键代码如下:await page.evaluateOnNewDocument('Object.defineProperty(navigator, "webdriver", {get: () => undefined})')其中 JavaScript 代码如下:Object.defineProperty(navigator, "webd

2021-01-29 11:21:43 2606 2

原创 解决 Pycharm 中项目目录背景变黄且部分文件不显示的问题

问题如下图:实际上文件目录为下图:解决方法:File->Settings->Project Structure->Add Content Root设置为项目所在文件夹即可解决问题:

2021-01-21 13:23:28 16761 2

原创 2021 广工 Anyview 数据结构第 5 章

/**********【题目】试编写如下定义的递归函数的递归算法: g(m,n) = 0 当m=0,n>=0 g(m,n) = g(m-1,2n)+n 当m>0,n>=0**********/int G(int m, int n) /* 如果 m<0 或 n<0 则返回 -1 */{ if (m < 0 || n < 0) return -1; else if (m == 0 &&

2021-01-16 16:38:43 1268

原创 2021 广工 Anyview 数据结构第 4 章

/**********【题目】已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。哈希表的类型HashTable定义如下:#define SUCCESS 1#define UNSUCCESS 0#define DUPLICATE -1typedef char StrKeyType[4];typedef struct { StrKeyTy

2021-01-16 16:37:04 906

原创 2021 广工 Anyview 数据结构第 3 章

/**********【题目】试以顺序表L的L.rcd[L.length+1]作为监视哨,改写教材3.2节中给出的升序直接插入排序算法。顺序表的类型RcdSqList定义如下:typedef struct { KeyType key; ... } RcdType;typedef struct { RcdType rcd[MAXSIZE+1]; // rcd[0]闲置 int length;} RcdSqList;**********/void InsertSort

2021-01-16 16:36:34 442

原创 2021 广工 Anyview 数据结构第 2 章

/**********【题目】试写一算法,实现顺序栈的判空操作StackEmpty_Sq(SqStack S)。顺序栈的类型定义为:typedef struct { ElemType *elem; // 存储空间的基址 int top; // 栈顶元素的下一个位置,简称栈顶位标 int size; // 当前分配的存储容量 int increment; // 扩容时,增加的存储容量} SqStack; // 顺序栈***********/

2021-01-16 16:34:26 1937 1

原创 2021 广工 Anyview 数据结构第 1 章

/**********【题目】试写一算法,如果三个整数a,b和c的值不是依次非递增的,则通过交换,令其为非递增。***********/void Descend(int &a, int &b, int &c)/* 通过交换,令 a >= b >= c */{ if (a < b) swap(a, b); if (a < c) swap(a, c); if (b < c) swap(b, c);}/********

2021-01-16 16:29:15 1285

原创 2021 广工 Anyview 数据结构第 8 章

/**********【题目】编写算法,创建有向图的邻接数组存储结构。图的邻接数组存储结构的类型定义如下:#define UNVISITED 0#define VISITED 1 #define MAX_VEX_NUM 4#define INFINITY MAXINT // 计算机允许的整数最大值,即∞typedef int VRType;typedef char InfoType;typedef char VexType;typedef enum {DG,DN,UDG,UD

2021-01-16 16:26:20 797

原创 2021 广工 Anyview 数据结构第 7 章

/**********【题目】试编写算法,对一棵以孩子兄弟链表表示的树统计叶子的个数。孩子兄弟链表类型定义:typedef struct CSTNode { TElemType data; struct CSTNode *firstChild, *nextSibling;} CSTNode, *CSTree;**********/int Leave(CSTree T) /* 统计树T的叶子数 */{ if (!T) return 0; int res =

2021-01-16 16:24:25 1174

原创 2021 广工 Anyview 数据结构第 6 章

/**********【题目】若两棵二叉树T1和T2皆为空,或者皆不空且T1的左、右子树和T2的左、右子树分别相似,则称二叉树T1和T2相似。试编写算法,判别给定两棵二叉树是否相似。二叉链表类型定义:typedef struct BiTNode { TElemType data; struct BiTNode *lchild, *rchild;} BiTNode, *BiTree;**********/Status Similar(BiTree T1, BiTree T2)/

2021-01-11 13:18:29 3350

原创 Python 手动生成字节码文件

Python手动生成字节码文件在 Python 标准库中,py_compile 和 compileall 模块可以手动生成字节码文件,py_compile 提供了从单个源文件中编译生成字节码文件的相关函数,而 compileall 提供了从目录中编译源文件的相关函数,以上两个模块可以用于包或模块安装时创建字节码文件,特别是在某些用户可能无权在包含源代码的目录中写入字节码文件的情况下。打开 PyCharm 的某个项目,进入 Python Console 功能模块。py_compile 模块:输入以下代

2020-11-19 22:02:27 942 1

原创 解决问题 ModuleNotFoundError: No module named ‘pip‘

在使用 pip 时,出现以下错误:解决方法:使用命令 python -m ensurepip:接着使用命令 python -m pip install --upgrade pip 更新 pip:问题即得到解决。

2020-11-19 15:22:37 430

原创 爬取广东工业大学新闻通知网最新通知并发送至 QQ 邮箱

待爬取网站1. 分析新闻通知标题:2. 分析新闻通知链接此处获取的是相对 URL,需要加上前缀 http://news.gdut.edu.cn/。3. 分析新闻通知来源4. 分析新闻通知日期如何获取 smtp 授权码:https://blog.csdn.net/weixin_45961774/article/details/105040536完整源代码:https://github.com/Giyn/PythonSpider/blob/master/GDUT/scrape_GDUT

2020-11-09 22:02:49 3359 3

原创 解决使用 pipreqs 的错误 ‘gbk‘ codec can‘t decode byte * in position *: illegal multibyte sequence

问题:在使用 pipreqs 生成 Python 项目依赖文件 requirements.txt 时,在当前目录输入命令 pipreqs . 时,出现错误 UnicodeDecodeError: 'gbk' codec can't decode byte * in position *: illegal multibyte sequence。解决方案:使用命令 pipreqs ./ --encoding=utf8。...

2020-11-09 15:24:11 10001 2

原创 使用 Git 时出现 fatal: refusing to merge unrelated histories 的解决方法

问题:使用 Git 的合并分支功能时,出现了错误 fatal: refusing to merge unrelated histories。$ git merge origin masterfatal: refusing to merge unrelated histories原因:由于两个分支之间没有历史联系,在默认情况下,Git 拒绝合并无关的历史。解决方法:在合并分支的命令后加上 --allow-unrelated-histories:如上,将命令更改为 git merge orig

2020-10-23 21:48:40 469

原创 Python 使用 asyncio 时出现 RuntimeError: This event loop is already running 的解决方法

如下图,在使用 asyncio 调用事件循环 loop 时出现错误 RuntimeError: This event loop is already running:import asyncioasync def execute(x): print('Number:', x) coroutine = execute(1)print('Coroutine:', coroutine)print('After calling execute')loop = asyncio.get_eve

2020-10-06 17:23:21 8777 3

原创 Python 使用 pip 时出现 WARNING: Retrying 的解决方法

Problem:如下图,在使用 pip 时出现 WARNING: Retrying,接着会一直报错直到退出程序。解决方法:将 pip 的镜像源切换到阿里云的镜像源:[global]index-url = http://mirrors.aliyun.com/pypi/simple/[install]trusted-host=mirrors.aliyun.com...

2020-10-06 15:44:10 2351 1

原创 使用 opencv-python 提取视频每一帧的图片

计算机视觉是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像,其任务有图像形成、图像处理、图像提取和图像的三维推理,而目标识别和面部识别也是很重要的研究领域。OpenCV 的全称是 Open Source Computer Vision Library,是一个跨平台的计算机视觉库,其基于C/C++,支持 Linux/Windows/MacOS/Android/iOS,并提供了 Python,Matlab 和 Ja.

2020-10-02 10:48:29 16451 9

转载 【灰色系统】—— 灰色系统的建模思路

关联度分析方法灰色系统理论提出了一种新的分析方法——关联度分析方法,即根据因素之间发展态势的相似或相异程度来衡量因素间关联的程度,它揭示了事物动态关联的特征与程度。由于以发展态势为立足点,因此对样本量的多少没有过分的要求,也不需要典型的分布规律,计算量少到甚至可用手算,且不致出现关联度的量化结果与定性分析不一致的情况。这种方法已应用到农业经济、水利、宏观经济等各方面,都取得了较好的效果。灰色系统理论建模的主要任务灰色系统理论建模的主要任务是根据具体灰色系统的行为特征数据,充分开发并利用不多的数据中的显

2020-09-08 22:47:06 736 1

原创 github.io绑定域名

在此之前已在 GitHub Pages 搭建好了博客,且能够通过 github.io 进行访问。下面介绍一下如何将 github.io 与域名绑定:1. 购买域名可以在阿里云等购买。此处有一个阿里云域名1元购的活动可以白嫖了解一下。https://wanwang.aliyun.com/domain/1yuan2. 在 GitHub Pages 仓库添加 CNAME 文件并填入将绑定的域名填入的域名不要包含 https:// 和 www。3. 进入 GitHub Pages 仓库的

2020-09-04 13:48:44 6179 2

原创 【MDS算法】—— Multiple Dimensional Scaling降维算法简介

在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难” (curse ofdimensionality)。缓解维数灾难的一个重要途径是降维 (dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace), 在这个子空间中样本密度大幅提高,距离计算也变得更为容易.为什么能进行降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维

2020-08-19 16:31:45 1538 1

原创 【Jupyter Notebook】—— 解决由于 kernel 文件中 Python 解释器路径出错导致的 FileNotFoundError

最近 Jupyter Notebook 突然无法启动,找了很久的解决方法都不凑效,于是重装了一遍,然而出现了以下问题:即 Jupyter Notebook 能够正常启动以及打开文件,但是无法运行 ipynb 文件,控制台报错为 FileNotFoundError: [WinError 2] 系统找不到指定的文件。,本以为是重新安装的时候出错了,但再次安装了好几次依旧报错,经过排查,发现原因为 kernel.json 文件的解释器路径错误,因为原本是使用 TensorFlow 环境运行的 Jupyter

2020-08-12 21:56:41 1450 2

原创 【随机森林算法】{0} —— Bagging和随机森林算法的简单介绍

BaggingBaggingBagging 与随机森林​ 由个体与集成的知识可知,欲得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立;虽然“独立”在现实任务中无法做到,但可以设法使基学习器尽可能具有较大的差异。给定一个训练数据集,一种可能的做法是对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器。这样,由于训练数据不同,我们获得的基学习器可望具有比较大的差异。然而,为获得好的集成,我们同时还希望个体学习器不能太差。如果采样出的每个子集都完全不同,则每个基学习器只用到了

2020-08-03 10:10:36 316 1

原创 【GBDT模型】{0} —— GBDT模型简介及数学推导

什么是 GBDTGBDTGBDT ?GBDTGBDTGBDT 是机器学习领域中浅层模型的优秀模型,也是各大数据挖掘比赛中经常出现的框架,其全称是 GradientBoostingDecisionTreeGradient Boosting Decision TreeGradientBoostingDecisionTree,中文名是梯度提升树。在学习 GBDT 前,先普及一下关于 BoostingBoostingBoosting 的概念和性质:BoostingBoostingBoostingBoost

2020-08-01 17:29:06 1283 1

原创 【决策树算法】{3} —— CART算法

CART算法CART(Classification and Regression Tree,即分类回归树算法)是一种著名的决策树学习算法,可用于分类和回归任务。CARTCARTCART 算法使用“基尼指数”来选择划分属性。基尼指数假定当前样本集合 DDD 中第 kkk 类样本所占的比例为Pk(k=1,2,...,∣y∣)P_k (k=1,2,...,|y|)Pk​(k=1,2,...,∣y∣)。数据集 DDD 的纯度可用基尼值来度量:Gini(D)=∑k=1∣y∣∑k′≠kpkpk′=∑k=

2020-07-22 15:43:30 182 1

原创 【决策树算法】{2} —— C4.5算法

C4.5C4.5C4.5 算法是基于 ID3ID3ID3 算法的改良,C4.5C4.5C4.5 算法不直接使用信息增益,而是使用“信息增益率”来选择最优划分属性。基于 ID3ID3ID3 算法的优化:1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2) 在树构造过程中进行剪枝;3) 能够完成对连续属性的离散化处理;4) 能够对不完整数据进行处理。信息增益率信息增益准则对可取值数目较多的属性有所偏好,然而这样的决策树显然不具有泛化能力,无法对新样本进

2020-07-19 11:52:33 530 1

原创 【Python爬虫】—— Selenium 的基本使用

在很多情况下,Ajax 请求的接口通常会包含加密的参数。由于接口的请求加上了参数,如果不深入分析并找到构造逻辑,是难以直接模拟这些 Ajax 请求的。此时解决方法通常有两种,一种是深挖其中的逻辑,把其中的构造逻辑完全找出来,再用 Python 复现,构造 Ajax 请求;另外一种方法就是直接通过模拟浏览器的方式,绕过这个过程。此处可以使用 Selenium 工具模拟浏览器爬取。Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现

2020-07-14 16:11:53 1150 1

原创 模拟Ajax请求爬取4000部豆瓣电影

进入准备爬取的网页:编写一个获取页面的函数:def get_html(url, proxies): """ @功能: 获取页面 @参数: URL链接、代理IP列表 @返回: 页面内容 """ failed = 1 # 请求失败参数 headers = [ {'User-Agent': "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20

2020-07-13 09:57:35 1491 1

原创 【Python爬虫】—— Ajax 的原理和分析

什么是 AjaxAjax,全称为 Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML。它是一种利用 JavaScript 在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。Ajax 的优点对于传统的网页,如果想更新其内容则必须刷新整个页面。有了 Ajax,便可以在页面不被全部刷新的情况下更新其内容。在此过程中,页面实际上在后台与服务器进行了数据交互,获取到数据之后,再利用 JavaScript 改变网页,这样网页内

2020-07-12 16:57:32 737 1

原创 【Python爬虫】—— 多进程基本原理

多进程的含义进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位多进程就是启用多个进程同时运行。Python 多进程的优势由于进程中 GIL 的存在,Python 中的多线程并不能很好地发挥多核优势,一个进程中的多个线程,同一时刻只能有一个线程运行。在 Python 多线程下,每个线程的执行方式如下:获取 GIL执行对应线程的代码释放 GIL对于多进程来说,每个进程都有属于自己的 GIL,所以在多核处理器下,多进

2020-06-05 09:02:51 622 1

原创 【Python爬虫】—— 多线程基本原理

多线程的含义进程可以理解为是一个可以独立运行的程序单位。比如:打开一个浏览器,就开启了一个浏览器进程。打开一个文本编辑器,就开启了一个文本编辑器进程。一个进程中可以同时处理很多事情。比如:浏览器中可以在多个选项卡中打开多个页面,有的页面在播放音乐,有的页面在播放视频,有的网页在播放动画,可以同时运行,互不干扰。为什么能同时做到同时运行这么多的任务呢?任务对应着线程的执行。进程 是线程的集合,是由一个或多个线程构成的。线程 是操作系统进行运算调度的最小单位,是进程中的一个最小

2020-06-04 08:57:39 1013 2

原创 【Python爬虫】—— Session 与 Cookies

静态网页和动态网页静态网页<!DOCTYPE html><html> <head><meta charset="UTF-8"><title>This is a Demo</title></head><body> <div id="container"><div class="wrapper"><h2 class="title"> Hello World&

2020-06-03 09:39:47 727 1

原创 【Python爬虫】—— Web网页基础

网页的组成网页可以分为三大部分:HTML、CSS 和 JavaScriptHTML 相当于骨架JavaScript 相当于肌肉CSS 相当于皮肤HTMLHTML 是用来描述网页的一种语言,全称为 Hyper Text Markup Language 超文本标记语言不同类型的元素通过不同类型的标签来表示:图片用 img 标签表示视频用 video 标签表示段落用 p 标签表示它们之间的布局又常通过布局标签 div 嵌套组合而成CSSCSS 全称叫作 Cascading S

2020-06-02 09:31:45 414 1

转载 【灰色系统】—— 灰色系统的基本概念

灰色系统的基本概念灰数灰数是灰色系统的基本单元,把只知道大概范围而不知道确切范围的数称为灰数,灰数实际上指在某一区间或某个一般的数集内取值的不确定数,通常用记号“”表示灰数,灰数有以下几类下界灰数上界灰数区间灰数连续灰数与离散灰数黑数与白数灰数计算灰微分方程设有一组原始数列 X(0), X(1)X^{(0)},\,X^{(1)}X(0),X(1) 为 X(0)X^{(0)}X(0) 的一次累加生成数,记X(0)={X(0)(1), X(0)(2), ..., X(0

2020-05-31 09:40:05 2498 1

空空如也

空空如也

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

TA关注的人

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