最近想提取一些圖片tags的word2vec特征冶忱,用于圖文匹配卜朗。圖片的特征通過預(yù)訓(xùn)練的VGG-16網(wǎng)絡(luò)提取熬的,這個沒什么可細(xì)說的,今天主要講講如何提取中文tags的word2vec特征拌喉。
提取特征的第一步速那,就是通過gensim工具預(yù)訓(xùn)練好一個支持中文的word2vec模型。第二部尿背,我們需要對tags進(jìn)行精細(xì)分詞端仰。中文分詞所采用的工具是jieba,用的人也比較多田藐,網(wǎng)上也有很多的使用教程榆俺,這里不再贅述。一般情況下,通過語句“ jieba.cut(tags) ”得到的是一個生成器茴晋,因此我們通過語句“ ' '.join(jieba.cut(tags))?”來得到分詞后的結(jié)果陪捷。注意,這里已經(jīng)出現(xiàn)坑了诺擅,分詞之后的結(jié)果在python代碼中的編碼格式是unicode編碼市袖,然而,中文word2vec的key的編碼格式是gbk編碼烁涌,因此我們需要把unicode編碼轉(zhuǎn)換成gbk編碼苍碟,語句是"sents.encode('gbk')"。這樣轉(zhuǎn)換完成之后撮执,就能通過預(yù)訓(xùn)練好的word2vec模型正確索引了微峰。
如果當(dāng)前數(shù)據(jù)集中的中文單詞不在vocabulary中,那又應(yīng)該怎么辦呢抒钱?暫時想到的方法是異常捕獲的方式蜓肆,即通過try...except語句,對于那些鍵值不存在的詞谋币,直接將其特征全部置為0仗扬,在后期訓(xùn)練的過程中,將這些數(shù)據(jù)點拋棄蕾额。