软件需求工程与建模--搜索引擎项目--设计文档

第一章      绪论

  一.  搜索引擎出现的背景及意义

  网络的出现以及发展对于世界发展的意义是极其重要的,它让地球村的理念变成的现实,信息的传输不再受到时间和空间的限制。

  随着网络技术和应用的不断发展,互联网已经成为了信息的重要来源地,人们越来越依靠网络来査找他们所需要的信息。我们所处的是一个信息爆炸的时代, Google的索引在1998年开始工作,当时他们]收集了2600万个页面,2000年就突破了10亿,到10年后的2008年达到了1,000,000,000,000,Google的数据库变成了全球最庞大的索引之一,数量之庞大让我们震惊。这么巨大的数字导致了一个问题,“ Rich Data, Poor Information”。我们就好像处在一个信息的迷宫,因此,如何有效快速的找到自己需要的信息成为了一个极其重要的问题。

  在没有搜索引擎的时代,用户希望寻找某方面的信息,就必须通过各种途径或者是网站之间的连接寻找,可以这样说,脱离的搜索引擎的网站,就像是信息海洋中的一个一个的孤岛,用户必将面临巨大的搜索成本,同时必须付出大量的时间和精力。

  搜索引擎的出现改变了上述的现象,它通过程序的自动搜寻并建立索引,将这些信息孤岛联系起来,形成了一张巨大的信息网,并且运用分布式计算的巨大力量,能够让用户从海量数据中摒除垃圾信息,获取想要的知识。搜索引擎不仅仅是节省了用户的时间,通过挖掉搜寻成本这座墙,它让许许多多的不可能成为可能。

  二.  项目简介

  这是一咱们想要自己实现的 Search Engine(搜索引擎)+ 搜索出来的网项之间的关系、网项与输入的keyword 之间的关系图可视化软件。就类似于百度和Google一样而咱们还加上了搜索结果的关系可视化。在电脑上(*或手机)上可以输入一个单词或句子,给出搜索结果并可视化。

  三.  选择原因

    1. 通过具体项目实例来了解大数据,应用大数据解决实际问题,这是我们学习的目的,我们组的组员都想借此机会学习当前最新的技术。
    2. 在当今创新创业时代,大数据处理技术要求越来越高,为了跟上时代的潮流,我们理应去了解、培养、训练这些技术。

  四.  文档编写目的

  本要求规格说明书对搜索引擎进行简单的分析,给出了系统的数据流图。系统主要用户是学生,加深与用户间的交流,在功能与系统界面上与用户达成一致的看法,以便于开发出用户满意的系统。

  五.  小组成员及分工

    1. 陈家乐(组长):Webpage Crawler,博客,设计文档。
    2. 韩昇范:Webpage Indexer (+Search Engine),Webpage Relation Visualization。
    3. 金奭炫:FrontEnd Webpage Design。

 第二章      绪论

  一.  系统简介

  搜索引擎(Search Engine)就是指在WWW(World Wide Web)环境中能够响应用户提交的搜索请求,返回相应的査询结果信息的技术和系统,是互联网上的可以查询网站或网页信息的工具。它包括信息搜集、信息整理和用户査询部分。搜索引擎的服务方式分为两种:目录服务和关键字检索服务。目录服务是由分类专家将网络信息按照主题分成若干个大类,用户可以根据分类清晰地找到自己所需要的内容。关键字检索服务可以查找包含一个或多个特定关键字或词组的WWW站点。搜索引擎是互联网的第二大核心技术,涉及到信息检索、人工智能、计算机网络、分布式处理、数据库、数据挖掘、数字图书馆、自然语言处理等多领域的理论和技术,所以具有综合性和挑战性。

  二.  NABCD 分析

    1. N(Need 需求)

  随着技术的进步,所有的事情都可以通过谷歌或百度搜索。 但有时候结果是一篇很长而且有时候难以理解的文章。 通过这个搜索引擎,可以让搜索者更容易找到想要的结果。我们希望通过本次项目来再次巩固一下使用编程语言基础、新的算法框架、新的应用技术。

    2. A(Approach 方法)

    所有人可以通过电脑(*或者手机)上的浏览器访问网站。我们设想的实现步骤如下:

      • 通过用 Python 编写的 Python Crawler (Python爬虫)收集几个网站上的一堆网项,将这些存储到我们的数据库里(信息累积)。
      • 通过用 C++ 编写的程序(搜索引擎)将累积的网项根据已有的280,000个左右个单词组成的词库里的单词来索引,程序还需要支持 DBMS (数据管理系统)软件的一些文件管理系统的基本功能。
      • 从用户输入一个单词或一个句子,将有关(包含对应keyword)的网项显示到我们要设计的一个网站上。
      • 通过Python(和 Java;如果还考虑Android 手机上运行)与前端的接口对接。
      • 将对应的结果中的网项之间的关系(相关度)与 keyword之间的关系, 用 d3.js 来可视化到此网项上。

    3. B(Benefit 好处)

      • 用户通过将可视化的结果来, 能够输入的(一系列构成的)一个句子中能找出来更重要keyword相关的网项,可以对教育、学习方面具有极大的参考价值。
      • 通过具体项目实例来了解大数据,应用大数据解决实际问题能提高咱们的专业方面能力和眼界。

    4.  C(Competitors 竞争)

  在学校里好像没有具有与此类似功能的软件。校外有较多搜索引擎,如Baidu百度和Google谷歌。可是这些搜索引擎缺少有关网项之间的可视化且用户不能按照觉得更重要的keyword来查看搜索结果。

    5. D(Delivery 推广)

  此款产品使用,应用范围首先初步锁定在为大学教育工作者, 学生。若进一步优化爬虫,索引,查找算法,并改善存储数据的方法还能为更大规模的用户提供服务, 扩展。

  三.  系统功能

    1. 爬取网页数据

  爬取网页数据包括从互联网中爬取指定站点的网页数据,解析网页中的数据,将提取的数据保存于数据库。

    2. 素引文件管理

  素引文件是搜索引擎查询的数据基础,直接影响检素效果以及性能。

    3. 检素服务

提供给开发者的基础检素功能接口包括:布尔检素功能,相关性排序功能,自动摘要功能。

     

  四.  系统结构图

     1. 系统静态结构图

    

     2. 系统动态结构图

    

猜你喜欢

转载自www.cnblogs.com/rjxqgcyjm18/p/9188531.html