
文本表示(Representation)
文本是一種非結(jié)構(gòu)化的數(shù)據(jù)信息,是不可以直接被計算的。
文本表示的作用就是將這些非結(jié)構(gòu)化的信息轉(zhuǎn)化為結(jié)構(gòu)化的信息,這樣就可以針對文本信息做計算,來完成我們?nèi)粘K芤姷降奈谋痉诸悾楦信袛嗟热蝿?wù)。

文本表示的方法有很多種,下面只介紹 3 類方式:
- 獨熱編碼 | one-hot representation
- 整數(shù)編碼
- 詞嵌入 | word embedding

獨熱編碼 | one-hot representation
假如我們要計算的文本中一共出現(xiàn)了4個詞:貓、狗、牛、羊。向量里每一個位置都代表一個詞。所以用 one-hot 來表示就是:
貓:[1,0,0,0]
狗:[0,1,0,0]
牛:[0,0,1,0]
羊:[0,0,0,1]

但是在實際情況中,文本中很可能出現(xiàn)成千上萬個不同的詞,這時候向量就會非常長。其中99%以上都是 0。
one-hot 的缺點如下:
- 無法表達(dá)詞語之間的關(guān)系
- 這種過于稀疏的向量,導(dǎo)致計算和存儲的效率都不高
整數(shù)編碼
這種方式也非常好理解,用一種數(shù)字來代表一個詞,上面的例子則是:
貓:1
狗:2
牛:3
羊:4

將句子里的每個詞拼起來就是可以表示一句話的向量。
整數(shù)編碼的缺點如下:
- 無法表達(dá)詞語之間的關(guān)系
- 對于模型解釋而言,整數(shù)編碼可能具有挑戰(zhàn)性。
什么是詞嵌入 | word embedding?
word embedding 是文本表示的一類方法。跟 one-hot 編碼和整數(shù)編碼的目的一樣,不過他有更多的優(yōu)點。
詞嵌入并不特指某個具體的算法,跟上面2種方式相比,這種方法有幾個明顯的優(yōu)勢:
- 他可以將文本通過一個低維向量來表達(dá),不像 one-hot 那么長。
- 語意相似的詞在向量空間上也會比較相近。
- 通用性很強,可以用在不同的任務(wù)中。
再回顧上面的例子:

2 種主流的 word embedding 算法

Word2vec
這是一種基于統(tǒng)計方法來獲得詞向量的方法,他是 2013 年由谷歌的 Mikolov 提出了一套新的詞嵌入方法。
這種算法有2種訓(xùn)練模式:
- 通過上下文來預(yù)測當(dāng)前詞
- 通過當(dāng)前詞來預(yù)測上下文
想要詳細(xì)了解 Word2vec,可以看看這篇文章:《一文看懂 Word2vec(基本概念+2種訓(xùn)練模型+5個優(yōu)缺點)》
GloVe
GloVe 是對 Word2vec 方法的擴(kuò)展,它將全局統(tǒng)計和 Word2vec 的基于上下文的學(xué)習(xí)結(jié)合了起來。
想要了解 GloVe 的 三步實現(xiàn)方式、訓(xùn)練方法、和 w2c 的比較。可以看看這篇文章:《GloVe詳解》
本文首發(fā)自 產(chǎn)品經(jīng)理的 AI 學(xué)習(xí)庫 easyai.tech