注:前端不相关---只是用node实现了一下如何爬网站数据(大学课程的实验)javascript
网页索引与检索
l 了解搜索引擎的工做原理及实现方法;
l 熟悉倒排索引的建立;
l 掌握查询处理技术。html
l 独立或合做(1~2人)完成实验内容;
l 独立完成实验报告;(简单要求以下)
1) 实验目的、内容与要求及实验环境描述;
2) 索引和检索系统设计思路及整体框架;
3) (负责部分的)程序结构及具体实现的流程分析,提供主要数据结构、函数分析等;
4) 实验结果分析;
5) 系统的优缺点、以及待改进的地方;
6) 在实验过程当中遇到的问题,实验的心得体会。前端
3.1 倒排索引
(1)网页预处理。对实验一采集到的网页数据进行预处理,包括:网页的去噪和正文信息提取、中文分词、中止词处理等。
(2)设计和建立倒排索引。对每一个索引的词,至少应该记录其文件频率(df)。设计置入文件的数据结构,至少记录每一个词在各个文档中出现的次数,即词频(tf)。同时对每一个文档,记录其文档长度。
(3)对索引的过程,生成相关的统计信息,例如:建立索引所需的时间、索引的大小、词汇表长度、具备最大df值的词的置入列表的大小等。(可选)java
3.2检索系统node
(1)设计实现一个简单的检索系统,可输入检索词,并输出查询结果,按相关度排序。 (2)对指定的查询词(IR2019查询词.txt),给出每一个查询结果排序,以及类似度得分。所提交的结果将被评估。
提交的结果文件有查询结果的数据块构成。每一个查询词对应一个结果数据块,每一个查询词提交10条查询结果。每一个结果数据块格式以下:
第一行是查询词序号,如“TD01”
每一行是一条查询结果记录,格式为: <URL Similarity>
URL:网页的规范化URL,如“http://www.scut.edu.cn/new/90...”
Similarity:类似度得分
每一个数据块的十条记录按类似度从高到低排序,每一个数据块之间以一个空行隔开.
(3)对结果进行人工判断相关或不相关,而后基于该判断用评测指标Precision@10和MAP计算系统的检索性能指标。(可选)
(4)采用各类查询处理技术对查询进行优化处理。并对所采用的不一样技术的应用效果进行比较分析。(可选)git
l 程序:包括源程序及注释,程序安装使用说明;
l 查询结果文件:查询词对应查询结果汇总
l 实验报告:说明程序设计的思路,并对实验过程进行分析和总结。github
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
这是会默认会覆盖原来的内容的apache