深度文字匹配

2021-09-25 17:38:33 字數 1026 閱讀 2778

最近在了解文字匹配相關一些實現和演算法。在資訊檢索系統裡面,如何釐清文字的相關性,是乙個非常關鍵的問題。所謂的相關性,主要包括兩個方面, 乙個方面是文字相關性,還有乙個語義的相關性。在經典的模型裡面,比較常見的做法是向量空間模型(vector space model)。

向量空間模型, 原理則是將query和doc的文字對映成同乙個數字向量空間,然後通過consine或者jaccard, 實現相似度距離的計算。步驟如下:

將query分詞, 然後每個詞項設定對應的權重,得到詞向量:(q1-w1, q2-w2, q3-w2)。這裡權重的設定不妨設,每個詞項的權重都是1。

然後將doc分詞, 然後計算每個doc詞項的term的bm25, 然後以這個bm25作為這個詞的向量,如果該詞在query的向量空間中沒有出現,則設定為0。最終將向量空間轉化成和query的向量空間維度保持一致。

然後通過cosine和jaccard,獲取兩個向量的距離,作為得分。

這種做法簡單明瞭,實操空間也比較大, 上述的做法相當於每個詞都是孤立的存在。可以在此基礎之上新增一些規則,包括詞的連續降權,詞的位置降權,還有就是完全匹配提權、部分匹配提權的規則。

在垂直搜尋領域,有sug詞的提示,而query詞經過了nlp的意圖識別和實體識別,已經完成了大部分query詞的糾錯。不過呢,nlp也是**失敗的時候, 無法完全覆蓋所有的case。

上面的傳統經典的模型,是基於向量空間模型的,方法單純粗暴,加上規則方法,可以實現乙個baseline的方案。為了挖掘更深層次的文字匹配,目前很多搜尋引擎都引入了深度學習的模型,來解決問題和提公升效果。

這裡簡單介紹乙個**,可以看到大牛的*****及其code的實現,可謂是集原理和實踐於一體。

搜尋對應的課題,例如information retrieval, 就可以看到很多資訊檢索的最新的**和**的實現方法。同時也可以實操一把,復現**的場景和效果。

這裡要介紹的乙個專案是

matchzoo: a toolkit for deep text matching

這個工具, 主要致力於解決包括:問答系統、資訊檢索、意圖識別等等常見的工業問題。

深度文字匹配的基本方法

這裡主要的內容來自龐亮博士的一篇綜述性 後面會放出 的參考位址。深度文字匹配模型可以分為三類 基於單語義文件表達的深度學習模型 基於單語義文件表達的深度學習模型主要思路是,首先將單個文字先表達成乙個稠密向量 分布式表達 然後直接計算兩個向量間的相似度作為文字間的匹配度。基於多語義文件表達的深度學習模...

文字匹配模型TextMatching

個人心得 文字匹配問題可轉化為二分類問題,輸出概率則為相似度 將影象識別的思路應用於文字匹配任務中,利用卷積抽取文字特徵 textmatching模型架構如圖所示。我們將模型架構拆解為如下幾個步驟 文字嵌入 本文方法首先利用詞向量模型得到文字或者句子中的每個詞的embedding向量,這一步也是非常...

嚴格匹配 perl的文字匹配提取

perl的正規表示式極其強大,對於文字處理很有優勢。下面這個例子展示在ic驗證中怎麼利用perl的正規表示式做匹配提取。在ic驗證中會寫大量的task function,對很複雜的系統進行 的時候,會大量呼叫task function,如果能夠在進出task function的時候在log中列印出進...