zoukankan      html  css  js  c++  java
  • 《信息检索导论》第十九章总结

     

    一、Web搜索介绍

    前面我们都是对传统文档集进行检索,而Web搜索和传统的搜索完全不同,因为Web的文档集数量是不能估计的,并且形式多样;

    一般Web都是通过B/S架构进行实现的,客户端是浏览器,服务器端是web服务器,通过HTTP进行传输数据;

    浏览器发出请求并接收服务器的应答,浏览器会自动屏蔽那些不能理解的部分;

    Web的文档集是海量的,但是如果这些信息不能被搜索到的话,则这些信息是无用的,因此Web搜索很重要。

    Web搜索的文档集不仅要相关,而且要注重权威;

    可能会遇到的问题是有些网页是由图片组成的,没有文本文字;

    静态页面:固定页面;

    动态页面:与数据库交互的页面;

    Web网页集可以转化成一张图,节点表示网页,边表示链接;

    注意:Web图可能不是强连通的,即A节点可能不能够到达B节点;

    入度为i的网页数目正比于1/(i^a);

    为了让用户体验更好,一般需要:

    (1)让搜索界面做的简洁,搜索出的网页也需要尽量简洁;

    (2)相关度尽量高;

    用户查询类型

    (1)信息类查询:查相关主题的页面;

    (2)导航类查询:查某个词的官方主页;

    (3)事务类查询:需要干一件事,比如下载;

    二、作弊网页

    网页作弊的主要原因是经济利益;

    1.在网页上充满重复的关键字以提高排名

    2.将重复关键字作为背景色,使得用户看不出,但是会被搜索引擎构建索引

    3.付费收录(Paid Inclusion):付钱给IR公司让他的网页排名靠前

    4.伪装(Cloaking):spider爬到的网页和用户浏览器访问的网页不一致,比如采集器采集时返回相关文档,但是用户访问时却给出另一个网页;

    5.桥页(doorway page):用户-->桥页-->商业网页;桥页是相关的,但是如果访问桥页,则直接跳转到另一个网页;

    三、赞助搜索

    Sponsored search

    在网页中,右半部分是提供给赞助商的,赞助商给的钱越多,排名越靠前;

    一般采用CPC(Cost Per Click)收费,用户点击一次,则赞助商付给IR公司一笔钱;

    有些人利用垃圾点击(Click Spam),让赞助商多付钱给IR公司;

    四、索引规模比较

    注意:

    1.搜索引擎会搜索到没有被索引的网页;

    2.搜索引擎不会返回所有的索引页面;

    因此很难精确估计索引规模;

    注意:可能搜索引擎采集页面时会进入一个陷阱服务器,即只要访问了这个服务器,则服务器会自动生成无数网页让采集器采集;

    比较两个搜索引擎的索引规模

    给定两个搜索引擎E1和E2,我们采用随机在E1和E2中抽取网页,并比较E2抽出的网页在E1中出现的比例,E1抽出的网页在E2中出现的比例;

    比如:

    E1/E2=y/x=(1/6)/(1/2)=1/3;因此E1索引规模较少;

    y表示E1的网页在E2中的比例;

    x表示E2的网页在E1中的比例;

    五、随机网页抽样方法

    在前面我们采用随机抽网页的方式进行估计搜索引擎的索引规模,但是不可能做到随机抽样,因此我们采用一些随机抽样的技术:

    (1)随机搜索法(Random Search):跟踪一个用户的查询记录,并从查询结果中随机抽取网页;

    (2)随机IP地址法(Random IP Address):随机生成一个IP地址并对应的服务器,收集该服务器的所有网页;

    (3)随机走路法(Random Walk):如果Web是强连通的,则可以发现一个规律;

    (4)随机查询法(Random Query):随机生成一个查询提交给E1,然后从结果中抽取一个网页,并从网页中随机抽取6-8个低频词,放在E2中查询;

    六、近似重复

    在Web中有40%的网页都是重复的,有些是完全重复,有些是近似重复,比如创建日期不同,但内容相同;

    搜索引擎需要避免索引重复的页面;

    对于完全重复的网页检测,可以通过每个网页生成一个指纹进行比较;

    Shingling:解决近似重复的方法

    文档D的k-shingle是类似于K-gram的概念,表示K个连续的词项构成的序列,比如a Hello World a Hello world的3-shingle是a Hello world  , Hello World a ,   World a Hello   ;

    方法1:利用Jaccard系数计算两篇文档的相似度;但是计算太复杂;

    方法2:

    我们可以通过随机置换方法进行:

     

     步骤:

    (1)对于每篇文档的每个k-shingle通过Hash函数进行映射成为一个点,如上图第一行的蓝点;

    (2)将这些点随机置换到新的位置,比如上图的红点;

    (3)保留随机置换的点的最小点,取红点的最小点;

    (4)当两篇文档最后保留的点位置一样时,则说明文档近似重复;

    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    ubuntu 从零安装tf-serving环境和opencv
    tensorflow pip install 安装指定版本的包并指定安装源(速度会快很多)
    Generative Adversarial Networks,gan论文的畅想
    ubuntu16 安装openssh-server 一直安装不上Unable to correct problems, you have held broken packages
    点乘(内积)和叉乘(外积、向量积)
    Ubuntu中清理Network下Connect to Server的入口
    tensorflow 之tensorboard 对比不同超参数训练结果
    tensorflow 高级api使用分布式之配置
    python opencv3 给图片加中文
    关于scp在zsh报错:zsh:no matches found :
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058352.html
Copyright © 2011-2022 走看看