1. 程式人生 > >自然語言處理 學習筆記(四)

自然語言處理 學習筆記(四)

個人學習nlp筆記:學習材料CS124、COSC572和《Speech and Language Processing》第三版

在這裡插入圖片描述

自然語言處理 學習筆記(四)

1. 資訊檢索

從文件中提取需要的資訊
在這裡插入圖片描述

在這裡插入圖片描述
info need步驟裡,把我們想要的資訊翻譯為搜尋框能夠理解的形式
query裡翻譯為搜尋引擎能理解的形式。這個過程中主要會出現兩種錯誤,本課主要關注第二種,即怎樣才能正確組織文字來送到搜尋引擎。我們選擇 how trap mice alive; how trap mice without killing或者是加上引號,都有不同效果。
在這裡插入圖片描述


如何評價是否很好地檢索到檔案
在這裡插入圖片描述

2. 詞彙-文字關聯矩陣

比如在所有文件種,我們想檢索A and B, but NOT C,我們可以用正則的方法,但是這對大的語料庫很慢,而且很多複雜操作不能用或不靈活,而且我們還要能對文件進行排序。
在這裡插入圖片描述

我們可以引入詞彙-文字關聯矩陣來解決上訴的那個要求,因為從矩陣種我們知道這些詞彙是否在某個文件種存在。
在這裡插入圖片描述

用其的二進位制形式表示,若為NOT,則取反,即101111就表示Calpurnia是否在這6個文件中出現,因為前面是NOT,所以010000取反。
在這裡插入圖片描述

在大文件中,100w個1000字的文件,而我們的term,有500k個,
在這裡插入圖片描述
得到一個巨大的文件,其中絕大多數都是0,因此需要更好的,比如只記錄1的資料結構。
在這裡插入圖片描述

3.倒排索引(Inverted Index)

若只是最普通的資料結構,因為文字出現的頻率不同,每個列表包含的內容長度不同。同時因為列表是有序的,所以插入資料時候也會很麻煩。
在這裡插入圖片描述
在這裡插入圖片描述

2.1 倒排索引的結構

在這裡插入圖片描述
第一步:
在這裡插入圖片描述

得到一個token和其的documentID
在這裡插入圖片描述
由詞彙進行排序(字母表中順序)
在這裡插入圖片描述

把同個文件中重複的token只考慮一個,對映到dictionary和postings中,同時在dictionary中記錄出現頻率(也就是這個詞在幾個文件中出現了)
在這裡插入圖片描述

2.2 用倒排索引的查詢處理(Query processing)

利用倒排索引完成查詢操作 AND,抽取Brutus和Caesar的postings,併合並
在這裡插入圖片描述

用指標進行元素間的對比,如Brutus出現第一個在2,而caesar在1,不同,則兩者小的指標向前一格。此時brutus在2,caesar也在2,兩者都前進一格。
在這裡插入圖片描述

虛擬碼
在這裡插入圖片描述

2.3 布林檢索模型

在這裡插入圖片描述

一個法律領域的檢索模型例子,所以說這個方法過時,但還是在一些地方適用:
在這裡插入圖片描述
在這裡插入圖片描述

在a and b and c的 query中,從短的開始,把全部都遍歷了
在這裡插入圖片描述
在這裡插入圖片描述

若存在多個or操作,先估計or的尺寸,先對小的(預測的,也就是直接or兩端的頻數相加)進行操作
在這裡插入圖片描述

如果是not呢
在這裡插入圖片描述

4.短語查詢

我們經常把stanford university或者san francisco當成一個短語,也就是一個不被分割的整體。這樣倒排索引就解決不了了。
在這裡插入圖片描述

4.1 雙詞索引(biwords indexes)

第一步的嘗試,就算建立一個兩個詞的逆序索引:
在這裡插入圖片描述

在大於2的短語中,比如stanford university palo alto,可以分為stanford university AND university palo AND palo alto,這樣就等同於前面單個詞的逆序索引了。但是也有一個問題,上文這4個詞若只找到同時連續出現才有意義(長短語),那文件不同地方分別出現就沒意義了,這也就是會導致positive falsely。不過其實問題不大
在這裡插入圖片描述

一種擴充套件的雙詞方法:
對編入索引的文字進行詞性標註,若詞(term)為名詞(N) 或冠詞/介詞(X),稱具有NX*N形式的詞項序列為擴充套件雙詞(extended biword),將這樣擴充套件詞對作為一個詞項放入詞典中。

比如索引catcher in the rye (麥田守望者)時,N X X N,符合NX*N,將查詢分析成N和X序列,將查詢切分成擴充套件雙詞,在索引中查詢catcher rye
在這裡插入圖片描述

字典太大,存在false positive問題,但是可以作為綜合的索引策略第一部分。
在這裡插入圖片描述

4.2 帶位置的索引

第二種方法,帶位置的索引
在這裡插入圖片描述

在這裡插入圖片描述

先對比是否同時出現在一個文件,然後進行對比,此處to要為be的位置-1。
在這裡插入圖片描述
這個方法同樣可以用到模糊搜尋上
在這裡插入圖片描述
帶位置資訊的索引特點,儲存要求大,不過很靈活而且可壓縮。
在這裡插入圖片描述

大小和文件長度有關,若文件不長,那和普通的posting差不多大小,若很大,比如書等大約100000詞,那就是其100倍。
在這裡插入圖片描述

總的來說,比無位置資訊大2~4倍,不過仍是原文字的35%~50%,無位置資訊的大致是10%
在這裡插入圖片描述
一種將biword和位置資訊的索引結合的辦法,省時,但費記憶體。
在這裡插入圖片描述

5.排序檢索

普通的布林檢索沒能滿足使用者的需要,尤其是同時返回上千個結果時候,這是我們需要對索引進行排序,給使用者最早看到最重要的內容。
在這裡插入圖片描述
在這裡插入圖片描述

5.1 Jaccard係數

在這裡插入圖片描述
例子:
在這裡插入圖片描述
但也存在問題,比如沒用單詞的出現次數,而且標準化的方式不大對
在這裡插入圖片描述

5.2 加權詞頻

在這裡插入圖片描述
但是這樣的模型沒有位置資訊,這樣 A is better than B和B is better than A的詞袋模型其實是一樣的:
在這裡插入圖片描述

intuition是詞頻和相關性是相關的,但不是線性的
在這裡插入圖片描述
評分就
在這裡插入圖片描述

5.3 逆文件頻率加權(Invrse document frequency weighting/IDF)

intuition: 檢索中,不常見的詞應當有更多資訊,應當賦予更高的權重。像it, and 這類停用詞,基本沒有什麼資訊。
在這裡插入圖片描述
所以使用詞在多少文件中出現,來表示其是否常見。
在這裡插入圖片描述
d f t df_{t} 表示詞在多少文件中出現,N表示語料庫中的文件個數,則 i d f t [ 0 , l o g 10 N ] idf_{t}\in[0,log_{10}N] ,若詞在每個文件中都出現,那其的逆文件頻率/ i d f idf 為0。
在這裡插入圖片描述
且若語料庫是不變的,那麼我們得到的idf也是不變的,是一個對應每個詞的值
在這裡插入圖片描述

單詞檢索時候,idf只是一個點值(scalar),對檢索沒影響。但是在多個單詞的索引時,idf可以給諸如capricous person兩個詞賦權,少見的前者賦予更高的權重。
在這裡插入圖片描述
try和insurance雖然出現的頻率都差不多,但是try出現地很廣,而insurance出現的文章較少,因此雖然總頻數差不多,根據idf的原理,因賦予insurance更高權重
在這裡插入圖片描述

6.TF-IDF

TF-IDF是資訊檢索領域中最重要的加權方法之一。第一個係數 1 + l o g t f t , d 1+logtf_{t,d} 表示的是前文對詞出現頻率的加權方法log-frequency,其大小與詞出現次數成正相關,而後方的 l o g 10 ( N / d f t ) log_{10}(N/df_{t}) 指的是單詞在多少文件出現的反比,也就是前文的idf
在這裡插入圖片描述
總得分,所有單詞的tf-idf加合
在這裡插入圖片描述

在這裡插入圖片描述

7. 向量空間模型

前文我們把文件當作了一個向量,這是很稀疏的向量,同時佔據了很大的記憶體空間。
在這裡插入圖片描述
在查詢處,我們也將問題,轉換為向量,並於文件進行相似度對比,排序。相似度,約等於距離的倒數(越近越相似)
在這裡插入圖片描述
但通常使用的歐式距離有很多問題,比如向量的長度對距離大小影響很大,如下圖,儘管q和d2看似最相近,但是因此向量長度,導致查詢向量q和d1或d3最相似。
在這裡插入圖片描述
取而代之,我們可以使用cosines來計算,其在 [ 0 , π ] [0,\pi] 中為減函式(值從1到-1),能滿足我們的需求
在這裡插入圖片描述
L2 正則,使文件文件大小的影響變小。
在這裡插入圖片描述‘若文件和查詢向量都已標準化,直接使用下列式子
在這裡插入圖片描述
emmm,好像也可以用log詞頻來替代詞頻
在這裡插入圖片描述

8.TF-IDF的cosine得分

綜上所述,我們有很多種方法來做加權,這就像是一種組合。若我們使用log詞頻,逆文件詞頻加上L2 norm,則我們用的為ltc(smart notation),log詞頻適應於長文件
在這裡插入圖片描述
計算例項,注意,標準化時候,若前方使用的是加權詞頻,則標準化時候使用的就是加權後的詞頻。
在這裡插入圖片描述

在這裡插入圖片描述