word2vec初探(用python簡單實現)

2022-02-14 11:16:21 字數 2064 閱讀 2740

因為看**和部落格的時候很常見,不論是幹嘛的,既然這麼火,不妨試試.

從網上爬資料下來

對資料進行過濾、分詞

用word2vec進行近義詞查詢等操作

點「+」加號

同樣,點「+」加號。過一會兒會提示你安裝是否成功的。

-語料(網上爬下來的)

-自定義詞典

-主要的python檔案

# -*- coding: utf-8-*-

import jieba

from gensim.models import word2vec

# 去掉中英文狀態下的逗號、句號

def clearsen(comment):

comment = comment.strip(' ')

comment = comment.replace('、','')

comment = comment.replace('~','。')

comment = comment.replace('~','')

comment = comment.replace('','')

comment = comment.replace('…','')

comment = comment.replace('\r', '')

comment = comment.replace('\t', ' ')

comment = comment.replace('\f', ' ')

comment = comment.replace('/', '')

comment = comment.replace('、', ' ')

comment = comment.replace('/', '')

comment = comment.replace(' ', '')

comment = comment.replace(' ', '')

comment = comment.replace('_', '')

comment = comment.replace('?', ' ')

comment = comment.replace('?', ' ')

comment = comment.replace('了', '')

comment = comment.replace('➕', '')

return comment

# 用jieba進行分詞

comment = open('./corpus/comment.txt').read()

comment = clearsen(comment)

jieba.load_userdict('./user_dict/userdict_food.txt')

comment = ' '.join(jieba.cut(comment))

# 分完詞後儲存到新的txt中

fo = open("./corpus/afterseg.txt","w")

fo.write(comment)

print("finished!")

fo.close()

# 用 word2vec 進行訓練

sentences=word2vec.text8corpus(u'./corpus/afterseg.txt')

# 第乙個引數是訓練語料,第二個引數是小於該數的單詞會被剔除,預設值為5, 第三個引數是神經網路的隱藏層單元數,預設為100

model=word2vec.word2vec(sentences,min_count=3, size=50, window=5, workers=4)

y2=model.similarity(u"不錯", u"好吃") #計算兩個詞之間的余弦距離

print(y2)

for i in model.most_similar(u"好吃"): #計算余弦距離最接近「滋潤」的10個詞

print(i[0],i[1])

# 訓練詞向量時傳入的兩個引數也對訓練效果有很大影響,需要根據語料來決定引數的選擇,好的詞向量對nlp的分類、聚類、相似度判別等任務有重要意義

清洗資料的clearsen()不要笑。萌新就是這樣很傻很粗暴的……

與word2vec 原來word2vec那麼簡單

說到word2vec,它可謂非結構化資料裡面的佼佼者,尤其是在推薦和nlp當中,足以體現它的優勢所在,並且多年一直備受工業界喜愛.那麼word2vec到底是怎麼個原理的,發現身邊總是有很多人問,確不能準確的說出為什麼是兩個矩陣,到底是怎麼自動反向傳播的,以及對於softmax之後那麼大的維度資料,是...

word2vec學習參考

最近看nlp的東西比較多。就拿現在google 基於神經網路做的 word2vec 作為部落格的開始吧,今後會陸陸續續補充內容。基本是分4塊內容 1.神經網路語言模型 2.語言模型分層優化 3.word2vec 原理 4.google word2vec 看一點寫一點,先扔些參考資料鏈接上去。附上在研...

Word2Vec知識總結

word2vec是乙個產生詞向量的模型,是乙個雙層的神經網路 非常善於找出詞彙的相似度,同時可用於處理之前的技術 像one hot編碼和wordnet 處理不了的語義關係。它可以利用神經網路從大量的無標註的文字中提取有用資訊。我們也可以將它看成是乙個工具,它裡面包含了三種重要的模型 1 nnlm 神...