https://blog.csdn.net/qq_27586341/article/details/90025288
简单实战如代码所示
from gensim.models import Word2Vec import jieba #定义停用词、标点符号 punctuation = [",","。", ":", ";", ".", "‘", '“', "’", "?", "、", "-", "+", "&", "(", ")"] sentences = [ "长江是中国第一大河,干流全长6397公里(以沱沱河为源),一般称6300公里。流域总面积一百八十余万平方公里,年平均入海水量约九千六百余亿立方米。以干流长度和入海水量论,长江均居世界第三位。", "黄河,中国古代也称河,发源于中华人民共和国青海省巴颜喀拉山脉,流经青海、四川、甘肃、宁夏、内蒙古、陕西、山西、河南、山东9个省区,最后于山东省东营垦利县注入渤海。干流河道全长5464千米,仅次于长江,为中国第二长河。黄河还是世界第五长河。", "黄河,是中华民族的母亲河。作为中华文明的发祥地,维系炎黄子孙的血脉.是中华民族民族精神与民族情感的象征。", "黄河被称为中华文明的母亲河。公元前2000多年华夏族在黄河领域的中原地区形成、繁衍。", "在兰州的“黄河第一桥”内蒙古托克托县河口镇以上的黄河河段为黄河上游。", "黄河上游根据河道特性的不同,又可分为河源段、峡谷段和冲积平原三部分。 ", "黄河,是中华民族的母亲河。" ] sentences = [jieba.lcut(sen) for sen in sentences] print(sentences) tokenized = [] tokenized2 = [] for sentence in sentences: #words = [] for word in sentence: if word not in punctuation: #words.append(word) tokenized.append(word) tokenized2.append(tokenized) #Word2Vec的第一个参数必须是两层list的结构 model = Word2Vec(tokenized2, sg=1, size=50, window=5, min_count=1, negative=1, sample=0.001, hs=1, workers=4) model.save('model') # 保存模型 model = Word2Vec.load('model') # 加载模型 #计算词语间的相似度 print(model.similarity('黄河', '黄河')) print(model.similarity('黄河', '长江')) #选出与黄河,母亲河最相似,与长江最不相似的词 print(model.most_similar(positive=['黄河', '母亲河'], negative=['长江'])) #参看为生成的vec矩阵 print(model["中国"])
来源:CSDN
作者:langsiming
链接:https://blog.csdn.net/langsiming/article/details/103949053