基于语义的全文搜索引擎
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 文档搜集
网页搜集 文档转换 数据库导入
4.1 智能网页搜集
智能网页搜集
分布式并行 多策略定制 智能搜集 智能信息过滤
4.1 智能网页搜集
分布式并行
Spider
URL 数据库
超链 分析
Spider
网页 解析
网页 数据库
Spider
Spider 管理
4.1 智能网页搜集
多策略定制
IP地址范围: 网站类型: 关键词表: 专业和主题设定: 运行时间与周期: 网页数据更新周期: 202.96.*.*~202.100.*.* .com, .gov, sports, news 奥运会,音乐,军事, SARS, 神舟六号 02:00~08:30,每天 一天、一周、一月…
5.4 存储
段索引
Segments ::= SegCount, <SegName, SegSize>SegCount
锁文件
防止意外删除和操作冲突
删除文档表
Deleteable ::= DelableCount, <DelableName>DelableCount
5.5 全文检索
检索
对索引文件的查找与关联检索
5.2 语言分析
构建模型
文档di的概率
权重计算公式
5.2 语言分析
自动分类
分类算法:基于向量空间模型的多层次分类 边分类边查询 人工干预 计算该文档与各大类模型之间的相似度,与哪个大 类模型的相似度最大,则该文档属于该大类,然后 再计算与该大类的子类模型之间的相似度,就这样 递归下去,一直到将文档分到最小的子类。
检索结果排序
通用排序 按指定字段排序
最佳结果输出
分批输出
检索优化
分级结果缓存
5.6 查询分析
关键词和字段分析
通配符(*, ?) 模糊查询 近似查询 范围查询 布尔查询(AND,OR,NOT,+,-) 组合查询
5.6 查询分析
语义概念分析
概念
概念分类 概念间的关系 例如:电影--导演,论文--作者,专利
文档格式
Txt, Doc, PDF, HTML, XML, 数据库
5.2 语言分析
对文档集进行语言分析和转化
中文分词 特征提取 自动分类(可选)
分类模型构建 自动分类
5.2 语言分析
中文分词
词库管理:整理并构建词库,建立停用词表 基于词典的分词算法:事先构建相应的词库索引,采 用一种改进的快速分词算法,在快速查找两字词的 基础上,利用近邻匹配方法来查找多字词,进行最 大匹配分词,这样可以提高分词效率。 歧义处理:采用句内相邻字之间的互信息及t-测试 差这两个统计量解决自动分词中歧义切分字段的方 法。即使用正向和反向最大匹配法。 未登录词处理:人名、地名、组织机构名、音译名 等的识别算法。(基于规则和专用词表)
Term Field Document Index
5.4 存储
索引文件格式
项索引 字段索引 段索引 锁文件 删除文档表
压缩存储
5.4 存储
项索引
项信息
TermInfoFile ::= TermCount, TermInfos TermCount ::= UInt32 TermInfos ::= <TermInfo>TermCount TermInfo ::= <Term, DocFreq, FreqDelta, ProxDelta> Term ::= <PrefixLength, Suffix, FieldNum> Suffix ::= String PrefixLength, DocFreq, FreqDelta, ProxDelta ::= VInt
5.6 查询分析
确定查询的专业领域(纵向)
依据知网HowNet,WordNet等术语本体库 来确定用户查询可能相关的专业领域。 其中包括同义词的扩展,相关概念的关联等 方式,来确定与用户查询相关的领域。
5.6 查询分析
外挂知识库
根据具体应用和领域的需要,外挂相应的知识库,以便于更 为快速准确地进行查询分析,理解用户查询的目标和意图。 外挂的知识库需要按照统一的标准规范来构建,以便于灵活 地挂接和使用,并适应不同领域、不同应用的要求。 例1:对于某个专业领域的查询,可以按照本体知识库标准构 建领域知识库。对于用户的专业查询,可以根据领域知识库 进行精确的概念定位和语义理解,形成规范准确的查询。 例2:对于通用的查询,可以通过对查询日志的统计分析(如 搜索指数、关键词排行榜等),将热点的、人们大量关注的查 询内容进行分类,并构建每个分类下的本体知识库和实例知 识库。通过反馈到搜索模块来提高查询的准确度。从而将大 多数人最关心的问题进行精加工,满足大多数人的查询需求。
项信息索引
TermInfoIndex ::= IndexTermCount, TermIndices IndexTermCount ::= UInt32 TermIndices ::= <TermInfo, IndexDelta>IndexTermCount IndexDelta ::= VInt
项频数 项位置
5.2 语言分析
特征提取(主题关键词)
语义词频:由于每篇文章总有一些核心概念。一个 词的语义频率越高,该词成为关键词的可能性越大。 词性:关键词一般是名词或动词 词长:根据“省力原则”,特征关键词的长度一般小 于等于2。 词的出现规律:每一篇文章均是围绕一个中心展开 的,所以关键词贯穿文章的始终,较均匀地分布在 文章的各段中。 词的新颖程度:对任一词而言,在语料库中出现次 数较少,而在本文中出现次数较多的词体现出了新 颖的特点,更有可能成为关键词。
实例
个体实例 与概念的关系 例如:具体的人、地、物、事、时、机构, 人(毛泽东), 地(九寨沟), 事(西安事变)
5.6 查询分析
文档类型的分类(横向)
构建文档类型本体
文档的层次分类 分类的同义词 分类之间的关系
确定查询的目标文档类型
根据查询关键词确定类型 确定所在分类层次 分类的同义词 以及该类可能存在的关联关系
5.3 索引
索引维护(添加、修改、删除)
字段名 存储字段值 词典 词频数据 词出现位置 归一化因子 词向量 删除文档
5.3 索引
索引优化
批量索引 批量存储 内存索引 批量的大小配置 批量的间隔配置
5.4 存储
基本元素:
项:字符串,一般用词来表示 字段:由一定项的命名序列组成 文档:由一定的字段序列组成 索引段:由一定的文档序列组成
谢谢!
其他全文数据库接口
5. 全文检索
查询分析 搜索 索引存储 全文索引 语言分析 文档集
组成模块
文档集 语言分析 索引 存储 搜索 查询分析
5.1 文档集
以文档为基本单位 文档结构
文档1(字段1,字段2,字段3…) 文档2(字段1,字段2,字段3…) …
字段:由<字段名,字段值>对组成
字段名:如标题、中文、主题、时间 字段值:具体的文本值
出现位置
11,13,28,39,… 15,23,58,69,…
权重
0.32, 0.48,… 0.63, 0.35,…
…
…
…
…
5.3 索引
基于主题关键词的索引
根据每个文档中特征抽取得到的主题关键词, 计算每个主题关键词在文档中的权重。 根据主题关键词在文档中的权重进行排序索 引,即权重高的在索引时排在前面。
1. 问题分析
突出问题
中文分词不准确 索引太多 检索结果不准确 没有分类 …
2. 需 求
功能需求 性能需求 其他需求
功能需求
文档收集
网页搜集 文档转换(可选) 数据库导入(可选)
全文索引
语言分析 全文索引 查询分析 全文检索
功能需求__全文检索
增量索引和 批量索引 数据源
可以进行增量的索引,可以对于大量数据进行批量索引,并 且接口设计用于优化批量索引和小批量的增量索引。 采用文档结构,可以非常灵活的适应各种应用,不限制特定 的数据源,只要前端有合适的转换器把数据源转换成相应结 构。 文档是由多个字段组成的,可以控制哪些字段需要进行索引, 哪些字段不需要索引,进一步索引的字段也分为需要分词和 不需要分词的类型。 通过语言分析器的不同扩展实现:可以过滤掉不需要的词: 的,个,了等;支持中文分词和西文语法分析。 通过查询分析接口的实现,可以定制自己的查询语法规则, 包括模糊、近似、布尔、组合、等查询分析。 能够支持多用户的使用。 能够支持分布式应用
4.1 智能网页搜集
智能搜集
自动分析和跟踪超级链接 深度搜索和广度搜索结合 动态控制和管理线程 定点专业搜集
信息过滤
基于网站类型的过滤 基于关键词的过滤 基于网页模型的过滤
4.2 文档转换(可选)
文档转换工具
Doc PDF HTML XML …
4.3 数据库导入(可选)
数据库导入 数据库接口
Oracle SQL Server DB2 MySQL …
分类算法——多层次分类
5.3 索引
倒排索引 基于主题关键词的索引 索引维护(添加、修改、删除) 索引优化
5.3 索引
倒排索引
确定文档中的关键词 统计索引每个关键词在文档中信息 针对每个文档进行多个字段的索引 关键词
关键词1 关键词2
文档[编号,频率]
123[3], 238[5],… 12 [5], 28[3],…
5.4 存储
字段索引
字段信息
FieldInfos ::= FieldsCount, <FieldName, FieldBits>FieldsCount
字段索引
FieldIndex ::= <FieldValuesPosition>SegSize
字段值
FieldData ::= <DocFieldData>SegSize DocFieldData ::= FieldCount, <FieldNum, Bits, Value>FieldCount
分类流程
训练 文档集
前期训练
构建模型
分类模型
抓取的 网页
自动分词
特征提取
文档分类
分类 数据库
5.2 语言分析
构建模型
词因素 类与类之间的比较 同类文档之间比较
针对经典的tf.idf的不足,在tf.idf的基础 上引入信息论中的信息增益方法,并综合考 虑词的集中度(即某个类的特征词应该集中 出现在该类文档中,而不是均匀地分部在各 类文档中),以提高文档分类效果。
基于语义的全文搜索引擎 董明楷
提 纲
问题分析 需求分析 系统架构 文档搜集 全文索引
1. 问题分析
在互联网信息日益膨胀的今天,信息检索、搜索引擎已 经成为人们浏览网络信息必不可少的工具。不管是基 于分类目录的检索,还是基于全文检索的搜索引擎, 基本都是基于关键词匹配的,因而“信息过载 ”问题一 直困扰着用户。然而,更深层次的问题在于: “忠实表达”问题:用户很难简单地用关键词或词串来 忠实地表达他所真正需要检索的内容。 “表达差异”问题:由于环境等各种因素的不同,同一 概念可以用不同的语言表现形式来表达。 “词汇孤岛”问题:由于概念之间的各种密切的关系, 用户提问时很难用词汇显式地表达他所查找的信息。
索引内容
语言分析 查询分析 并发搜索 分布式
性能需求__全文检索
全文索引 语言匹配 匹配度 结果输出 可定制性 搜索结果
将数据源中的数据都通过全文索引一一建立反向索引 通过项(term)进行匹配,通过语言分析接口的实现,可以实 现对中文等非英语的支持。 有匹配度算法,将匹配程度(相似度)比较高的结果排在前 面。 通过特别的算法,将最匹配度最高的头100条结果输出,结果 集是缓冲式的小批量读取的。 通过不同的语言分析接口实现,可以方便的定制出符合应用 需要的索引规则(包括对中文的支持) 高负载的模糊查询应用,需要负责的模糊查询的规则,索引 的资料量比较大。
其他需求
方便简化的查询分析 通用的输入输出接口(XML) 文档记录的添加、修改和删除 可以根据某个字段进行排序 索引过程优化 搜索过程优化
3. 系统架构
用户接口Interface
检索查询Searcher
全文索引Indexer
网页搜集 Spider
文档转换 DocTransfer
数据库导入 DBImporter