因為看**和部落格的時候很常見,不論是幹嘛的,既然這麼火,不妨試試.
從網上爬資料下來
對資料進行過濾、分詞
用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 神...