Search Engine based on Topic-specific Crawler and TF-IDF Algorithm
网页的爬取:crawl.java
Initialize函数处理种子url
1.访问初始网页并下载,同时回传该网页读取到的内容(读取网页的函数将在下文说明)。
2.根据正则表达式提取title,并保存为下载来的网页的保存名称,为后续的保存做准备
下载到的网页
3.1 倒排索引
(1)网页预处理。对实验一采集到的网页数据进行预处理,包括但不限于:正文信息提取、中文分词、停止词处理等。
(2)设计和创建倒排索引。对每个索引的词,至少应该记录其文件频率(df)。设计置入文件的数据结构,至少记录每个词在各个文档中出现的次数,即词频(tf)。同时对每个文档,记录其文档长度。
(3)对索引的过程,生成相关的统计信息,例如:创建索引所需的时间、索引的大小、词汇表长度等。
3.2检索系统
(1)设计实现一个简单的检索系统,可输入检索词,并输出查询结果,按相关度排序。
(2)对指定的查询词(IR2021查询词.txt),给出每个查询结果排序,以及相似度得分。所提交的结果将被评估。
提交的结果文件有查询结果的数据块构成。每个查询词对应一个结果数据块,每个查询词提交10条查询结果。每个结果数据块格式如下:
第一行是查询词序号,如“TD01”
每一行是一条查询结果记录,格式为:
URL:网页的规范化URL
Similarity:相似度得分
每个数据块的十条记录按相似度从高到低排序,每个数据块之间以一个空行隔开。
3.3检索优化及系统评测
选做以下之一:
(1)对结果进行人工判断相关或不相关,然后基于该判断用评测指标Precision@10和MAP计算系统的检索性能指标。
(2)拼写检查:针对用户拼写错误或关键字生僻而导致搜索结果不佳的问题,提供相近的词建议。该功能可通过查询案例来展示。
4. 提交内容
程序:包括源程序及注释,程序安装使用说明;
查询结果文件:查询词对应查询结果汇总
实验报告:说明程序设计的思路,并对实验过程进行分析和总结。












