自然語言處理筆記(一)--句子編碼

NLP最初的步驟就是將文本中的句子表示成計算機能夠處理的數字矩陣,而句子是由多個單詞組成的,所以表達句子的任務就變成了如何表達單詞。表達單詞一般有兩種大方法:詞袋模型,詞向量模型。

一、詞袋模型(BOW)

將所有出現過的單詞裝進一個袋子裏,忽略詞法與語序,每個單詞都是獨立的。那麼單詞的維度就是詞袋的大小(用單詞的出現次數表達)。這樣會出現稀疏性的問題(one-hot)。

二、詞向量模型(WordEmbedding)

爲了表達不同詞語之間的相似性,通過大量的語料訓練,將每個單詞映射到高維空間,通過向量之間的距離表達單詞之間的關係。常用算法模型有CBOW,Skip-Gram。Word2Vec工具用到了這兩種模型。

1.CBOW模型

輸入n個與單詞X相關的單詞(a1,a2,...,an)(即上下文,位置上就是句子中出現在這個單詞附近的單詞),CBOW能夠輸出這個上下文所代表的中心單詞X。

2.Skip-Gram模型

輸入單詞X,SG能夠輸出n個與X相關的單詞(a1,a2,...,an)。

三、句向量(Sentence2Vec)

本質上還是使用詞向量,但是最後表示一個句子不是使用矩陣,而是向量。即將句子的所有單詞的詞向量做一個非線性變換得到一個能夠表示一個句子的向量。具體可以使用單詞的TF-IDF或者SIF。

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