NLP文本分類--詞向量

1.基於規則,對於要提取的分類維護一個dict,在dict裏面保存需要提取的關鍵詞,存在關鍵詞的對應標記爲分類;(缺點,不斷的去維護詞典)
2.基於機器學習:HMM(分詞最常用的),CRF,SVM,LDA,CNN
3.詞袋模型:bag of word :(one hot)一種是統計詞頻和位置,一種是隻存儲是否出現;(缺點很明顯,只有詞出現信息,對於詞的重要度完全沒有體現)
4.tf-idf:先考慮每個詞在當前詞詞表中多高,再考慮在所有的文本中出現頻率。這樣就有詞的重要程度了。(缺點是還是麼有詞的順序考量,畢竟 l love you, you love l 是不一樣的。但是tf )
5.n-gram:將n個詞體現爲一個向量表示,這樣就可以體現順序了。那一句話出現的概率就可以表示爲:語言模型
(這個裏面業界一般不會用相乘,用相加處理。)(缺點:維度會爆炸,隨着n越大。n小效果不好,一般n要到5纔會有量變,這樣所有詞的順序組合足以變得非常爆炸。不能表達句子或者說詞之間的相似性。只能對文本進行表達。不能捕捉文本含義。)
6.distribution representation:一個東西可以通過分佈式表示方法就能可以用很少的東西,也能表示詞的相似性。一個詞表示可以通過他附近的詞表示: 比如 我是一個 _____人 :這個例子中的空格,我們可以填寫,中國人,好人,壞人,善良;那這些詞都有一些相似性的。這樣就可以通過周邊詞去表示這個詞。
7.共線矩陣cocurrence matrix :因爲用分佈式表達,我們不能無限的取他旁邊的詞,這個時候要選取幾個旁邊的詞。這個和 n-gram很像。 但不同的是旁邊詞形成局域窗中的詞,而自己本身並不參與。做成一個共線矩陣。
在這裏插入圖片描述
缺點:線性增長,維度太高,太稀疏。
8.對上面的矩陣進行svd降維
在這裏插入圖片描述
降維後展示
缺點: n*n 算法複雜O(n^3)對大型語料庫而言:n–40萬。1-60Btoken;對新加入詞就要重新計算。
9.NNLM(neural network language model)
NNLM模型
(缺點:計算量還是很大,需要的參數太多。對於訓練就不是很友好了)

10.Word2vector:CBOW,SKIP-GRAM(去掉映射層)
CBOW模型
改進:去掉映射層,直接用每個詞詞向量(初始化好的詞表)。把NNLM中拼接維度參數改成直接對詞向量的求和。 直接去預測目標詞。不使用激活函數,是一個線性的表示器。(缺點:最後的soft的分類還是太多了。)
11.CBOW-層次softmax:通過詞頻出現次數,使用Huffman編碼。在最後做決策每次softmax就會只有0,1兩種,權重放到了這個上面。這樣變成每次softmax按照樹進行乘積。使得這個乘積最大。這樣相當於4次決策。
詞頻層次
(缺點:建立Huffman樹,並對這個分層結構進行訓練還是比較麻煩。訓練每個詞都可能全部遍歷整個樹結構。這個計算也比較大。)
12.CBOW-負採樣:對每一個目標詞而言。其實訓練結果中只有一個詞是目標詞(比如整個詞庫有10萬個詞,去預測一句話裏面的一個詞出現的概率。這裏面只有這個詞是正樣本,其他詞全都是負樣本(10-1)。),可以通過只在負樣本中取得部分負樣本(十萬取500個)參與訓練。這樣一個是平衡數據集,一個是減小了softmax訓練成本。這裏一個問題是省略的負目標不會對樣本訓練產生影響。
負樣本採集原理:根據概率分佈,頻率分佈來採樣的。
採樣方式及其原理

13.skip-gram–和cbow反着來的。裏面使用的原理一致,不過最後預測出來多個詞(取決於你的窗口大小)。樣本量小的時候用CBOW,樣本量非常大用skip-gram:
詞向量評分:類比任務:inner
word2vector缺點:窗口問題,一詞多義問題。

14.GloVe 方法:

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