NLP 之文字表示

2021-09-25 01:18:18 字數 2493 閱讀 5182

我們在做模型訓練的時候,不是直接把文字或者詞語傳給計算機讓其進行計算,而是需要將單詞、句子、文字轉換成向量或者矩陣進行計算,而如何將文字轉換成向量就是本文需要介紹的內容。

介紹內容之前,大家需要先熟悉一些概念。

詞庫:訓練資料**現的所有單詞,可以使用jieba分詞統計出來。

混淆矩陣:混淆矩陣是資料科學、資料分析和機器學習中總結分類模型**結果的情形分析表,以矩陣形式將資料集中的記錄按照真實的類別與分類模型作出的分類判斷兩個標準進行彙總。

出現為1,不出現為0

每個單詞是乙個詞庫數量維度的向量,但是其中只有乙個1,其他都是0。

比如:詞典:【我們,又,去,爬山,今天,你們,昨天,跑步】

」我們「對應的向量是:[1, 0, 0, 0, 0, 0, 0, 0]

缺點

是浪費空間

無法將單詞與單詞之間的關係表達出來

比如:按照one-hot表示方式,船和舟是沒有關係的。

向量為詞庫的大小,每個句子對應詞庫中單詞出現與否的情況,出現為1,不出現為0,比如下面的例子:

詞典:【我們,又,去,爬山,今天,你們,昨天,跑步】

【「我們」出現了為1,「又「沒出現為0,」去「出現了為1,」爬山「出現類為1,」今天「出現了為1,」你們「沒出現為0,」昨天「沒出現為0,」跑步「出現了為1】

例子:我們今天去爬山,明天去跑步 (1,0,1,1,1,0,0,1)

向量為詞庫的大小,每個句子對應詞庫中單詞出現的次數,比如下面的例子:

詞典:【我們,又,去,爬山,今天,你們,昨天,跑步】

【「我們」出現的次數1,「又「出現的次數0,」去「出現的次數1,」爬山「出現的次數1,」今天「出現的次數1,」你們「出現的次數0,」昨天「出現的次數0,」跑步「出現的次數0】

計算每個詞出現的次數

例子:我們今天去爬山,明天去跑步 (2,0,2,1,1,0,0,1)

tfidf的思想是乙個單詞在其所在文字**現的次數越多,在其他文字**現的次數越少,那麼這個單詞就能很好的表徵單詞所在的文字。

tf-idf = tf * idf
tf = term frequency 詞頻

idf = inverse document frequency 逆向檔案頻率,表示單詞的重要性

idf = log(\frac)
其中:

n: 文件總數

n(w): 詞語w出現在多少個文件中, 出現的次數越多,越不重要

tf-idf = 詞頻 * 重要性

例子:計算三個句子的tf-idf向量表示:

比如第乙個句子的「今天」:tf = 1(句子中「今天」出現的次數)

idf = log(n/n(w))

n 文件總數為 3;n(w) 文件中「今天」出現的次數為2(第一句出現一次,第二句出現一次)。

所以idf = log(3/2)。其他的同樣的計算原理。

tf-idf 演算法是建立在這樣乙個假設之上的:對區別文件最有意義的詞語應該是那些在文件**現頻率高,而在整個文件集合的其他文件**現頻率少的詞語,所以如果特徵空間座標系取tf詞頻作為測度,就可以體現同類文字的特點。

但是在本質上idf是一種試圖抑制雜訊的加權,並且單純地認為文字頻率小的單詞就越重要,文字頻率大的單詞就越無用,顯然這並不是完全正確的。idf的簡單結構並不能有效地反映單詞的重要程度和特徵詞的分布情況,使其無法很好地完成對權值調整的功能,所以tf-idf法的精度並不是很高

補充概念:

混淆矩陣:類似於計算準確率和召回率的矩陣。

true positive: 正例並且**也是正例

false positive: 負例但是**是正例

false negative:正例但是**是負例

true negative:負例並且**是負例

用檢索舉例子

準確率 precision: 檢索出來的結果中正確的結果佔返回結果總數(返回的結果有的是正例,有的是反例)的比例。

召回率 recall: 檢索出來的結果正確的結果佔所有正例(包括返回回來的正例和沒有返回來的正例)的比例

precision = true-positive / (true-positive + false-positive)

recall = true-positive / (true-positive + false-negative)

參考:

吳恩達-《機器學習》:

NLP 文字表示

一 文字表示 文字表示 one hot 單詞 boolean representation 句子 count based representation 句子 詞典 我,要,去,北京,上海,南京 one hot 向量空間只有乙個維度是1,其餘都是0 缺點 高維度高稀疏 w1 我 1,0,0,0,0,0...

NLP之分布表示

harris 在1954 年提出的分布假說 distributional hypothesis 為這一設想提供了理論基礎 上下文相似的詞,其語義也相似。firth 在1957 年對分布假說進行了進一步闡述和明確 詞的語義由其上下文決定 a word is characterized by theco...

NLP筆記之文字聚類

文字聚類是聚類在文字上的應用。由淺入深,需要先介紹聚類的思想。聚類是將給定物件的集合劃分為不同子集的過程,目標是使每個子集內部的元素盡量相似,不同子集 簇 之間的元素盡量不相似。根據元素從屬集合的確定程度,聚類分為硬聚類和軟聚類。1.硬聚類 每個元素被確定地分入乙個類 2.軟聚類 每個元素與每個簇都...