论文部分内容阅读
语义搜索虽然提出多年,但是为了能够运用精确的语义搜索技术,用户必须熟知本体中的结构和相应的知识表示,并且具备写形式化查询语言的能力。所以目前语义搜索的应用人群往往还停留在专家用户这个层面上,这已经成为阻碍语义搜索发展的严峻问题。在另一方面,广大的互联网用户仍然习惯于传统基于关键词的搜索方式,即使搜索引擎提供了简单的布尔表达式查询来增加查询的准确性,然而几乎所有的用户都不用这种最简单的逻辑表达式来进行日常的查询。所以,如果能够将关键词查询这种方式无缝地衔接到语义搜索上,那么对于互联网搜索的广大用户来说,他们就可以凭借习惯的关键词作为手段而达到语义搜索的准确结果。本文提出了一种将用户输入的关键字自动翻译,并且排序成语义搜索查询的方法,并且实现了系统原型SPARK来验证我们的方法。这样通过输入关键词,用户就能获得语义搜索引擎所能接受的形式化语义查询。但由于关键词和语义查询之间的巨大差异,有三个主要的难点需要克服:1)关键词的歧义性:同一个关键词在不同的背景下有不同的含义,如何区分用户想要表达的真正含义是一个重要的问题。2)关系的缺失:在传统的关键词搜索中,词与词之间没有显式的修饰关系,如何区别查询的主要部分和修饰部分的关系非常困难。3)翻译结果的多样性:歧义性和属性缺失会造成大量可能的查询,如何挑选出符合用户信息需求的查询就显得非常重要。为了解决以上的问题,我们针对性提出了将关键词翻译成为系统所能接受的语义查询的三阶段步骤:通过多种单词-本体资源匹配方法解决了多义问题,通过有效的查询图生成算法较好地解决了关系缺失的问题,最后通过查询排序的方法对生成的语义查询进行评价,向用户反馈相关的语义搜索查询。在SPARK的实现中,用户可以输入任意表达信息需求的关键词,系统根据算法最后生成一系列符合用户信息需求并且可以被语义搜索接受的SPARQL查询语句反馈给用户,或用户可以直接将这些SPARQL查询提交给执行引擎以获得语义搜索的结果。实验表明,本文提出的方法在转化查询的质量上达到了比较好的效果,也证明通过关键字可以进行有效的语义搜索,这点对于语义搜索的推广和用户的普是有跨时代意义的。此外,我们还分析了目前方法的不足之处,并对进一步的研究进行了讨论。