0

我正在使用寵物搜索引擎(SE)。如何實現在搜索引擎中使用同義詞?

我現在什麼是布爾關鍵字SE,作爲被分成兩個部分庫:

  • 指數:這是一個倒排索引,即。它與它出現

  • 查詢原始文檔相關聯的術語:這是由用戶提供的,可以是任意複雜的布爾表達式,看起來像(mobile OR android OR iphone) AND game

我想提高搜索引擎以一種自動將簡單查詢擴展到布爾查詢的方式,以便它包含在原始查詢中不會出現的搜索項,即。我想支持同義詞。

我需要一些幫助來構建同義詞圖。

如何計算出現在類似上下文中的單詞列表?

這裏是例如同義詞的名單我想計算:

  • PSQL,pgsql裏,Postgres的,PostgreSQL的
  • 手機,iphone,安卓

和同義詞,包括ngrams like:

  • rdbms,關係數據庫管理系統,...

該算法不一定非常完美,我可以手動後處理結果,但至少我需要知道哪些術語與其他術語相似。

+1

我認爲你想做的事叫做「[概率性主題建模](https://stackoverflow.com/questions/tagged/topic-modeling)」,但是不能回答這個問題。 – knb

回答

2

在標準信息檢索(IR)文獻中,查詢擴充被稱爲,其中包含附加條款的查詢(未出現在初始/

這裏有很多標準方法,一般來說,這些方法基於得分這個概念,並基於某些因素計算術語,然後選擇一些分數最高的術語(比如K,一個參數) 。

爲了計算詞條選擇分數,假設在初始檢索後檢索的排名靠後的(M)排列的文檔是相關的,這被稱爲僞相關性反饋

在其上的術語選擇功能通常取決於的因素有:

  1. 中的術語的頂部排名文檔中的術語頻率 - 越高越好。
  2. 該術語出現的文檔數量(M以外) - 越高越好。
  3. 附加詞與查詢詞共同出現多少次 - 越多越好。

共現因素是最重要的,如果原始查詢包含'psql',會給出諸如'pgsql'之類的術語。

請注意,如果文檔太短,這種方法將無法正常工作,您必須使用其他基於語義的方法,例如i)word-vector based expansion或ii)基於wordnet的擴展。