实现word2vec训练自己的词向量模型

    # 得到每一行的数据:[]
    datas = open('data/test.txt', 'r', encoding='utf-8').read().split("\n")

    #或者对jieba分词进行切分,得到关于分词的预料模型
    #words_datas = [[i for i in (jieba.cut(data)) if i != " "] for data in datas]

    # 得到一行的单个字  生成二维的句子与jieba分词之后的单个字:[[],...,[]]
    word_datas = [[i for i in data[:-2] if i != " "] for data in datas]

    model = Word2Vec(
        word_datas,  # 需要训练的文本
        vector_size=10,   # 词向量的维度
        window=5,  # 句子中当前单词和预测单词之间的最大距离
        min_count=1,  # 忽略总频率低于此的所有单词 出现的频率小于 min_count 不用作词向量
        workers=0,  # 使用这些工作线程来训练模型(使用多核机器进行更快的训练)
        sg=0,  # 训练方法 1:skip-gram 0;CBOW。
        epochs=10  # 语料库上的迭代次数
    )
    # 模型保存
    model.save('word.model')
    # 字向量保存
    model.wv.save_word2vec_format('word_data.vector',   # 保存路径
                                  binary=False  # 如果为 True,则数据将以二进制 word2vec 格式保存,否则将以纯文本格式保存
                                  )
    # 模型中的 wv 和 syn1neg 都可以单独保存
    pkl.dump([model.wv.index_to_key, model.wv.key_to_index, model.wv.vectors], open("WordPartialWeight.pkl", "wb"))

这里的参数配置,根据自己需要进行配置,在word2vec文件中可以查看配置选项,其他未配置的是默认。

使用自己训练的词向量模型:

# 1 通过模型加载词向量(recommend)
    model = gensim.models.Word2Vec.load('words.model')
    # 2 通过词向量加载
    vector = KeyedVectors.load_word2vec_format('words_data.vector')

进行具体的下游任务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值