nlp-lucene

Project Url: gugug/nlp-lucene
Introduction: 电影搜索引擎,基于 lucene 的电影搜索引擎,主要数据来源为百度新闻,豆瓣电影,百度百科,新浪微博。
More: Author   ReportBugs   
Tags:

内容介绍

本文研究的主要内容是:面向电影搜索引擎的功能设计和技术实现。搜索引擎功能设计主要包括,信息资源的集成,查询扩展模块,Lucene 检索模块,结果可视化。
信息资源的集成主要使用网络爬虫技术,利用 java 语言的 regex 包和 selenium 插件实现模拟登录以获取新浪微博,豆瓣电影,百度百科,相关新闻等不同数据源数据,以文档形式存储。查询扩展模块通过 IKAnalayzer 实现输入文本的分词和关键词的提取,为检索做准备。Lucene 检索主要包括建立索引和对结果文档的排序。搜索结果可视化通过 spring MVC 框架搭建完整的系统实现。
技术实现主要包括:基于 Lucene 的全文检索技术,spring MVC 框架,java 爬虫技术,Python 爬虫技术,html+css+JavaScript 网页设计等。

实现流程详解

文本预处理

由于数据基本上都是中文的,Lucene 自带的分词器不支持对中文进行分词,所以导入了 IKAnalazer 对文本进行分词,同时对停用词过滤。

建立索引文件

获取文本内容和文本路径,分别作为两个域,利用 Lucene 存放在索引文件中,索引文件可以放在磁盘中,建立索引为一次性操作,为之后的检索做准备。

搜索内容检索

获取搜索内容后,提取出关键词,利用 Lucene 在索引文件中的词典分别对文本内容和文本路径匹配关键词,将所有匹配到的文本查找出来,按照匹配程度由高到低的顺序排序,返回给用户。

倒排索引

lucene 将上面三列分别作为词典文件(Term Dictionary)、频率文件(frequencies)、位置文件 (positions)保存。
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools