文字獲取和搜尋引擎簡介

爬蜥發表於2018-07-17

coursera課程 text retrieval and search engine 第一週 推薦。

NLP定義

幫組理解語言句子的含義

例子:a dog is chasing a boy on the playground.

語義理解的一些分析方面

  • Lexical analysis:詞彙分析,找到動詞,形容詞,名詞等
  • Syntactic analysis : 句法分析;找到片語,比如A DOG,即找到既定的結構
  • Semantic analysis:語義分析,比如Dog代表什麼
  • Inference: 根據語義做推斷,上述例子可以推斷出一個可能,chasing可以知道這個男孩可能會害怕狗
  • Pragmatic analysis:根據句法本身去推斷為什麼這樣做,理解為什麼有人這樣描述,比如可能是想讓某人把狗喚回來,以免男孩被狗傷著

Bag of words:保留所有的單詞,重複的也會保留,但是不關心單詞在生個句子中出現的順序

文字獲取的分類

  1. 類似搜尋引擎的Pull模型:使用者擁有主動權,它具有Ad hoc屬性,就是說暫時性的需要,後續不再使用,比如搜尋到某個關鍵字的文件後,這個關鍵字就不再被使用

查詢和瀏覽的區別:查詢是使用者知道搜尋什麼,瀏覽是將內容放置供人檢視,而不是查詢

  1. 類似推薦系統的Push模型:系統擁有主動權,一個良好的推薦系統能夠給使用者推送它真正需要的資訊

文字獲取的方式

使用者給定查詢關鍵字在既有的資料集裡頭搜尋出想要的結果以供瀏覽。也可以稱作”Information Retrieve(IR)”,主要策略集中在 如何通過給定的關鍵字查到結果。
文字獲取的方式一般有兩種:

  • 第一是 document selection,即根據某種函式f給查詢q和檔案d作用後的結果來分類,[f(q,d)=1 / 0],明確把文件分隔開,要麼完全相關,要麼完全不相關;
  • 第二是 Ranking,它是計算相關性,並依次排列順序,關鍵在於如何說明某個檔案的相關性比另一個的相關性更大,當相關性大於某個閾值的時候就返回匹配的檔案[ f(q,d)>
    THETA]

文字獲取(Text Retrive TR)和DBA對比:TR的資料結構是非結構化的,語義存在歧異,也沒有明確表明什麼需要返回,因而返回的是相關檔案;而DB是結構化的,語義明確,有完整的說明要返回什麼,因而返回的是完全匹配的記錄;
TR更需要有經驗的演變[使用者來判別那個結果更好]而來查詢結果

排序函式的分類

  • Similarity-based models ,相似性 f(q,d) = similarity(q,d)
  • Probabilistic models ,概率模型 f(d,q) = p(R=1| d,q) r between{0,1
    },假設查詢關鍵字和文件都是隨機變數R的觀察結果,對於特定的文件,查詢的文件定義分數為R等於1的概率
  • probabilistic inference model概率推斷 f(d,q)=p(d->
    q) ;
  • axiomatic model 查詢一個rank函式能夠滿足給定的條件,即為結果

這幾種型別有著共同的策略,一般來說有這麼幾種方式:

  1. terms frequency(TF) 出現的次數
  2. document length ,一般了說某個查詢關鍵字在很長的文件裡面出現很多的次數比在短檔案裡面出現次數多顯得更無意義,從某種角度來講,長檔案出現的關鍵字本來就趨向於更多
  3. document frequency(DF) 即關鍵字在文件出現的次數佔總共內容的比例,意在出現頻率

向量空間模型簡介[Vector space Model(VSM)]

它是一個框架,通過詞(Term)向量的方式來代表一個 doc/query,每一個Term都可以是不同的概念,每一個又代表不同的維度,N term代表N維,對於一個Query vector來說,它可以表示為q=(x1,x2,x3…)每一個xi表示term的加權,Doc vector類似,因此查詢和文件之間的關係可以相識於q,和d的相似性 relevance(q,d) 相似於 similarity(q,d) = f(q,d)

來源:https://juejin.im/post/5b4df80be51d4519945fd50c

相關文章