- 博客(47)
- 收藏
- 关注
原创 我的2020推免之路:清叉、TBSI、贵系、中山、国防科大、自动化所
我的2020推免之路:清叉、TBSI、贵系、中山、国防科大、自动化所一.前言二.个人情况三.夏令营清华大学交叉信息学院(6.13~6.14)清华-伯克利深圳学院(7.2~7.9)清华大学计算机系(7.8~7.9)中山大学数据科学与计算机学院(7.11~7.13)国防科技大学智能科学学院(7.27~7.29)中国科学院自动化研究所(8.3~8.7)四.后记1.关于方向2.关于清华3.关于保研一.前言人生就是不断解开心结,又系上心结的过程因为今年的情况比较特殊,所以个人感觉对后辈的参考意义不是很大,更多的
2020-10-12 21:30:00
9180
12
原创 NLP之新闻文本分类——Task6
Task6——基于深度学习的文本分类Bert1.Transformer原理Transformer是在”Attention is All You Need“中提出的,模型的编码部分是一组编码器的堆叠(论文中依次堆叠六个编码器),模型的解码部分是由相同数量的解码器的堆叠。我们重点关注编码部分。他们结构完全相同,但是并不共享参数,每一个编码器都可以拆解成两部分。在对输入序列做词的向量化之后,它们首先流过一个self-attention层,该层帮助编码器在它编码单词的时候能够看到输入序列中的其他单词。sel
2020-08-01 21:08:19
394
原创 NLP之新闻文本分类——Task5
Tsak5——基于深度学习的文本分类Word2vec1.词向量本节通过word2vec学习词向量。word2vec模型背后的基本思想是对出现在上下文环境里的词进行预测。对于每一条输入文本,我们选取一个上下文窗口和一个中心词,并基于这个中心词去预测窗口里其他词出现的概率。因此word2vec模型可以方便地从新增语料中学习到新增词的向量表达,是一种高效的在线学习算法( online learning word2vec的主要思路:通过单词和上下文彼此预测,对应的两个算法分别为:1.Skip- grams(S
2020-07-30 19:00:04
606
原创 NLP之新闻文本分类——Task4
Task4——基于深度学习的文本分类fasttext1.文本表示方法现有文本表示方法的缺陷:在上一章节,我们介绍几种文本表示方法:One-hot、Bag of Words、N-gram、TF-IDF但上述方法都或多或少存在一定的问题:转换得到的向量维度很高,需要较长的训练实践;没有考虑单词与单词之间的关系,只是进行了统计。与这些表示方法不同,深度学习也可以用于文本表示,还可以将其映射到一个低纬空间。其中比较典型的例子有:FastText、Word2Vec和Bert。这一次主要使用fasttex
2020-07-26 19:12:57
317
原创 NLP之新闻文本分类——Task3
Task3——基于机器学习的文本分类1.⽂本表示方法这里插入一下word2vec,在讲word2vec的过程中一般要对one-hot进行介绍,这里推荐一篇文章,很详细的揭示了文本表示的本质(主要是word2vec)。秒懂词向量word2vec的本质1.1 One-hot这里的One-hot与数据挖掘任务中的操作是一致的,即将每一个单词使用一个离散的向量表示。具体将每个字/词编码一个索引,然后根据索引进行赋值。One-hot表示方法的例子如下:句子1:我 爱 北 京 天 安 门句子2:我 喜
2020-07-24 22:38:54
254
原创 NLP之新闻文本分类——Task2
Task2——数据读取与数据分析1.学习目标学习使用Pandas读取赛题数据分析赛题数据的分布规律2.数据读取这里的read_csv由三部分构成:读取的文件路径,这里需要根据改成你本地的路径,可以使用相对路径或绝对路径;分隔符sep,为每列分割的字符,设置为\t即可;读取行数nrows,为此次读取文件的函数,是数值类型(由于数据集比较大,建议先设置为100);import pandas as pdtrain_df = pd.read_csv('datalab/72510/train_se
2020-07-22 07:51:36
250
原创 NLP之新闻文本分类——Task1
NLP入门实践——新闻文本分类Task1——赛题理解1.学习目标理解赛题背景与赛题数据完成赛题报名和数据下载,理解赛题的解题思路2.赛题数据赛题以匿名处理后的新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。3.赛题规模赛题数据由以下几个部分构成:训练集20w条样本,测试集A包括5w条样本,测试集B包括5w条样本。为了预防选手
2020-07-21 12:49:44
380
原创 爬虫入门-4
爬取腾讯新闻这是本次活动的最后一个任务,完结撒花import timefrom selenium import webdriverfrom bs4 import BeautifulSoupdriver=webdriver.Chrome(executable_path="F:/NewDesktop/spider/task3/chromedriver.exe")driver.get("...
2020-04-27 22:09:59
149
原创 爬虫入门-3
1.session在计算机科学领域来说,尤其是在网络领域,会话(session,Microsoft Windows 中文版译作工作阶段)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议(例如telnet或FTP)中是非常重要的部分。在不包含会话层(例如UDP)或者是无法长时间驻留会话层(例如HTTP)的传输协议中,会话的维...
2020-04-25 23:05:22
323
原创 爬虫入门-2
bs4,re和lxml一:bs4的功能与使用——成功from bs4 import BeautifulSoupimport requestsr = requests.get('https://python123.io/ws/demo.html')demo = r.textsoup = BeautifulSoup(demo, 'html.parser')print(soup.pre...
2020-04-23 23:15:39
841
原创 爬虫入门-1
网页构造、HTTP、爬取实例1.网页构造2.HTTP3.爬取python之禅4.爬取豆瓣前250部电影1.网页构造一般来说,网页是由HTML,CSS,JavaScript组成的。1.HTML:HTML 是用来搭建整个网页的骨架,F12开发者工具中的选项 Elements 中可以看到网页的源代码,这里展示的就是 HTML 代码。2.CSS:在Style标签页中,显示的是当前选中的HTML代码...
2020-04-21 23:08:13
326
原创 Datawhale零基础入门数据挖掘-Task5模型融合(完结篇)
模型融合一 内容介绍模型融合是比赛后期一个重要的环节,大体来说有如下的类型方式。简单加权融合:回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean);分类:投票(Voting)综合:排序融合(Rank averaging),log融合stacking/blending:构建多层模型,并利用预测结果再拟合预测。boostin...
2020-04-04 21:24:53
356
1
原创 Datawhale零基础入门数据挖掘-Task4建模调参
1 学习目标了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程2 内容介绍线性回归模型:线性回归对于特征的要求;处理长尾分布;理解线性回归模型;模型性能验证:评价函数与目标函数;交叉验证方法;留一验证方法;针对时间序列问题的验证;绘制学习率曲线;绘制验证曲线;嵌入式特征选择:Lasso回归;Ridge回归;决策树;模型对比:常用线性模型;常用非线...
2020-04-01 20:42:27
520
原创 算法刻意练习-LeetCode实战30-通配符匹配(C++)——完结篇
题目:通配符匹配原题链接:通配符匹配这道题与之前的一道LeetCode中使用递归解决的题目类似:正则表达式匹配这里也贴上我对这道题的解答:算法刻意练习-LeetCode实战18-正则表达式匹配(C++)照着思维惯性,我就想用递归来解答,但是总是有错,无法AC,代码与错误案例放下面,就当纪念,以后万一哪天回来看看说不定想起来怎么做了(有大佬看出来错在哪里的话欢迎指正):class So...
2020-03-30 18:13:20
226
原创 算法刻意练习-LeetCode实战29-加油站(C++)
题目:加油站原题链接:加油站为了实现循环查找的操作,在开始进行查找之前将两个数组(gas,cost)进行了原数组拼接(就是把数组复制一遍,放到原数组后面)。然后依次判断即可,代码如下:class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& co...
2020-03-29 08:39:53
192
原创 算法刻意练习-LeetCode实战28-跳跃游戏(C++)
题目:跳跃游戏原题链接:跳跃游戏这道题刚开始自己做时出了点错,无法AC,于是看了解答,发现下面这种解答极为精妙。每次更新当前节点能够到达的最远距离,如果当前节点到达的最远距离小于当前节点的偏移量,那么就判断不能到达。代码如下:class Solution {public: bool canJump(vector<int>& nums) { in...
2020-03-28 07:50:05
217
原创 Datawhale零基础入门数据挖掘-Task3特征工程
特征工程由于是纯小白,尚无能力完全独自将特征工程完成,所以大部分参考借鉴了Datawhale指导书中的代码,但是自己进行了理解消化,并且在天池实验室中跑了一遍代码,有些自己做出了改动。(虽然kernel要排队好久,而且一般是中午吃饭时才正好有。。。但是仍然无法阻挡我“挖掘”的热情。)1 特征工程目标Kaggle上有一句非常经典的话,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上...
2020-03-27 20:37:21
218
原创 Datawhale零基础入门数据挖掘-Task1赛题理解
赛题理解-二手车交易价格预测题目链接:二手车交易价格预测在这里先要感谢Datawhale,提供一个很好的组对学习平台。一、赛题背景本次新人赛是Datawhale与天池联合发起的0基础入门系列赛事第一场 —— 零基础入门数据挖掘之二手车交易价格预测大赛。赛题以二手车市场为背景,要求选手预测二手汽车的交易价格,这是一个典型的回归问题。通过这道赛题来引导大家走进AI数据竞赛的世界,主要针对于于...
2020-03-27 18:50:07
429
原创 算法刻意练习-LeetCode实战27-分发饼干(C++)
题目:分发饼干原题链接:分发饼干一道简单的贪心,代码如下:class Solution {public: int findContentChildren(vector<int>& g, vector<int>& s) { int lg = g.size(), ls = s.size(); sort(g.begi...
2020-03-27 10:00:12
253
原创 算法刻意练习-LeetCode实战26-判断子序列(C++)
题目:判断子序列原题链接:判断子序列刚一开始,觉得用暴力也才O(n^2),想先试一下能不能过,谁知道果然过不了。代码如下:class Solution {public: bool isSubsequence(string s, string t) { int ls = s.size(), lt = t.size(); if(ls == 0 &...
2020-03-26 08:51:27
157
原创 算法刻意练习-LeetCode实战25-买卖股票的最佳时机II(C++)
题目:买卖股票的最佳时机II原题链接:买卖股票的最佳时机II这是一个比较简单的贪心算法,判断买卖股票的动作如下:买股票:今天不是最后一天&&今天的股票价格低于明天&&现在手中没有股票卖股票:(今天不是最后一天&&今天的股票价格高于明天||今天是最后一天)&&手中有股票代码如下:class Solution {public...
2020-03-25 08:12:49
164
原创 Datawhale零基础入门数据挖掘—Task2数据分析
EDA-数据探索性分析非常感谢Datawhale的组队学习活动,让我这个零基础的小白也能够有机会亲身的接触一下数据挖掘,走完一个流程这次使用的是天池实验室,路线的话主要是根据datawhale发布的《零基础入门数据挖掘》教程来走。下面是EDA的部分。1.载入各种数据科学以及可视化库#coding:utf-8#导入warnings包,利用过滤器来实现忽略警告语句。import wa...
2020-03-24 20:56:08
247
原创 算法刻意练习-LeetCode实战24-恢复二叉搜索树(C++)
题目:恢复二叉搜索树原题链接:恢复二叉搜索树这道题的思路是这样的:先遍历树(哪种遍历方式无所谓),然后将得到树节点按照数据域的大小进行排序,再与原树的中序遍历进行比较。因为二叉搜索树的中序是从大到小的顺序的,所以每次遇到不相同的元素时,按照排序后的节点值进行更改即可。/** * Definition for a binary tree node. * struct TreeNode {...
2020-03-24 07:59:11
143
原创 算法刻意练习-LeetCode实战23-不同的二叉搜索树II(C++)
题目:不同的二叉搜索树II原题链接:不同的二叉搜索树II接触到树之后,发现很多题目如果想要做对、做好,就要对递归使用非常熟练。递归确实很难把握,我自己到现在还是没有完全掌握递归,但是在做这道题时,有一个评论区的朋友说的非常好(想不起来在哪里看到的):“如果想要理解递归,就要用递归的思维方式,不要试图在脑子中一步一步进行推演”。是啊,虽然这句话没说到底什么是递归的思维方式,但至少说明了什么不是...
2020-03-23 08:15:47
144
原创 算法刻意练习-LeetCode实战22-二叉树的中序遍历(C++)
题目:二叉树的中序遍历原题链接:二叉树的中序遍历递归就好,代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left...
2020-03-22 06:59:45
210
原创 算法刻意练习-LeetCode实战21-二叉树的最大深度(C++)
题目:二叉树的最大深度原题链接:二叉树的最大深度这道题使用使用BFS(广度优先遍历),将每个节点的数据域用来记录当前节点的深度即可。代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;...
2020-03-21 09:00:37
470
原创 算法刻意练习-LeetCode实战20-对称二叉树(C++)
题目:对称二叉树原题链接:对称二叉树这道体可以用递归也可以用迭代,但是用递归比较简单。刚开始以为很简单,但是总是出错,看完别人的解答后原来是递归条件搞错了。代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeN...
2020-03-20 22:09:27
213
原创 算法刻意练习-LeetCode实战19-相同的树(C++)
题目:相同的树原题链接:相同的树这道题我觉得考察的是树的遍历,只要把树按照某一种顺序进行遍历,然后存储到一个向量里,之后再比较向量即可。代码如下:先序遍历解法:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...
2020-03-19 09:12:40
140
原创 算法刻意练习-LeetCode实战18-正则表达式匹配(C++)
题目:正则表达式匹配原题链接:正则表达式匹配自己尝试:自己也尝试了一段时间,纯粹是硬想,既没有使用递归,也没有用DP,总是有一些测试用例无法通过,下面是自己的代码,仅用于纪念(下面代码不能AC)class Solution {public: bool isMatch(string s, string p) { int i = 0, j = 0; w...
2020-03-18 12:10:08
156
原创 算法刻意练习-LeetCode实战17-最长回文子串(C++)
题目:最长回文子串原题链接:最长回文子串看到这个题,我印象中之前看过的动态规划有这道题,但是想不起来具体的做法了,没办法,就先用暴力的手段来进行求解(有时候暴力会帮你找到思路;就算暴力之后没有全新的思路,也可以在此基础上进行优化)。代码如下:暴力:class Solution {public: string longestPalindrome(string s) { ...
2020-03-17 09:23:17
173
原创 算法刻意练习-LeetCode实战16-无重复字符的最长字串(C++)
题目:无重复字符的最长字串原题链接:无重复字符的最长子串自己想了暴力的方法,感觉不太好,就找了一个大佬写的,自己进行了一下复现。class Solution {public: int lengthOfLongestSubstring(string s) { int st = 0; int len = 0; string str = "";...
2020-03-16 20:59:44
181
原创 算法刻意练习-LeetCode实战15-有效的括号(C++)
题目:有效的括号原题链接:有效的括号这道题刚开始我的思路是这样的:每次遇到’(’、’{’、’['就向右寻找是否有对应的括号,但是忽略了成对的括号必须是紧邻的限制。后来看了LeetCode上面大神的题解,感觉思路真的很清晰,而且简洁。使用了栈数据结构,思路是这样:对字符串的每个字符遍历,每次遇到’(’、’{’、’[’,就入栈;遇到’)’、’}’、’]'就查看栈顶是否是对应括号,不是的话说明...
2020-03-15 08:36:57
134
原创 算法刻意练习-LeetCode实战14-最长公共前缀(C++)
题目:最长公共前缀原题链接:最长公共前缀因为是“公共”的前缀,因此使用任意一个字符串的长度作为for循环的条件即可,依次判别strs[0]的每一个字符是否在每个字符串中都出现。代码如下:class Solution {public: string longestCommonPrefix(vector<string>& strs) { int nu...
2020-03-14 08:27:48
147
原创 算法刻意练习-LeetCode实战13-罗马数字转整数(C++)
题目:罗马数字转整数原题链接:罗马数字转整数依次判断即可,就是有点啰嗦,也没有太多操作的余地,代码如下:class Solution {public: int romanToInt(string s) { int ans = 0; int n = s.size(); for(int i = 0; i < n; i++){ ...
2020-03-13 13:28:50
141
原创 算法刻意练习-LeetCode实战12-合并K个排序链表(C++)
题目:合并K个排序链表原题链接:合并K个排序链表这道题我的思路是这样的:遍历所有的链表,然后把所有节点的数据域都存在一个vector中,再对vector中元素进行排序,最后根据vector来建立一个链表即可。代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * L...
2020-03-12 08:11:30
150
原创 算法刻意练习-LeetCode实战11-删除链表的倒数第N个节点(C++)
题目:删除链表的倒数第N个节点原题链接:删除链表的倒数第N个节点这道题有两种思路,两次遍历和一次遍历。两次遍历的方法比较直观:第一次遍历来得到节点的数量,从而将倒数第几个节点转化为正数第几个节点;第二次遍历的时候只需通过一个变量来记录正在遍历的节点是第几个,如果是需要删除节点的前一个节点,令当前节点的指针域指向下一个节点的指针域即可。/** * Definition for singly...
2020-03-11 09:58:38
143
原创 算法刻意练习-LeetCode实战10-两数相加
题目:两数相加原题链接:两数相加这个题不复杂,但是我觉得解决同一个问题代码量却很能体现一个人的编程水平:自己第一次做的代码量是这样子的(不忍直视~~):/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(in...
2020-03-10 09:02:09
186
原创 算法刻意练习-LeetCode实战09-环形链表
环形链表:原题链接:环形链表这道题我的思路是这样的:依次遍历链表的每一个节点,如果第一次访问,则将这个节点的数据域置为正无穷(INT_MAX)。一直遍历,这时有两种情况:如果是环形链表,则一定会再次遍历到这个节点,即如果在遍历的过程中遇到数据域为INT_MAX的节点,证明有环,返回true;如果没有环,则一定会出现被遍历到的节点为NULL的情况,返回false。代码如下:/** * D...
2020-03-09 08:45:02
144
原创 算法刻意练习-LeetCode实战08-删除排序链表中的重复元素
标题:删除排序链表中的重复元素原题链接:删除排序链表中的重复元素本题可以用来熟悉链表的操作,用两个指针来表示一前一后,每次判断后面的节点数值域是否与前面的节点相同,相同则跳过。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ...
2020-03-08 09:14:14
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人