- 博客(49)
- 资源 (11)
- 收藏
- 关注
原创 query term weight计算
对query分词后,我们需要对计算query中各个term的权重。Term weighting在文本检索,文本相关性,核心词提取等任务中都有重要作用。 举例来说:“荷尔蒙是什么?”如果分词之后直接进行搜索,可能出来的效果并不是很理想,在不能完全匹配的情况下,”什么“ ”是“ 这样的term对query结果干扰很大。 我们人工进行分析,term weighting结果可能是: “什么 0.1,是0
2016-07-07 23:55:14
9652
原创 query相关搜索词&推荐
当用户输入的query相关搜索结果比较少的时候,可以帮助用户扩展搜索内容,或者搜索结果太多的时候可以帮助用户深入定向搜索. 一般在搜索底部出现: 简单的来说,相关搜索的query,其实也是一种关键词推荐.相关搜索query策略:1.query click即网民输入某个query后,在搜索引擎上点击的url,该数据可以简单表示为query-url的pair.当用户输入不同的query,但是
2016-07-07 20:08:31
7368
原创 同义词挖掘
词典&百科词条 1:规则提取数据,对于一些别名,或者关键词括弧类的数据,或者简称等. 2.提取简要关键词,计算夹角余弦.上下文相关性挖掘(需要人工审核) 在所有的文档中,如果两个term经常在相同的上下文下出现,那么这两个词是同义词的可能性较大。基于这个假设, 1. 对文档进行分词,统计每个term的上下文,根据一定的策略对上下文进行剪枝。 2. 把剪枝之后的上下文作为每个term的特征
2016-07-07 17:35:48
3403
原创 JAVA并发编程--Semaphore、CountDownLatch、ReentrantLock、CyclicBarrier
Semaphore学习操作系统理论课的时候,教材上应该都会讲过信号量这种概念,java.util.concurrent.Semaphore类就是Java中这个概念的实现。比如资源R有5个实体,如果每个线程执行的过程中需要用到1个,那么允许5个线程并发执行,第6个会等待其他线程释放资源后继续执行。Semaphore实际上就是把锁的限制从1变为Nstate存储的是表示剩余可用资源的值Node采用的是
2016-05-16 19:08:36
1502
原创 JAVA并发编程--ExecutorService与CompletionService
Future接口介绍boolean cancel (boolean mayInterruptIfRunning) 取消任务的执行。参数指定是否立即中断任务执行,或者等等任务结束boolean isCancelled () 任务是否已经取消,任务正常完成前将其取消,则返回 trueboolean isDone () 任务是否已经完成。需要注意的是如果任务正常终止、异常或取消,都将返回trueV
2016-05-16 13:16:46
702
原创 Spring AOP 深入分析
Advice通知是AOP联盟定义的一个接口,定义当拦截到连接点做相应的处理操作,为切面增强提供织入接口。在spring AOP中,通知主要描述Spring AOP围绕方法调用而注入切面的行为,Spring AOP的通知扩展了AOP联盟的通知接口,提供了前置通知BeforeAdvice、后置通知AfterReturnAdvice、最终通知AfterAdvice和例外通知ThrowAdvice等。
2016-05-05 21:04:57
666
原创 Spring IOC 深入分析
1.Spring BeanFactory 容器它是最简单的容器,给 DI 提供了基本的支持,它用 org.springframework.beans.factory.BeanFactory 接口来定义。BeanFactory 或者相关的接口,如 BeanFactoryAware,InitializingBean,DisposableBean,在 Spring 中仍然存在具有大量的与 Spring 整
2016-05-05 20:37:39
468
原创 CPU load飙高排查---线程级别
进程级别的逗号处理,直接top就可以了.但是线程级别的CPU load飙升处理起来相对而已比较麻烦. 好, 直接上脚本:#!/bin/kshtypeset top=${1:-10}typeset pid=${2:-$(pgrep -u $USER java)}typeset tmp_file=/tmp/java_${pid}_$$.trace$JAVA_HOME/bin/jstack $pi
2016-04-26 20:28:59
3685
原创 对象copy和序列化
浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所有非引用成员变量值,还要为引用类型的成员变量创建新的实例,并且初始化为形式参数实例值。这个方式称为深拷贝JAVA Object自带的clone函数其实出现问题的关键就在于 clone() 方法上,我们知道该 clone() 方法是使用 Object 类的 clone() 方
2016-04-26 11:52:08
415
原创 Synchronized详解
Java 同步关键字(synchronized)Java 中的同步块用 synchronized 标记。同步块在 Java 中是同步在某个对象上。所有同步在一个对象上的同步块在同时只能被一个线程进入并执行操作。所有其他等待进入该同步块的线程将被阻塞,直到执行该同步块中的线程退出。有四种不同的同步块: 实例方法 静态方法 实例方法中的同步块 静态方法中的同步块 上述同步块都同步在不同对象上。
2016-04-25 20:40:43
968
原创 Volatile详解
VolatiteJava 语言提供了一种稍弱的同步机制,即 volatile 变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. 当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的.为了解决缓存不一致性问题,通常来说有以下2种解决方法: 1.通过在总线加LOCK#锁的方式 2.通过缓存一致性协议缓存一致性协议核
2016-04-25 20:23:44
715
原创 JAVA内存模型
JVM物理结构 1、Heap(堆):一个Java虚拟实例中只存在一个堆空间 2、MethodArea(方法区域):被装载的class的信息存储在Methodarea的内存中。当虚拟机装载某个类型时,它使用类装载器定位相应的class文件,然后读入这个class文件内容并把它传输到虚拟机中。 3、JavaStack(java的栈):虚拟机只会直接对Javastack执行两种操作:以帧为单位的压栈
2016-04-25 19:45:40
6870
原创 lucene系列-近实时搜索
Index索引刷新过程:只有Index Writer上的commit操作才会导致ram directory上的数据完全同步到文件。 Index Writer提供了实时获得reader的API,这个调用将导致flush操作,生成新的segment,但不会commit(fsync),从而减少 了IO。新的segment被加入到新生成的reader里。从返回的reader里,可以看到更新。所以,只要每次
2016-04-25 14:08:34
3054
原创 SVD建模
以MovieLens电影推荐为例,SVD(Singular Value Decomposition)的想法是根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来根据分析结果。使用SVD对问题进行建模SVD的想法抽象点来看就是将一个N行M列的评分矩阵R(R[u][i]代表第u个用户对第i个物品的评分),分解成一个N行F列的用户因子矩阵P(P[u][k]表示用户u
2016-04-25 11:46:25
5543
原创 特征值分解和SVD
特征值分解如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。特征值分解是将一个矩阵分解成下面的形式: 其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。我这里引用了一些参考文献中的内容来说明一下。首先,要明确的是,一个矩阵其实就是
2016-04-25 10:16:55
9750
原创 协同过滤-音乐推荐
一.协同过滤算法基于用户的协同过滤算法:这种算法最大的问题如何判断并量化两人的相似性,思路是这样 例子: 有3首歌放在那里,《最炫民族风》,《晴天》,《Hero》。 A君,收藏了《最炫民族风》,而遇到《晴天》,《Hero》则总是跳过; B君,经常单曲循环《最炫民族风》,《晴天》会播放完,《Hero》则拉黑了 C君,拉黑了《最炫民族风》,而《晴天》《Hero》都收藏了。 我们都看出来了,A
2016-04-23 15:32:55
8726
原创 协同过滤--基于物品的推荐案例
数据集字段: 1.User_id: 用户ID 2.Item_id: 物品ID 3.preference:用户对该物品的评分 算法的思想: 1. 建立物品的同现矩阵A,即统计两两物品同时出现的次数. 数据格式:Item_id1:Item_id2 次数 2. 建立用户对物品的评分矩阵B,即每一个用户对某一物品的评分. 数据格式:Item_id user_i
2016-04-22 17:52:27
2448
原创 协同过滤理论
基于用户的 CF(User CF)基于用户的 CF 的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。计算上,就是将一个用户对所有物品的偏好作为一个向量 来计算用户之间的相似度,找到 K 邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。图 2 给出了一个例子,对于用户 A,根据用户的历
2016-04-22 17:36:23
646
原创 Java原生线程池原理
Executor框架主要由三个部分组成:任务,任务的执行,异步计算的结果。 主要的类和接口简介如下: 1. Executor是一个接口,它将任务的提交和任务的执行分离。 2. ThreadPoolExecutor是线程池的核心,用来执行被提交的类。 3. Future接口和实现Future接口的FutureTask类,代表异步计算的结果。 4. Runnable接口和Callable接口的
2016-04-22 14:46:19
1762
原创 Lucene系列-index弹性扩展
Lucene系列-index扩展Shard与ReplicaShard:index数据分片.当索引数据到达百亿级别的,单份数据索引读取和搜索都是非常耗时间的,即使在用earlytermination的情况下,latency也在100ms左右. 数据分片成shard,可以快速的提高搜索效率.Replica:shard的备份,在搜索QPS较高的时候,Replica可以提供搜索的吞吐量. 一般包含一个p
2015-11-19 11:46:46
834
原创 lucene系列-facet搜索
facet搜索,方面搜索,电商中使用的非常多.例如 统计field中值的分组分布情况, 只是每个域值中的命中数量.facet搜索主要用于:1.Facet Counting facet域值统计 2.Facet Associations facet域值分类匹配度.描述一个doc属于某一个category的程度. 3.Multiple Facet Requests 了解多个fecet的结果分布
2015-11-16 17:06:42
2068
原创 Lucene系列-Fieldcache
FiledCache介绍 Lucene作为列缓存, 可以获取设置了Filed.Store.Yes上的正排数据信息.通常IndexSearcher.doc(docId)获得Document的所有域值,访问速度比较慢.但是通过FieldCache读取doc的分片信息,速度可以提升很多. 注意:FieldCache并非在存储域中读取,而是在索引域中读取,从而不必构造Document对象,要求此索引域是
2015-11-16 13:12:31
1595
原创 Lucene系列-DocValues
DocValues简介 Lucene索引的存储一般都是以倒排拉链的方式(term-doc), 但是在搜索相关功能处理的时候,如排序,高亮,摘要信息的获取,需要通过文档docid找到相应的正排信息,在Lucene4.0中,引入了一个新字段类型DocValue,是一个以列为主的字段,具有在索引的时候构建的文档到值(document-to-value)的映射.这个方法保证减轻了一些字段缓存的内存要求,并
2015-11-16 11:24:14
5201
原创 组合
算法说明:从n个数中选m个数,可以分解为以下两步(1)首先从n个数中选取编号最大的数,然后在剩下的n-1个数中选取m-1个数,直到从n-(m-1)个数中选取1个数为止。/*求从a[n]中选取m个数的可能组合。数组a[n]表示候选集,即影像的波段数;b[m]用来存储当前组合中的某个元素,这里存储的是这个元素在a[]中的下标;常量M表示满足条件的一个组合中元素的个数,M=m,M只用来输出结果*
2014-05-09 21:41:57
597
原创 协同过滤
准确率 召回率 覆盖率 平均流行度1.基于领域的算法a.基于用户的协同过滤算法 --- 计算复杂度比较高 步骤:1.找到和目标用户兴趣相似的用户集合-----统计当前用户中的物品类似的 2.找到这个集合汇总用户喜欢,并且目标用户没有听说的物品推荐给目标用户 计算u和v的兴趣相似度jaccard公式(交/并)和预先相似度()b.基于物品的协
2014-05-09 21:39:45
587
原创 随机数发生器
有一个随机数发生器f(),能以概率p生成0,以概率1-p生成1,尝试做一个随机数发生器g(),以均匀的概率生成0和1。如果的你的方案无法做到精确的均匀,那么请给给出误差
2014-04-24 22:48:18
633
原创 Building decision trees to identify the intent
数据:自于日志,人工进行分类。Feature Analysis1.Number of terms in the query (nterms),2.Number of clicks in query sessions(nclicks),a significant number of navigational queries concentrates only a few clicks p
2014-04-24 21:46:45
450
原创 逻辑回归
二元逻辑回归(Logistic Regression, LR)模型几率(odds:对数形式:基于LR的点击率预测Where, x代表一个(query, ad)对应的特征向量, y 属于{1,0}分别代表点击和不点击,p(y=1|x)就代 表给定query下,某ad的点击率点击率预测特征广告创意特征:图片,标题文字,价格,销量 推广商品所属
2014-04-24 21:34:56
1029
转载 数据结构之图-最大团
问题描述:团就是最大完全子图。给定无向图G=(V,E)。如果UV,且对任意u,vU 有(u,v) E,则称U 是G 的完全子图。G 的完全子图U是G的团当且仅当U不包含在G 的更大的完全子图中,即U就是最大完全子图。G 的最大团是指G中所含顶点数最多的团。1、最大团点的数量=补图中最大独立集点的数量2、二分图中,最大独立集点的数
2014-04-23 15:45:46
3783
转载 数据结构之图-割点与桥
割点是无向图中去掉后能把图割开的点。dfs时用dfn(u)记录u的访问时间,用low(u)数组记录u和u的子孙能追溯到的最早的节点(dfn值最小)。由于无向图的dfs只有回边和树边,且以第一次dfs时的方向作为边的方向,故有:low=min{dfn(u),dfn(v),若(u,v)为回边(非树边的逆边)low(v),若(u,v)为树边}顶点u是割点当且仅当其满足(1)或
2014-04-23 15:44:57
1790
转载 数据结构之图-连通分量
连通分量的定义:在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通。如果图中任意两个顶点之间都连通,则称该图为连通图,否则,称该图为非连通图,则其中的极大连通子图称为连通分量,这里所谓的极大是指子图中包含的顶点个数极大。在有向图中,如果对于每一对顶点vi和vj,从vi到vj和从vj到vi都有路径,则称该图为强连通图;否则,将其中的极大强连通子图称为强连通分量。在有向图G
2014-04-23 15:44:06
8006
原创 数据结构之并查集
并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元素初始化为一个集合初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身(也可以根据情况而变)。2、Find_Set(x) 查找一个元素所在的集合查找一个元素所在的集合,其精髓是找到这个元素所在集合的祖先!这个才是并查集判断和合并的最终依据。判断
2014-04-23 15:41:39
555
原创 图的相关概念
基本概念:1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。3.点连通度:最小割点集合中的顶点数。4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。5.割边集合:如果有一个边集合
2014-04-23 15:39:24
702
原创 相关性
地图搜索相关性:1.query搜索本身的因素考虑 计算query的意图和指向 query和目标区域的匹配程度2.地域相关性 地域特色的考虑 距离远近 地域邻近域的特征描述3.个人用户的行为特征4.相似性用户的特征推荐购物搜索相关性1.产品标题和自身描述等因素(基于内容的)2.价格因素的考虑
2014-04-19 20:39:13
1230
转载 什么是需求满足
什么是需求满足1.1 什么是需求满足用户来搜索“章鱼 保罗”,就文本相关性而言,搜索引擎只要返回和“章鱼 保罗”内容相关的结果就可以了,这样用户是否满意呢?用户甲:听说章鱼帝挂了,来看看最新结果,怎么全是8月份的,往后翻页中…用户乙:今天同事们在讨论章鱼哥挂了,章鱼哥是啥?我又out了,来搜索一下章鱼帝生平事迹是啥,怎么全是最新的结果,没有章鱼哥的介绍啊,变换个qu
2014-04-19 20:33:56
4176
转载 query意图识别
训练数据的选择是分类算法最重要的一步,一般对文本的分类预测,可以使用信息增益,卡方,互信息等来作为训练特征。具体问题具体分析,例如使用loglinear算法进行预测,实验证明信息增益来作为特征选择会更加有效,另外也得分析应用的场景,根据需要来选择算法,选择特征.分好类后,对每个类中的文档的排序也可以通过机器学习来进行,如果每个文档有很多标准的特征,每个维度的特征有一定的分数。这个也可以通过机器
2014-04-19 20:31:44
3927
转载 GBDT(MART) 迭代决策树入门教程
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力(generali
2014-04-19 20:30:16
1158
原创 Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.For example, givens = "leetcode",dict = ["leet"
2014-01-02 14:33:48
1233
原创 新词挖掘
新词挖掘主要分为两部分,计算N-gram以及抽取新词。第一部分的工作主要包括从hadoop上抓取最新的新闻标题,并且提取N-gram,同时计算相应的词频,互信息和条件熵。第二部分的工作主要是在提取的N-gram中,通过结合百科词条,query日志分析来提取可以认为是新词的N-gram。计算N-gram分析提取的中文语料,并且计算N-gram,以及N-gram对应的词频,
2013-09-26 00:02:12
916
原创 算法之LCA和RMQ
最近公共祖先(Least Common Ancestors)对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。另一种理解方式是把T理解为一个无向无环图,而LCA(T,u,v)即u到v的最短路上深度最小的点。1.ST算法(在线算法):RMQ(Range Minimum/Maximum Query)问题是求区间
2013-09-25 23:57:45
676
痛点:挖掘小数据满足用户需求
2020-09-28
Attention+is+All+You+Need.pdf
2019-09-16
google microsoft 算法面试神器 crack code interview.pdf
2013-08-13
新浪微博数据挖掘方案
2013-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人