泛談-文本挖掘-詞向量技術(一)

目錄

 

1. 文本數據是什麼?     

2. 爲什麼?

3. 怎麼做?

3.1. one-hot編碼

3.2. word2vec

3.3. doc2vec

3.4. glove

3.5. fasttext

3.6. emlo

3.7. GPT

3.8. bert


當我們需要進行文本挖掘的時候,必須先了解我們的數據到底是個啥,才知道應該怎麼做對吧。

1. 文本數據是什麼?     

        文本數據是指不能參與算術運算的任何字符,也稱爲字符型數據。如英文字母、漢字、不作爲數值使用的數字(以單引號開頭)和其他可輸入的字符。

文本數據具有哪些特點呢?

  • 半結構化

  文本數據既不是完全無結構的也不是完全結構化的。例如文本可能包含結構字段,如標題、作者、出版日期、長度、分類等,也可能包含大量的非結構化的數據,如摘要和內容。

  • 高維

  文本向量的維數一般都可以高達上萬維,一般的數據挖掘、數據檢索的方法由於計算量過大或代價高昂而不具有可行性。

  • 高數據量

  一般的文本庫中都會存在最少數千個文本樣本,對這些文本進行預處理、編碼、挖掘等處理的工作量是非常龐大的,因而手工方法一般是不可行的。

  • 語義性

  文本數據中存在着一詞多義、多詞一義,在時間和空間上的上下文相關等情況。

2. 爲什麼?

       當我們需要挖掘文本中隱藏的價值,例如對文本進行聚類,分類,找到語義關係等等,我們需要將文本數據進行運算。非數值型數據拿來運算?怎麼運算呢?針對於文本數據的特點,我們需要怎麼樣將文本數據轉化爲可計算的形式?

       這時候衍生出來把詞映射爲實數域上向量的技術,稱之爲詞嵌入(word embedding)。簡單來說就是將詞轉化爲向量。

3. 怎麼做?

需要將文本轉化爲向量,這咋做。

一般來說詞向量的獲取方式可以大體分爲兩類:一類是基於統計方法(例如:基於共現矩陣、SVD),另一種是基於語言模型的。

3.1. one-hot編碼

(你, 今天, 開心, 嗎)

你 = (1,0,0,0)

今天 = (0,1,0,0,)

開心= (0,0,1,0)

嗎 = (0,0,0,1)

獨熱編碼表示存在的缺點:

1.稀疏性,中文詞庫是非常大的,因此維度會很大。

2.不能表示一個含義,無法比較單詞之間的相似度,相當於每個詞相互獨立不相關,事實並不是的。

3.2. word2vec

word2vec其實就是神經網絡,而我們需要的詞向量其實就是神經網絡的權重,通過輸入單詞的one-hot編碼得到激活的神經網絡權重,用這個權重表示這個單詞

word2vec具體分爲CBOW(Continuous Bag-of-Words 與Skip-Gram兩種模型。CBOW模型通過上下文預測特定詞。Skip-Gram模型則是通過特定詞預測上下文。CBOW對小型數據庫比較合適,而Skip-Gram在大型語料中表現更好。

3.3. doc2vec

還沒寫完 .... 慢慢寫

3.4. glove

3.5. fasttext

3.6. emlo

3.7. GPT

3.8. bert

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章