NLP學習之隨筆(6)

2021-09-27 08:47:18 字數 782 閱讀 7118

基於檢索的問答系統(recap: retrieval-based qa system)

我們輸入一句話。需要計算語料庫中每句話和當前輸入這句話的相似度,然後返回相似度最高的那個。

這種方法的時間複雜度為o(n),,如果語料庫中的有10^7個問題,那麼在計算乙個輸入的時候,要計算10^7次。

針對該方法,我們可以優化處理。

核心思想為:層次過濾思想。

我們可以先計算出詞與文件的倒排表。

比如詞典為[我們,今天,運動,昨天,上,什麼,課]

s1:我們、今天、運動

s2:我們、昨天、運動

s3:你們、上 課

s4:你們、上、什麼、課

那我們可以得出。

我們:[s1,s2] *****===》我們包含在s1,s2中

今天:[s1]

運動:[s1,s2]

昨天:[s2]

上:[s3,s4]

課:[s3,s4]

什麼:[s4]

假定現在輸入的問題是我們上課,那我們可以根據倒排表判斷,同時出現我們和上課的句子[s1,s2],[s3,s4]

則返回[s1,s2,s3,s4].

一般根據倒排表,可以過濾掉大部分的問題,留下來的我們再做進一步篩選。

核心思想就是找出倒排表,跟句詞典找出每個詞存在哪些文件。然後將輸入的文字進行分詞。去查詢具體的詞存在與哪些文件或者問題。

NLP學習之隨筆(1)

nlp一般的處理流程為 原始文字 raw data 分詞 segmentation 清洗資料 cleaning 標準化 normalization 特徵提取 feature extraction 建模 modeling 1 分詞 常見的分詞工具有 jieba分詞 snownlp ltp hannlp...

NLP學習之隨筆(3)

spell correction 拼寫錯誤糾正 那麼什麼是拼接錯誤糾正。請看一下例子。簡而言之,就是使用者的輸入和使用者真正要輸入的存在一定的出入。這種出入可以是英文的拼寫錯誤,也可以是中文的同音詞。那麼對於拼寫錯誤,我們應該去如何解決呢。比如there 和therr。使用者的輸入可能是therr,...

python學習隨筆6

從上面的那張圖中可以發現,我們所說的類應該是包含屬性 變數 和方法 函式 但是上圖中並沒有體現出這兩者。但我個人覺得def init self 就是屬性的一種變形式,雖然圖中寫的是 實質為方法,人家確實就是函式嘛!然而這時我個人目前的理解。為什麼這麼理解呢,我給出了一下是兩個理由 1 init通常是...