如何确定网页和查询的相关性
某个网页与某个查询的相关性=TF1*IDF1 + TF2*IDF2 + ....+ TFN*IDFN
TFi是查询中关键字i的词频,IDFi为关键字i的重要性权重---逆文本词频指数。
总之,给定一个查询,有关网页的综合排名大致由相关性和网页排名的乘积决定
地图和本地搜索的最基本技术---有限状态机和动态规划
智能手机的定位和导航功能具有三个关键技术:
1)利用卫星定位
2)地址识别
3)根据用户输入的起点和终点,在地图上规划最短路线或者最快路线
地址识别:
地址的文法是上下文有关文法,最有效的识别方法是有限状态机。一个有限状态机是一个特殊的有向图。
使用有限状态机识别地址主要要解决两个问题:
1)通过一些有效的地址建立状态机
2)在状态机确定的情况下,地址字串的匹配算法
Google Ak-47的设计者---阿米特-辛格博士
一个好的算法应该像AK-47冲锋枪那样:简单、有效、可靠性好而且容易读懂,而不应该故弄玄虚
许多失败并不是因为人不优秀,而是做事情的方法不对,一开始追求大而全的解决方案,之后长时间不能完成,最后不了了之。
余弦定理和新闻的分类
使用两个向量之间夹角的余弦值来度量两个向量之间的相似性
新闻的分类使用文本特征向量余弦的距离自底向上的分类方法
矩阵运算和文本处理中的两个分类问题
在自然语言处理只能怪,最常见的两个分类问题:
1)将文本按主题分类
2)将词汇表中的字词按意思归类
SVD矩阵分解就可以解决上面的两个问题,但是它的分类结果略显粗糙,因此适合处理超大规模文本的粗分类。在实际工作中可以先用SVD得到粗分类的结果,再利用计算向量余弦的方法在粗分类结果的基础上进行几次迭代,得到比较精确的结果。
信息指纹及其应用
网络爬虫为了防止重复下载同一个网页,使用哈希表记录已经访问过的网址(URL)。如果直接在哈希表中以字符串的形式直接存放网址,既浪费查找空间,又浪费查找时间,所以一般将网址映射成一个N位的二进制数(网址的指纹),再存放。
常用的指纹生成算法:梅森旋转算法
判定两个集合相同方法:
1)最坏的方法,将两个集合的元素一一做比较,时间复杂度为O(N2)
2)将两个集合分别排序,然后顺序比较,时间复杂度为O(NlogN)
3)将一个集合的每个元素映射到一个哈希表中,让后把第二集合的元素一一和哈希表中的元素做比较。时间复杂度O(N),空间复杂度O(N)
4)最好的方法,计算两个集合的指纹,然后直接比较。定义一个集合S={e1,e2,...en},S的指纹FP(S) = FP(e1)+FP(e2)+...+FP(en),由于加法的交换律保证集合的指纹不因元素出现的次序而改变,两个集合元素相同,那么他们的指纹一定相同。(不同元素的指纹相同的概率非常非常小)
两个集合基本相同,运用在判定相同的网页,允许有一定的容错能力,采用特定的信息指纹----相似哈希。
谈谈密码学的数学原理
密码学的最高境界是无论地方获取多少密文,也无法消除己方情报系统的不确定性,为了达到这个目的,不仅要求密文之间相互无关,同时密文还是看似完全随机序列。
谈谈搜索引擎发作弊问题
谈谈数学模型的重要性
1)一个正确的数学模型应当在形式上是简单的
2)一个正确的模型一开始可能还不如一个精雕细琢过的错误模型来的准确,但是如果我们认定的方向是对的,就应该坚持下去
3)大量准确的数据对研发很重要
4)正确的模型也可能受到噪音干扰,而显得不准确;这时不应该用一个凑合的修正方法来弥补它,而是遭到噪音的根源,这也许能通往重大的发现。
不要把鸡蛋放到一个篮子里----谈谈最大熵模型
最大熵原理指出:需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的亲狂不要做任何主观假设(不做主观假设这点很重要),在这种情况下,概率分布最均匀,预测的风险最小。应为这时概率分布的信息熵最大,所以人们称这种模型为“最大熵模型”。