/SearchEngine

This is a search engine project from SWJTU

Primary LanguageJavaApache License 2.0Apache-2.0

搜索引擎

西南交通大学吴晓老师互联网搜索引擎课程课程设计

语言

Java

目的

第一阶段

通过下载引擎(Web Crawler/Spider)自动下载至少500个英文文档/网页,以及500个中文文档/网页,并保留原始的文档/网页备份(如:News _1_Org.txt) 编程对所下载文档进行自动预处理:

  • 将各个单词进行字符化
  • 完成删除特殊字符等操作调研并选择合适的中文分词技术和工具实现中文分词,可参看《Lucene分词器比较》:https://teniteve.com/blog/223396
  • 删除英文停用词(Stop Word)
  • 删除中文停用词调用或者编程实现Porter Stemming
  • 功能将中文文档进行字符化,即可被搜索引擎索引的字符单元
  • 对于英文文档,经过以上处理之后,将经过处理之后所形成简化文档保存(如:News_1_E txt),以备以后的索引处理
  • 对于中文文档,经过以上处理之后,将经过处理之后所形成简化文档保存(如:News_1_C.txt),以备以后的索引处理

第二阶段

(一) 建立并实现文本搜索功能

n 利用/调用开源搜索引擎Lucene(http://lucene.apache.org/)或者Lemur(http://www.lemurproject.org/)实现文本搜索引擎。查阅相关资料,安装软件。

n 对经过预处理后的500个英文和中文文档/网页建立搜索并实现搜索功能。

n 通过上述软件对文档建立索引(Indexing),然后通过前台界面或者已提供的界面,输入关键字,展示搜索结果。

n 前台可通过网页形式、应用程序形式、或者利用已有的界面工具显示。

n **必须实现英文搜索功能。**中文搜索功能作为可选项。

(二) 比较文档之间的相似度

n 通过余弦距离(Cosine Distance)计算任意两个文档之间的相似度,列出文档原文,并给出相似度值。

(三) 对下载的文档,利用K-Means聚类算法进行聚类。

n 将下载的500个中文/英文文档聚为20个类,并显示聚类之后所形成的三个最大的类,及每个类中代表性的文档(即,离类中心最近的五个文档)。

n 距离计算公式,可采用余弦距离,也可用欧式距离。

说明

仅供交流参考 抄袭必究!