自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 收藏
  • 关注

原创 英文文本分类实战总结

之前参加了一个英文文本的分类比赛。比赛结束到了过年,加上开学又有一些事情,所以总结的工作就一直没有进行。现在空了一些,所以把之前的工作写一写,比赛中用到的代码也会放到github上。对这个比赛的任务介绍以及数据可以看这篇写过的文章。简单说,就是一个英文文本的有监督二分类问题,对一条英文问句判断是否为一条有意义的问题。这篇文章里还对数据处理介绍了两种简单的方法,一个是embedding词向量,另一...

2019-04-19 17:15:40 9851 1

转载 二维数组的全排列

https://lwz777.iteye.com/blog/749828 /** * * 使用递归调用将二维数组中的值进行排列组合 * * @param doubleArrays * @return */ private static String[][] doExchange(String[][] doubleArrays) { int len = double...

2019-04-06 22:56:00 2621

原创 LeetCode剑指offer----字符串

1.LeetCode—72. Edit Distance字符串的编辑距离将一个字符串转化为另一个字符串所需要的最少操作。二维动态规划问题。2.LeetCode—91. Decode Ways一个多位数可以划分成几种英文字母的组合。一维动态规划问题。当前位置的dp由前面一位或者两位决定,分情况讨论即可。3.93. Restore IP AddressesIP地址的划分方式。回溯法。注...

2019-03-22 23:04:01 305

原创 LeetCode---23. Merge k Sorted Lists

合并k个有序列表/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { //归并排序的思想, 结合这道题14...

2019-03-11 22:01:18 191

原创 python 实现 逻辑斯蒂回归分类器LR

# --*-- coding:utf-8 --*--import numpy as npclass Logistic: def loadDataSet(self, fileName = 'testSet.txt'): # 加载数据 dataMat = [] labelMat = [] fr = open(fileName) ...

2019-03-11 11:16:28 1134 1

原创 300. Longest Increasing Subsequence 最长递增序列

https://leetcode.com/problems/longest-increasing-subsequence/// class Solution {// //动态规划。在i位置上的dp值,应该是两者额较大值:1.原dp 2.比nums[i]小的nums[j]的j位置上的dp值加一// public int lengthOfLIS(int[] nums) {//...

2019-03-10 17:40:39 164

原创 打印1到最大的n位数

题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。我们需要考虑用字符串或者数组来表示大数。用字符串表示数字的时候,最直观的方法就是字符串里每个字符都是‘0’到‘9’之间的某一个字符,用来表示数字中的一位。因为最大的是n位的,因此我们需要一个长度为n+1的字符串(字符串中最后一个是结束符号‘\0’。当实际数字不够n位的时候,在字符...

2019-03-10 15:34:06 449

原创 无序数组中找top K 个值

在不增加空间复杂度的情况下,用堆排序。维护一个大小为k的堆。如果是找最大的K个值,那么用大顶堆,否则用小顶堆。先从原数组中取k个值建立一个堆,然后每次从原数组中拿一个值与堆顶元素进行比较,看是否需要替换,如果替换了,就进行一次堆排序。这样到最后,这个堆中的元素就是top K。前K大,维护最小堆;前K小,维护最大堆1.初始化一个最小堆2.输入新数据,若大于堆顶则替换堆顶,调整堆为最小堆(从最...

2019-03-08 22:58:50 2538

原创 LeetCode---963. Minimum Area Rectangle II

LeetCode—963. Minimum Area Rectangle II一堆二维坐标点,找出其中能形成矩形的四个点,使得形成的矩形面积最小。https://leetcode.com/problems/minimum-area-rectangle-ii/1.如何找到四个点形成矩形。方法是利用矩形的性质:对角线长度相等,对角坐标的中点重合2.如何储存找到的四个点,数据结构的问题。将时间复...

2019-03-08 15:15:50 231

原创 beamsearch以及python实现----对比贪婪greedsearch和维特比算法

1.首先说beamsearch是什么举个例子很容易说清楚:seq2seq模型的decoder解码的时候:1: 生成第1个词的时候,选择概率最大的2个词,假设为a,c,那么当前序列就是a,c2:生成第2个词的时候,我们将当前序列a和c,分别与词表中的所有词进行组合,得到新的6个序列aa ab ac ca cb cc,然后从其中选择2个得分最高的,作为当前序列,假如为aa cb3:后面会不断...

2019-03-02 22:46:58 2927 1

原创 LeetCode-----Best Time to Buy and Sell Stock股票最大收益 I II III IV 冷却,共5题

Best Time to Buy and Sell Stock I题意:每天只能买入或者卖出。在只进行一次交易的情况下,获得最大收益。分析:动态规划。维护一个当前的最大收益和当前的最小价格。遍历数组。复杂度:时间复杂度O(n),空间复杂度O(1)代码:public class Solution { public int maxProfit(int[] prices) { ...

2019-02-26 09:21:45 222

原创 LeetCode—450. Delete Node in a BST

LeetCode—450. Delete Node in a BST题目https://leetcode.com/problems/delete-node-in-a-bst/删除搜索二叉树中的一个节点,返回新的搜索二叉树,因为结果不唯一,任意返回一个即可。解析及代码/** * Definition for a binary tree node. * public class Tree...

2019-02-25 09:16:45 146

原创 文本分类实战---自训练词向量word2vec

这次的比赛在词向量的处理上使用了很多方法和分析手段,包括之前分析词向量对文本的覆盖的文章,针对覆盖程度对原始数据进行文本的预处理。到后面的使用tfidf和embedding结合的方法表示文本。这些方法都是在丰富和完整文本的表示。也都在效果上得到了提升。但是在比赛中有一点我一直很困惑,就是使用Google提供的Word2Vec表示文本会降低分类准确率,讨论区也有参赛这对这个问题提出了疑问,但是没有...

2019-01-29 18:29:51 4285 2

原创 LeetCode剑指offer刷题总结---回溯法2

上一篇写了使用回溯法解决的几道题,这几天又把其他的回溯法的题做了一下。在这里总结一下。由于题目较多,就单独沾代码了,开链接直接看。从题目要求上来说,主要分为三类:查找,这类题一般要我们找出所有满足条件的情况,返回一个集合。结果集合作为递归函数的一个参数进行传递。如51. N-Queens,131. Palindrome Partitioning,93. Restore IP Addresse...

2019-01-26 15:59:41 375

原创 LeetCode剑指offer刷题总结---回溯法

回溯法一般会结合dfs解决问题。先深搜到返回条件,然后回溯到上一层继续dfs。一般见过的回溯法的题都是矩阵形式给出的。另外这种类型的题很多都涉及元素是否被访问过的问题,所以一般的返回条件会有两个:1.访问位置超过边界 2.元素已经被访问过了。还有一个要注意的是,当dfs全部结束的时候也会返回(当然,毕竟是递归吗),有时候也会利用到这个返回,比如LeetCode 200剑指offer最后的两道题都...

2019-01-24 22:54:39 534

原创 文本分类实战---tfidf+embedding---2

上一篇文章讲了自己关于如何结合使用tfidf和embedding的一点想法。这篇文章就具体来讲讲怎么实现。对于embedding来说,我们不在多做操作,直接调用接口获得每个单词的embedding向量就行了。主要是tfidf的获取方法。我们要获得每一个单词对应的tfidf值,然后对每一个句子形成一个tfidf值组成的向量。还需要着重考虑的是,我们使用的语料库体积是很大的问题。网上搜索了一下,主...

2019-01-22 20:46:17 4132 3

原创 文本分类实战---tfidf+embedding---1

我们知道,tfidf和embedding都是将文本表示成包含文本信息的高维向量的方法。tfidf关注的是单词在文档中的频率,最终计算出的向量包含的信息是一种单词出现频率的tradeoff。而embedding则关注的是单词的语义。两者包含的信息不同,因此将两者结合起来表示文本是对文本信息的丰富和扩充。但是在实际操作中,两者的结合不是简单的concatenate这个简单就可以的。因为两者计算结果的...

2019-01-15 22:59:57 4983 7

原创 文本分类实战---数据分布不平衡问题

最近在做的项目的数据集里的数据分布非常不平衡,虽然是简单的二分类任务,但是两类数据的比例相差有两个数量级。因此查了一些解决数据分布不平衡的方法,在这里先总结一下,后面会单独挑出一些方法实现,并针对相应的代码和效果在写一篇文章。1.重新采样训练集可以使用不同的数据集。有两种方法使不平衡的数据集来建立一个平衡的数据集——欠采样和过采样。1.1 欠采样欠采样是通过减少丰富类的大小来平衡数据集,当...

2019-01-04 10:41:16 9714 2

原创 正则化

https://blog.csdn.net/jinping_shi/article/details/52433975https://blog.csdn.net/zouxy09/article/details/24971995

2018-12-26 22:04:40 201

原创 "A Diversity-Promoting Objective Function for Neural Conversation Models"阅读笔记

因为最近在做的chatbot实验效果不太好,总是会出现一些没有营养的回复,如我不知道等等。所以查了一些资料,发现李纪为大神的篇文章是提供了处理这个问题的方法,所以借鉴了一下,顺便写一下博客记录。文章主要的贡献是使用了最大互信息MMI代替常用的最大后验概率MLE等作为目标函数。MLE这个目标函数最常用在机器翻译任务上,最大的优势在于可以产生最自然的语言,但是多样性不好。对话任务和翻译任务还是有区别...

2018-12-21 10:10:14 522

原创 LR 逻辑回归

全面知识点:https://blog.csdn.net/cyh_24/article/details/50359055

2018-12-18 22:37:07 149

原创 SVM

全面的知识点:https://blog.csdn.net/v_july_v/article/details/7624837

2018-12-18 22:16:46 217

原创 文本分类实战----数据处理篇----embeddings与vocab中词汇不相覆盖问题的处理办法

上一篇文章我们讲了一些数据处理的方法。这一篇我们来对数据进行一些分析,帮助我们更好的理解数据的基础上,为后面的工作做一些基础。也希望有一些积累,在后面遇到相似的任务事可以举一反三。好了,话不多说,我们开始。embeddings与vocab中词汇不相覆盖问题我们使用的预训练好的embeddings词向量来对训练集和测试集中的词汇表vocab进行向量的映射,这里存在的一个问题是预训练embedd...

2018-12-17 18:58:28 8304 2

原创 "A Survey on Dialogue Systems: Recent Advances and New Frontiers" 阅读笔记

最近在思考对话系统的方向,想选择一个方向做深入的研究,所以找了这篇综述性的文章阅读一下。对文章中提到的感兴趣的文章做一个记录,方便后面研究的开展。介绍文章将对话系统分为任务导向模型和非任务导向的模型。任务导向模型主要用来完成某项特定的任务,比如订票系统。这种应用的场景就决定了任务导向的模型往往是特殊定制的,泛化性和鲁棒性都不会太好,我们不太可能要求一个任务导向的模型既能帮助我们定机票又能辅导...

2018-12-13 11:00:03 1035

原创 文本分类实战----数据处理篇

最近在参加kaggle上的一个文本分类的比赛,因为持续时间比较长,有两个月的时间,想在这期间详细的学习一下文本分类的方法和知识,所以会持续更新一些博客来记录参赛的过程。在比赛结束后,我会将参赛过程中使用的代码放到我的Github上面,大家相互学习。主要会包括如何处理数据,参赛中使用的模型,一些重要方法的原理等方面的东西。本篇主要记录数据的处理方法。任务介绍首先我们介绍一下这个比赛的任务,是对输...

2018-12-11 12:50:51 3284 4

原创 seq2seq的简单实现---实现输入单词的反序任务

seq2seq 模型常用于实现翻译,对话等生成任务。实际上是建立输入和输出的映射关系,翻译对话等任务的实现比价复杂,为了帮助我们更快的理解seq2seq,我们这里实现一个简单的反序任务。本文章重点关注seq2seq模型的代码实现,主要参考了这篇文章。本文的代码在Pycharm上实现,不同与原文使用Jupiter,在代码上有一些改动,并增加了详细的注释。本文的代码后面会放到我的Github上。好了...

2018-12-08 20:33:21 1411 1

原创 对话系统-----seq2seq基本模型

对话系统-----seq2seq基本模型本文介绍一下应用在对话系统的seq2seq基本模型,当然也可以应用在chatbot,翻译等相似任务中。因为在之前的学习中,经常被seq2seq一些代码中的输入和输出的搞混,特别是decoder的target,input,output的形式。从基本模型和伪代码两个角度讲解说明。基本模型seq2seq的基本模型包括了两个部分,encoder和decoder...

2018-12-08 17:49:31 2208

原创 LeetCode---611. Valid Triangle Number

LeetCode—611. Valid Triangle Number题目https://leetcode.com/problems/valid-triangle-number/submissions/找出数组中可以组成三角形三边的组合数。思路及解法先进行排序。使用三个指针i,j,ki,j,ki,j,k指向三个数,判断前两个数和是否大于第三个数。这里第二个数是关键,当num[i]+nu...

2018-12-07 09:41:08 326

原创 动手搭建seq2seq-----API介绍

最近在重新搭建seq2seq的模型用于对话系统,发现之前对相关的API用的不是很好,所以又详细看了一下,这个博客对一些重要的API做一个总结。encoder部分encoder的建立主要分为两步:建立rnn单元,调用接口计算输出1. tf.contrib.rnn.LSTMCellhttps://tensorflow.google.cn/api_docs/python/tf/nn/rnn_ce...

2018-12-06 20:02:38 690

原创 LeetCode---35. Search Insert Position

LeetCode—35. Search Insert Position题目https://leetcode.com/problems/search-insert-position/给出一个有序数组和一个target,将这个target有序的插入到数组中,返回插入的index。思路及解法这道题还是比较简单的,时间复杂度n的解法很容易。之所以放到博客上来,是因为看了一个二分查找的方法,降了...

2018-12-06 09:35:19 360

原创 LeetCode---160. Intersection of Two Linked Lists

LeetCode—160. Intersection of Two Linked Lists题目https://leetcode.com/problems/intersection-of-two-linked-lists/找到两个链表重合的节点并返回。思路及解法首先要审好题。这道题的意思是如果两个链表存在焦点的话,那么这个焦点后面的所有节点应该都是重合的,不会出现相交后又分叉的情况。知...

2018-12-05 22:43:45 168

原创 LeetCode---454. 4Sum II

LeetCode—454. 4Sum II题目https://leetcode.com/problems/4sum-ii/给出四个数组,长度相同,从每个数组中挑一个数作和,判断是这个和为零的挑选方式一共有几种。思路及解法这道题可以和数组的前面几道题一块看,包括TwoSum 和 4Sum。4Sum是在说一个数组中找出四个数使的和为target,那么这道题的区别就是变成了四个数组,那肯定...

2018-11-28 11:57:40 147

转载 RNN LSTM 网络参数问题

问题一:在NLP任务中,词向量维度(embedding size)是否一定要等于LSTM隐藏层节点数(hidden size)?词向量(Word Embedding)可以说是自然语言处理任务的基石,运用深度学习的自然语言处理任务更是离不开词向量的构造工作。在文本分类,问答系统,机器翻译等任务中,LSTM的展开步数(num_step)为输入语句的长度,而每一个LSTM单元的输入则是语句中对应单词或...

2018-11-24 17:38:21 7725

原创 LeetCode---128. Longest Consecutive Sequence

LeetCode—128. Longest Consecutive Sequence题目找出未排序的数组中最长的连续子列长度。要求时间复杂度nnn思路及解法题目描述的不仔细,需要自己想一下细节的问题。要想到数组元素是可以重复的。我的思路是这样的:首先sort排序一下,这时有可能有重复元素,我们使用26. Remove Duplicates from Sorted Array的方法将重复...

2018-11-22 17:12:26 183

原创 LeetCode—148. Sort List

LeetCode—148. Sort List题目要求将链表按需排列。对时间和空间有要求。思路及解法因为有时间和空间限制增加了难度。nlognnlognnlogn的内平均时间复杂度排序算法只有三种,堆排序,快速排序和归并排序,但快速排序的最坏情况是n2n^2n2,不能用。堆排序和归并排序的所有情况都是nlognnlognnlogn。对于归并排序,我们知道需要nnn的空间复杂度,即需要一个...

2018-11-21 22:31:34 122

原创 LeetCode—21. Merge Two Sorted Lists

LeetCode—21. Merge Two Sorted Lists题目两个有序链表,合并成一个。题目里有一句话我没理解好,她说“The new list should be made by splicing together the nodes of the first two lists.”我已开始以为是必须将一个链表插入到另一个里面,不能新建一个链表。实际上,这句话的意思新行程的链表的...

2018-11-20 16:45:31 108

原创 LeetCode—88. Merge Sorted Array

LeetCode—88. Merge Sorted Array题目将两个有序数组合并,使得合并后的数组仍然有序。其中,数组1后面已补零使得其的长度大于等于两个数组的总长度。思路及分析88题。这道题用插入排序可以解决,但是时间复杂度是n2n^2n2.这里不用插入排序的方法。我们每次同时从后往前取两个数组的一个元素,将较大的放在数组1的最后,注意这里最后应该是m+n-1而不是m-1。所以...

2018-11-20 15:46:52 84

原创 Hierarchical Attention Networks for Document Classification 实现篇

Hierarchical Attention Networks for Document Classification 实现篇上一篇blog我们介绍了HAN模型,这一篇我们来介绍一下代码实现部分。代码放到我的github上,欢迎大家讨论。数据集首先介绍一下数据集。我们使用的数据是YELP下的电影评论数据,可以从这里下载https://github.com/rekiksab/Yelp-Dat...

2018-11-09 15:30:54 1537 4

原创 Hierarchical Attention Networks for Document Classification 模型理解篇

Hierarchical Attention Networks for Document Classification 模型理解篇最近看了HAN用在文本分类的这篇文章。提出的模型使用了分层的注意力机制,对应了文本在字词和句子两个层面的结构。也就是分别在字词层面和句子层面使用注意力机制。这样做的好处有两个:1.模型可以给与不同主要性的字词或者句子不同的关注度,最终的任务效果因此会更好。2.注意力机...

2018-11-09 10:47:53 3069

原创 LeetCode—112. Path Sum && 113. Path Sum II

LeetCode—112. Path Sum题目https://leetcode.com/problems/path-sum/description/给出一棵二叉树以及一个整数,判断有没有一条从树的根节点到叶子节点的路径,其路径上节点的和等于给出的整数。思路及解法首先肯定是要用到递归了。在来想递归条件。每次递归一个节点,都从给出的整数里减去这个节点的值,直到最后一个不为空的叶子节点。...

2018-10-24 09:56:39 183

空空如也

空空如也

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

TA关注的人

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