1.主要工作
给出一个关键词,把关键词转换成一系列按照概率排序的
SPARQL
语句输出出来。
2.主要步骤
主要有三个步骤:术语匹配、查询图的构造、和查询排序。
2.1术语匹配:把关键词和知识库中的资源进行匹配。方法:形态学匹配(子串,缩写等)、语义匹配(近义词)。
2.2查询图的构造:把匹配上的资源链接起来,这样丢失的关系和概念就可以被找回,从而构造一个完整的查询图;利用第一步返回的那些资源项用最小生成树的方法来构造。
2.3基于概率的查询排序:从所有返回的的查询中查找用户最可能需要的查询。由以下公式可知,事件F在事件D和K同时发生的条件下发生的概率,正比于事件F在D发生的条件下发生的概率和事件F在K发生的条件下发生的概率(其实就是两次贝叶斯公式展开)。
于是我们定义了两种概率来进行查询排序。KQM:临近匹配概率和反馈概率。KBM:信息量、事件发生的概率。
3.算法流程
用户输入一个关键词,术语匹配用一组匹配算法从知识库中找到关键词的匹配,然后查询图构造阶段把所有的查询词利用最小生成树算法来构造查询图,最后在查询排序阶段评估两个项KQM和KBM,返回一系列按照概率大小排序的SPARQL语句。
注:本文的spark不是现在通用的spark计算框架。