注:前端不相关 — 只是用 node 实现了一下如何爬网站数据(大学课程的实验)
网页索引与检索
- 实验目的
l 了解搜索引擎的工作原理及实现方法;
l 熟悉倒排索引的创建;
l 掌握查询处理技术。
- 实验要求
l 独立或合作(1~2 人)完成实验内容;
l 独立完成实验报告;(简单要求如下)
1) 实验目的、内容与要求及实验环境描述;
2) 索引和检索系统设计思路及总体框架;
3)(负责部分的)程序结构及具体实现的流程分析,提供主要数据结构、函数分析等;
4) 实验结果分析;
5) 系统的优缺点、以及待改进的地方;
6) 在实验过程中遇到的问题,实验的心得体会。
- 实验内容
3.1 倒排索引
(1)网页预处理。对实验一采集到的网页数据进行预处理,包括:网页的去噪和正文信息提取、中文分词、停止词处理等。
(2)设计和创建倒排索引。对每个索引的词,至少应该记录其文件频率(df)。设计置入文件的数据结构,至少记录每个词在各个文档中出现的次数,即词频(tf)。同时对每个文档,记录其文档长度。
(3)对索引的过程,生成相关的统计信息,例如:创建索引所需的时间、索引的大小、词汇表长度、具有最大 df 值的词的置入列表的大小等。(可选)
3.2 检索系统
(1)设计实现一个简单的检索系统,可输入检索词,并输出查询结果,按相关度排序。(2)对指定的查询词(IR2019 查询词.txt),给出每个查询结果排序,以及相似度得分。所提交的结果将被评估。
提交的结果文件有查询结果的数据块构成。每个查询词对应一个结果数据块,每个查询词提交 10 条查询结果。每个结果数据块格式如下:
第一行是查询词序号,如“TD01”
每一行是一条查询结果记录,格式为:<URL Similarity>
URL:网页的规范化 URL,如“http://www.scut.edu.cn/new/90…”
Similarity:相似度得分
每个数据块的十条记录按相似度从高到低排序,每个数据块之间以一个空行隔开.
(3)对结果进行人工判断相关或不相关,然后基于该判断用评测指标 Precision@10 和 MAP 计算系统的检索性能指标。(可选)
(4)采用各种查询处理技术对查询进行优化处理。并对所采用的不同技术的应用效果进行比较分析。(可选)
- 提交内容
l 程序:包括源程序及注释,程序安装使用说明;
l 查询结果文件:查询词对应查询结果汇总
l 实验报告:说明程序设计的思路,并对实验过程进行分析和总结。
- 参考资料
l 参考课程讲义的倒排索引、查询处理与检索评估、搜索引擎等章节;
l 开源索引系统 Lucene:http://lucene.apache.org
———- 工作内容分解
1 生成倒序索引的文档
2 生成实验要求的结果(实验关键词 txt)
3 网页 可以实时查询并且生成关键结果
4 在后台跑服务器的服务 读 数据 返回数据
做的优化工作
1 修改停用词表
2 同义但是模糊的词
3 没有用本地数据库保存词语
4 自己获取了词频和词语出现的位置
5 result 去重
6 使用 db.txt 存储数据
参考文章:
1 http://nathanchen.github.io/1…
2 nodejs 读写文件 http://javascript.ruanyifeng….
3 json 格式化的网站
https://www.bejson.com/
逻辑备注:
1writeFileSync
这是会默认会覆盖原来的内容的