- 博客(64)
- 收藏
- 关注
原创 (二)搜索&&广告&&营收
注: (举例小超市可能不是很正确,但有助于白话文方便了解,说这个例子不是很正确原因待后面会说明,但不影响对此的理解)如果我们需要购买的特定物品在楼下的小超市就有的话,即使比超市里贵一点点,但由于便利性也是可以接受的,但要注意我们可接受的这个前提:(1)必须有我们希望要买的物品(2)质量相比差不多(3)价格不能太离谱第一条表示这个目标能满足我们寻找目标的基本需求
2016-02-09 23:04:06
610
原创 (一)搜索&&广告&&营收
前言在过去的一段时间里,在一线互联网公司从事了一些小镙钉的工作,基本围绕搜索与广告及营收相关,准备写下围绕这些内容所从事后台工作的个人感受,不但对过去的一些简单的工作进行总结,同时也希望对这一行当好奇的同学提供参考,以及汇集的批评与指正对我的个人成长进步题目有点框架化,尽力讲清楚对此的个人理解,可能有偏差,希望共勉共进。因为所从事的内容偏工程性,所以还是会从工程实践的角度来描述。
2016-02-06 12:34:19
550
原创 c/c++ 原生字符串分割简易方法
c/c++不像其它脚本语言可以方便的对字符串进行分割如boost中的splitphp中的explodepython中的split等。。。其实c/c++也可以完成,只不过没有简单的一个函数来完成但stringstream 与 getline的组合却可以非常完美的解决这个字符串分割问题;示例如下:cat csplit.cpp#incl
2014-04-08 18:02:03
1277
1
原创 shell 判断文件更新是否超过阀值的报警小程序
因为一个程序定期crontab运行来更新文件,有一天这个程序未运行从而对应的文件未更新,发现时已晚了一小时,所以针对这个情况简单的写了下对应的shell监控小程序;无非就是读文件修改时间然后和当前时间比较,当超过阀值threshhold时进行短信或邮件报警时间差distance上可以用t2-t1保证结果大于0,这里用了一个自定义abs函数得到distance结果然后判断是否触发报警
2014-01-22 15:22:42
2639
原创 搜索引擎----以lucene为例进行简单的搜索过程描述
Lucene使用的是倒排文件索引结构。这种结构组织值得学习过程主要为几步:一, 3个文件词典索引文件----由word找出对应的docid 的映射文件 而为了更高效的准确性加入了词频,位置描述信息; 只是这两个信息各自为独立的文件,即 词频索引文件,位置索引文件,而这两个索引文件指针分别存在于词典文件中,也就是说查一个词时从词典文件可以得到这两个文件的对应指针
2013-12-22 23:28:46
827
原创 转移概率矩阵------3Q大战背后的数学
前言:1,为什么各种网络大战前期都会有用户支持度相关的调查问卷?2,为什么发布某个产品前基本可以推断出产生的用户数?3,为什么3Q大战后各公司不担心自己软件的装机量?4,对用户桌面的干扰是否一时头脑发热?难道这只是纯商业吗? 难道公司就不担心重要决策失败导致的严重的后果?如果我们认为这些都是一时性的拍拍脑门的结果,那么我想这就是我们与决策者的区别下面我仅从这个现
2013-12-09 20:05:17
4638
原创 贝叶斯定理-----"由果溯因"类型问题的启发
在想说明贝叶斯定理这个的时候,想起了大学时老师的一句话“贝叶斯即是由结果找原因",所以在标题中的贝叶斯定理后面特意补充说明了"由果溯因"类型的启发很多地方,包括一些书和网上都有这个介绍,这里我只是想把这个说清楚点,以便您不和看完后再百度或google,在提到“由果追溯原因” 这一过程与可能的应用前,有必要了解一下这个定理是怎么回事1,条件概率所谓"条件概率"
2013-12-08 01:14:40
4787
原创 费茨定律---用户操作代价最小化的基础
你是否想过以下几个为什么?1,为什么产品的设计上要简单,对用户的操作代价尽量最小化?2,为什么各大搜索引擎提供的页面中布局的位置都差不多? 难道这是因为抄袭,还是因为用户的习惯就是这样?3,为什么搜索引擎结果最好的要放在第一页,最好中的最好放在前三条搜索结果中? 其实这一切并非我们感觉上的方便原因,当然这对用户来说确实也方便,而背后确存在于数学原理中这一原理就是费茨
2013-12-07 23:39:37
1338
原创 布尔代数与网页搜索
网页搜索和布尔代数借用百科布尔代数内容如下:基本理论在布尔代数上的运算被称为AND(与)、OR(或)和NOT(非)。代数结构要是布尔代数,这些运算的行为就必须和两元素的布尔代数一样(这两个元素是TRUE(真)和FALSE(假))。亦称逻辑代数.与:只有两个值都是true时结果才为true或:只要有一个为true结果就为true非:取相反值参考《数
2013-12-06 17:47:33
1096
原创 为什么搜索质量上google是稳步提高的?
除了搜索老大google外,国内也有几个搞搜索的大公司,其实总体上说都是不错的这些年,我们自己的搜索一直在努力提高,不管是质量上还是用户体验上,可是,一与google这个老大相比,我们总是还差的很远很远。这到底是为什么呢?为什么连我们自己都知道与她差很远呢?既然知道那么差的到底在什么地方?有没办法追赶上(指的是紧紧随后)首先,从技术上来讲,不管我们用的什么所谓高精尖技术,必须承
2013-12-06 17:13:42
1036
原创 大数定律---频率代替概率
为什么我们在搜索引擎的某些计算公式过程中常用某个词的出现频率来代替概率p 呢?这个代替准不准,有什么依据?答案就是大数定律,从下面的公式我们可以看到,对于抽样的样本量一定要大,否则用频率代替概率是不准确的表现形式大数定律有若干个表现形式。这里仅介绍高等大学概率论要求的常用的三个重要定律:切比雪夫大数定理设是一列两两不相关的随机变量,每
2013-12-03 21:00:09
5548
原创 用log平滑数据波动
有是我们设计一个算法的时候,在算法中会有很多影响因素,例如我们评价某个搜索引擎结果质量的时候,用户的关注度(直观上接点击量)是一个影响因素。假如我们设计了一个函数: S = (1/pos) * log(N) * W(url)其中S为分数值,pos为结果各项所在的位置,比如百度一个词第一页的10条结果那么pos依次为1,2,3...10N为对应位置的点击数,W(url)表示
2013-12-03 20:47:42
3400
原创 余弦定理----相似性计算
在向量中,余弦定理为 cos(x) = / |a||b|通常用这个来进行相似度计算但这里计算的前提是a,b两个向量空间维数要对齐,(通常操作都是进行归一化,例如两个不一致时要维数小的向大的看齐)由于夹角越小表现为两个向量越接近重合(也就是越相似),表现到这个公式上就是cos(x)得到的值较大;所以通常用这个余弦定理来进行相似度计算句1: 我是
2013-12-03 20:34:47
1808
原创 工厂模式
工厂意即生产某个部件,例如生产汽车,手表。。。。等产品在这个关系中,产品可能有多种多样,在最初的生产中,可以只为某种产品定制生产,即只生产某种类的产品 ,之后由于产品需要创新发展,便有了多样化,此时工厂需要针对不同的产品进行不同的模板生产;发展到后期,工厂只有一个是不能很好的完成某种产品需求,这就要把工作分离开,例如工厂1,工厂2。。。。例如上面即为简单工厂模式
2013-12-03 20:04:49
618
原创 单例模式示
动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意
2013-12-03 15:33:02
629
原创 设计----基本原则
开闭原则开: 从设计角度看,应在功能等扩展上开放,即利于扩展,可维护性好闭: 即对设计的修改要关闭这条原则意思是 :一个设计应当方便扩展同时减少或不需要修改(对扩展开放,对修改关闭)
2013-12-03 14:28:19
579
原创 map-reduce与hash关系
之前写了个内容,提醒对map的输入文件要切分尽量多点,以便提交map参与数量从而提升总体处理效率为什么多切分就会多map呢,其实还是因为提供给map的输入文件会进行hash,map启动的数量就是这个hash的数量所以增加切分粒度可以提升效率
2013-12-02 19:52:09
1023
原创 搜索引擎中suggestion背后的算法结构
我们使用某个搜索引擎的时候,往往你刚输入开头,页面就会给出一些我们极有可能想要查的内容,例如今天想搜索玉免号内容,刚打了个玉字,下面就给出了玉兔提示(suggestion)那么这是怎么做到的呢?来看下百度百科对字典数据描述,我想你就知道答案了至于有多个suggestion结果的时候如何选择的问题,可以根据某时间内用户日志中对查询词关注度排序得到另外,这个
2013-12-02 16:18:13
2136
原创 如何对程序进行rpm打包发布
正如之前提到的,一般项目(程序)的目录包含pkg文件夹这个中应该编写与打包对应的例程,例如我目录下结构为[clouduser@blog /home/clouduser/ZK_Serviced]$ ls AUTHORS bin data include libs logs Makefile pkg README scripts srcpkg目录下
2013-12-02 14:05:02
2223
原创 服务端研发应具备的技能(4)
2,数据传输2.1 gearman2.2 RPC先插一下百度百科内容:RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用
2013-12-02 11:45:56
896
原创 服务端研发应具备的技能(3)
2,数据传输我这里指的数据传输意思是当我们写好处理程序时往往由于需要多机来同时处理以达到处理性能要求(单机情况下不能达到处理性能要求)而这时需要各处理机程序可以无序化的对等条件下处理数据,这样可以方便新机器上程序部署扩充这里我常用的就是两种方式1,gearman方式; 2,RPC方式用起来很方便也很灵活2.1 gearman队列如下为图示简单描述:我
2013-12-02 11:25:58
1044
原创 map-reduce程序提升处理效率的方式
这里假设你已经会写简单的map-reduce 程序(本博对应搜索技术分类中我介意的介绍过map-reduce使用方法)那么同样一个map-reduce程序,输入的数据量大小一样,有什么办法可以加快map部分的计算效率呢?我先说一下碰到的实际问题: 同样一批日志一天一个目录如2013-12-01,目录下为各小时文件如****00.log......****01.log ...
2013-12-01 16:14:30
911
原创 hadoop之hive在数据检索中的用法 (2)
上面提到的创建表的hive_table中涉及几个问题需要先说明一下hive表。1. 普通表 普通表的创建,一个表,就对应一个表名对应的文件。2. 外部表 EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路
2013-12-01 16:03:41
927
原创 hadoop之hive在数据检索中的用法
hive:我只用他来检索过日志,对这个谈不上什么精通或熟练,只是会使用而已,可以按需求进行特定的数据检索而已,这个东西很方便,比map-reduce方便很多你可以把他完全当成mysql来用,因为这个也是用的SQL 语句,存储只不过数据不是存在我们常用的mysql等数据库中为什么有map-reduce还要有这个hive呢?我个人的理解是,map-reduce不管你查询什么或计算什么都需要
2013-11-30 23:29:15
2016
原创 搜索中客户的访问日志到底能用来做什么(8)?
再谈访问日志对government的用途每个大的互联网公司都是被关系户 , 一些敏感词都都是要过滤的, 除了每家网站自身进行过滤外, government会同时给出一份过滤词, 这只是从安全的角度来说, 但是除了这个安全外,我想谈的自已的另外一点看法,当然也是基于访问日志数据价值是巨大的,小到小打小闹的商业化,大到国家国富民强的战略层面首先,可以利用数
2013-11-30 12:57:12
917
原创 搜索中客户的访问日志到底能用来做什么(7)?
"价值往往不在事物的本身,而在于其延伸广度"访问日志即数据的价值不在数据本身而是利用数据产生商业价值我想从另一个方面谈谈这个访问日志的商业化使用我们都使用智能手机上网下载游戏等软件,下载热度一般是某软件的下载数,一般越热点数越高那么这个所谓的点击数真的是用户下载点击数吗?他可靠吗?答案一定是否定的,如果让我给这个大概的估计数量, 我想数值应该是: 各个站点同一软件点
2013-11-30 12:29:01
1042
原创 搜索中客户的访问日志到底能用来做什么(6)?
想到哪写到哪吧,如果看的有点乱请包涵访问日志的扩展功能说的再多我们仍是围绕用户的访问日志,先举个百度指数的例子,下图为百度指数查询李天一我们可以看到用户关注度这个趋势图,那么这个是怎么得到的呢?其实用户的搜索均会有日志,只需要而将这些查询词与访问点击保存即可,(可以用很多种方式保存,不过我估计是采用hbase来存的);同时针对(热点)查询
2013-11-30 10:01:33
984
原创 搜索中客户的访问日志到底能用来做什么(5)?
相关搜索与广告推荐1,相关搜索相关搜索一般指的是搜索词相关的查询,例如在百度中搜索”计算机“一词,最下方会显示计算机,计算器,计算,房贷计算器,....... 这个其实是页面的补充,因为毕竟程序不能百分百知道你要找的是什
2013-11-30 09:41:30
868
原创 从数据分布的角度来看 与,或,异或运算
数据分布和这几个运算有什么关系呢?如果把数据分布空间看成一个hash[ 0x00000000 ---- 0xffffffff ] 的话,那么与会得到偏向0的hash值;或会得到偏向0xffffffff的hash值;异或得到的相对平坦均匀的hash值;
2013-11-29 19:49:56
882
原创 kill 掉进程的脚本 stop.sh
有时会启动多个进程,其实kill all也可以,但个人习惯了stop.sh循环方式,一个一个的kill -9 与大家分享一下cat stop.sh#!/bin/shprocess=$1while true docnt=$(ps -wwwwaux | grep $process | wc -l)if [ 1 -eq $cnt ]then
2013-11-29 19:01:18
1761
原创 清理脚本滑动窗口方式清理日志文件
程序一般都会生成日志文件,同时也有一个对应的清理脚本,大部分清理脚本都就是crontab中定时启动但如果每分钟一个日志文件,然后需要保持一分钟的滑动窗口进行清理应该怎么办呢?我测试的清理脚本如下示:cat clear.sh#!/bin/shdate=$(date -v -1d +%Y-%m-%d)root=/rootpath/input=$root/data
2013-11-29 18:57:36
1073
原创 服务端研发应具备的技能(2)
1,日志处理通常我们处理文件,大多数都是处理完即程序退出,但在IT行业里,尤其是互联网公司,日志不是一时性的,而是源源不断的一直生成中,所以要求你的程序也需要像linux 下的tail -f命令一样,可以一直跟着文件读并处理日志,当日志文件按时天(或小时或分钟)切换时,也需要日志处理程序也可以无缝的处理那么如何实现模拟linux下的tail -f方式处理目录下日志文件呢?
2013-11-29 17:10:18
883
原创 搜索中客户的访问日志到底能用来做什么(4)?
质量评测算法(方法)各种评测算法或方法都离不开用户的目标点击, 比如用户查询一个word,点击的都集中到了第一页的最后一项,那至少说明你这个第一页排序有问题,没有把用户想要的结果最直接的提供给用户(大部分搜索完都只看前几条,觉得不靠谱就会转个查询词再搜或干脆换个搜索引擎)多说一句:质量评测算法不是主要的,问题是要根据总结的特征修改各引擎数据合并成第一页的展现策略,当然这些个算法或方
2013-11-29 15:57:03
951
原创 搜索中客户的访问日志到底能用来做什么(3)?
为什么搜索的第一页比后面的好?首先,我们主观上的能动性是很底的,意思是我们一般手不想往下页找,希望结果中最好前几条就是期望找的结果其次,每个用户都是这种心理,不像开始的搜索引擎,看谁找的结果数量多,时间短谁就是老大,时代变了,这就要求用户的体验才是第一位再次,即然第一页重要,那么我们的第一感觉就是这个第一页和后面的页面虽然都是格式上一样,但存储访问结构与重要性肯定与后面页是不一
2013-11-29 14:52:31
827
原创 搜索中客户的访问日志到底能用来做什么(2)?
(2)得到ip地址后的处理过程如下是搜索后台已经处理后的数据,而对应的ip则是用户访问日志中的ip当搜索后台得到用户的ip后,就会到后台查询对应的位置,例如,用户ip为116.205.128.0/13 则应当得到Hunan Tietongdaodianxin信息后台日志test.log116.205.128.0/17 Hunan Tiet
2013-11-29 11:41:30
852
原创 搜索中客户的访问日志到底能用来做什么(1)?
为什么搜索越做越大越多,定向推荐等越来越准?为什么你在北京搜索商铺饮食等,结果中都是和北京相关的内容?为什么搜索的第一页永远比后面的好?为什么搜索新鲜内容时结果会这么快的更新为你想看的内容?。。。。。为什么?。。。。。。。其实这些答案都有一个来源: 用户访问日志的分析我们先来看来访问日志一般包含哪些内容:客户端的ip, 查询的关键词与对应的url地址,
2013-11-29 10:57:00
774
原创 网络的几种模型概图
网络模型一共有这么几种, loop , fork, select, poll, epoll ..我个人理解它们间的关系与演变过程的原因由下图所示,
2013-11-29 10:08:38
992
原创 内存分配的buddy算法
buddy算法是用来做内存管理的经典算法,目的是为了解决内存的外碎片。例子 buddy算法将所有空闲页框分组为10个块链表,每个块链表的每个块元素分别包含1,2,4,8,16,32,64,128,256,512个连续的页框,每个块的第一个页框的物理地址是该块大小的整数倍。如,大小为16个页框的块,其起始地址是16*2^12(一个页框的大小为4k,16个页框的大小为16*4K,
2013-11-29 09:52:35
1245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人