【nlp】【base】 之 詞向量
阿新 • • 發佈:2019-02-13
算了,落後太多都不好意思說自己是搞大資料的了,最近被專案纏身都沒有好好進修技術,有時候做出工作成績與保持飢餓學習狀態不應該成為矛盾,至此,加油!
自然語言理解的問題要轉化為機器學習的問題,第一步肯定是要找一種方法把這些符號數學化。詞向量就是用來將語言中的詞進行數學化的一種方式。
一種最簡單的詞向量方式是 one-hot representation,就是用一個很長的向量來表示一個詞,向量的長度為詞典的大小,向量的分量只有一個 1,其他全為 0, 1 的位置對應該詞在詞典中的位置。但這種詞表示有兩個缺點:(1)容易受維數災難的困擾,尤其是將其用於 Deep Learning 的一些演算法時;(2)不能很好地刻畫詞與詞之間的相似性(術語好像叫做“詞彙鴻溝”)。
另一種就是你提到 Distributed Representation 這種表示,它最早是 Hinton 於 1986 年提出的,可以克服 one-hot representation 的缺點。其基本想法是:
通過訓練將某種語言中的每一個詞對映成一個固定長度的短向量(當然這裡的“短”是相對於 one-hot representation 的“長”而言的),將所有這些向量放在一起形成一個詞向量空間,而每一向量則為該空間中的一個點,在這個空間上引入“距離”,則可以根據詞之間的距離來判斷它們之間的(詞法、語義上的)相似性了。
一種生成詞向量的途徑是利用神經網路演算法。
統計共同出現的次數(LDA,一種貝葉斯概率模型)。
根據相似的上下文(word2vec,即NN)。
詞向量後期可以怎麼使用呢?