我正在研究宠物搜索引擎(SE)。
我现在所拥有的是布尔关键字SE,作为一个分为两部分的库:
index:这是一个倒排索引即。它将术语与出现的原始文档相关联
query:由用户提供,可以是任意复杂的布尔表达式,看起来像(mobile OR android OR iphone) AND game
我想改进搜索引擎,以自动将简单查询扩展到布尔查询的方式,使其包含原始查询中没有出现的搜索词,即。我想支持同义词。
我需要一些帮助来构建同义词图。
如何计算出现在类似情境中的单词列表?
以下是我想要计算的同义词列表的示例:
以及包含ngrams的同义词:
算法并不是必须完美的,我可以手工后处理结果,但至少我需要知道哪些术语与其他术语类似。
答案 0 :(得分:3)
在标准信息检索(IR)文献中,使用附加术语(不会出现在初始/原始查询中)对查询进行丰富,称为查询扩展。< / p>
有很多标准方法,一般来说,基于某些因素评分术语的概念,然后选择一些术语(比如K,一个参数) )得分最高。
要计算术语选择分数,假设在初始检索后检索的排名靠前(M)的文档是相关的,这称为伪相关反馈。
术语选择功能通常依赖的因素是:
共现因素是最重要的,并且会为您提供诸如“pgsql”之类的术语。如果原始查询包含&#39; psql&#39;。
请注意,如果文档太短,此方法将无法正常工作,您必须使用其他基于语义的方法,例如i)word-vector based expansion或ii)基于wordnet的扩展。