校园网搜索引擎
一、 项目目的:使用 Python 建立一个适合校园网使用的 Web 搜索引擎系统,它能在较
短的时间内爬取页面信息,具有有效、准确的中文分词功能,能实现对网上新闻的快速
检索展示。
二、 项目实现步骤:
1. 网络爬虫爬取这个网站,获得所有网页链接。
2. 得到网页的源代码,解析出想要的新闻内容、标题、作者等信息。
3. 把所有网页的新闻内容做成词条索引,一般采用倒排索引。(倒排索引:倒排表以字
或词为关键字进行索引,表中关键字对应的记录表项记录了出现这个字或词的所有
文档,一个表项就是一个字表段,它记录该文档的 ID 和字符在该文档中出现的位置
信息)倒排表的结构:
4. 搜索时,根据搜索词在词条索引中查询,按顺序返回相关的搜索结果,也可以按照
网页评价的排名顺序返回相关的搜索结果。
三、 项目模块
信息采集模块:主要是利用网络爬虫实现对校园网信息的抓取;
索引模块:负责对爬取的新闻网页的标题、内容和作者进行分词并建立倒排词表;
网页排名模块:TF/IDF 是一种统计方法,用于评估一字词对于一个文件集或一个词
料库中的一份文件的重要程度;
用户搜索界面模块:负责用户关键字的输入以及搜索结果信息的返回。
四、 关键技术
正则表达式:将网页中的超链接提取出来,Python 中的 re 模块,包含正则表达式
的所有功能。
中文分词:Python 中的 jieba 包
文本分类的关键词提取:jieba 可以简便的提取关键词。Jieba.analyse.TFIDF().TF/IDF
是一种统计方法,用于评估一字词对于一个文件集或一个语料库中的一份文件的
重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着
它在语料库中出现的频率成反比下降。主要思想:如果某个词或短语在一篇文章
中出现的频率 TF 高,并且在其他文章中很少出现,则认为此词或者短语具有很好
的类别区分能力,适合用于分类。
五、 程序设计步骤
5.1 信息采集模块---网络爬虫的实现
网络爬虫的实现原理及过程如下:
(1) 获取初始的 URL。初始的 URL 地址可以由用户指定的某个或某几个初始爬取网页决
定;
(2) 根据初始的 URL 爬取页面并获得新的 URL。在获得初始的 URL 地址之后,首先需要
单词 1
文档 1
文档 2
.。。。。。
单词 2
文档 1
文档 2
.。。。。。
。。。。。