word2vec(CBOW)簡(jiǎn)易實(shí)現(xiàn)_基于Pytorch
數(shù)據(jù)集是老朋友莎士比亞,正則化的方法用的是之前兩篇博客提到的方法。
cbow基于分布式假設(shè),用上下文來(lái)預(yù)測(cè)中心詞。然后截取模型中間的隱層輸出用來(lái)做詞嵌入。
感想:參考了《深度學(xué)習(xí)進(jìn)階:自然語(yǔ)言處理》的第三章 ,不過(guò)人家不是拿pytorch實(shí)現(xiàn)的,代碼更加底層,可讀性也比我這好很多。寫(xiě)了一下午,本來(lái)覺(jué)得挺簡(jiǎn)單的,但是模型設(shè)計(jì)那邊還是弄了很長(zhǎng)時(shí)間。不能在模型類(lèi)里定義兩個(gè)方法,不然會(huì)發(fā)生未知錯(cuò)誤,只能有forward方法,原因未知。one_hot接受LongTensor,Linear接受float,注意tensor的數(shù)據(jù)類(lèi)型和維度。
標(biāo)簽: