Wrod2vec計算句子相似度實戰(zhàn)_3分鐘熱情學(xué)NLP第7篇

3分鐘熱情學(xué)NLP第7篇吵冒,Wrod2vec計算句子相似度實戰(zhàn)

方法1愕鼓,計算句子中各個詞向量,得出句子的平均值

1够傍、使用jieba分詞畜挥,得出該句子包含的詞仔粥;
2、計算每個詞的詞向量蟹但;
3躯泰、求得該句子的平均值
4、采用余弦值华糖,計算各個句子的相似度麦向;

輸入:

import numpy as np
from scipy import spatial
import jieba

model = gensim.models.Word2Vec.load('word2vec_wx')
model_dimension = 256 #該模型的維度為256維

#采用jieba進行分詞,分詞后計算每個詞的詞向量客叉,最后求平均值诵竭;
def avg_string_vector(sentence, model):
    words = jieba.cut(sentence)#默認jieba精確分詞模式
    string_vec = np.zeros((model_dimension,), dtype='float32')#返回1個"1*256",元素為0的數(shù)組兼搏;
    num_words = 0 #該句話中詞語的個數(shù)卵慰,初始值為0
    for word in words:
        if word in model.wv:
            num_words += 1#計算出該句話中,詞語的個數(shù)
            string_vec = np.add(string_vec, model.wv[word])#計算每個分詞的詞向量佛呻,并進行相加裳朋;

    if(num_words > 0):
        string_vec = np.divide(string_vec, num_words)#求平均值:將詞向量相加后的和,除以分詞的個數(shù)吓著;
    return string_vec


s1 = '在微信公眾號上寫文章'
s2= '把文章發(fā)表在微信公眾號上'
s3 = '在微信上發(fā)表文章'
s4 = '歡迎大家來到微信總部參觀'
s1_vec = avg_string_vector(s1, model=model)
s2_vec = avg_string_vector(s2, model=model)
s3_vec = avg_string_vector(s3, model=model)
s4_vec = avg_string_vector(s4, model=model)

#計算余弦距離
sim12 = 1 - spatial.distance.cosine(s1_vec, s2_vec)
sim13 = 1 - spatial.distance.cosine(s1_vec, s3_vec)
sim14 = 1 - spatial.distance.cosine(s1_vec, s4_vec)


print('”'+ s1 +'“和”' + s2 +'“的相似度為:%.4f'%sim12)
print('”'+ s1 +'“和”' + s3 +'“的相似度為:%.4f'%sim13)
print('”'+ s1 +'“和”' + s4 +'“的相似度為:%.4f'%sim14)

輸出

”在微信公眾號上寫文章“和”把文章發(fā)表在微信公眾號上“的相似度為:0.9013
”在微信公眾號上寫文章“和”在微信上發(fā)表文章“的相似度為:0.8178
”在微信公眾號上寫文章“和”歡迎大家來到微信總部參觀“的相似度為:0.6783

方法2鲤嫡,使用第6篇提到的WMD算法

第6篇:http://www.reibang.com/p/39e0c9d35f6c

代碼如下:

import gensim
import pyemd
model = gensim.models.Word2Vec.load('word2vec_wx')

s1 = '在微信公眾號上寫文章'
s2= '把文章發(fā)表在微信公眾號上'
s3 = '在微信上發(fā)表文章'
s4 = '歡迎大家來到微信總部參觀'

#使用WMD距離算法
distance12 = model.wv.wmdistance(s1, s2)
distance13 = model.wv.wmdistance(s1, s3)
distance14 = model.wv.wmdistance(s1, s4)

print('”'+ s1 +'“和”' + s2 +'“的相似度為:%.4f'%distance12)
print('”'+ s1 +'“和”' + s3 +'“的相似度為:%.4f'%distance13)
print('”'+ s1 +'“和”' + s4 +'“的相似度為:%.4f'%distance14)

輸出:

”在微信公眾號上寫文章“和”把文章發(fā)表在微信公眾號上“的相似度為:0.7265
”在微信公眾號上寫文章“和”在微信上發(fā)表文章“的相似度為:1.1910
”在微信公眾號上寫文章“和”歡迎大家來到微信總部參觀“的相似度為:2.2488
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末送挑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暖眼,更是在濱河造成了極大的恐慌惕耕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罢荡,死亡現(xiàn)場離奇詭異赡突,居然都是意外死亡对扶,警方通過查閱死者的電腦和手機区赵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浪南,“玉大人笼才,你說我怎么就攤上這事÷缭洌” “怎么了骡送?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長絮记。 經(jīng)常有香客問我摔踱,道長,這世上最難降的妖魔是什么怨愤? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任派敷,我火速辦了婚禮,結(jié)果婚禮上撰洗,老公的妹妹穿的比我還像新娘篮愉。我一直安慰自己,他們只是感情好差导,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布试躏。 她就那樣靜靜地躺著,像睡著了一般设褐。 火紅的嫁衣襯著肌膚如雪颠蕴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天助析,我揣著相機與錄音裁替,去河邊找鬼。 笑死貌笨,一個胖子當著我的面吹牛弱判,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锥惋,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼昌腰,長吁一口氣:“原來是場噩夢啊……” “哼开伏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起遭商,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤固灵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后劫流,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巫玻,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年祠汇,在試婚紗的時候發(fā)現(xiàn)自己被綠了仍秤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡可很,死狀恐怖诗力,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情我抠,我是刑警寧澤苇本,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站菜拓,受9級特大地震影響瓣窄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纳鼎,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一俺夕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喷橙,春花似錦啥么、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疙剑,卻和暖如春氯迂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背言缤。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工嚼蚀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人管挟。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓轿曙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子导帝,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容