word2vec词向量实战

∥☆過路亽.° 提交于 2020-01-12 23:39:50

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["中国"])
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!