Python生成文档向量

本文介绍使用gensim包中的doc2vec模型生成文档向量的过程,包括模型训练、文档向量化及结果保存。通过具体代码示例展示了如何从分词文本创建文档模型,并将训练后的模型转化为向量形式存储。
部署运行你感兴趣的模型镜像

1  相关技术

    gensim包

2  生成文档向量模型

import gensim
import numpy as np
from gensim.models.doc2vec import Doc2Vec, LabeledSentence
TaggededDocument = gensim.models.doc2vec.TaggedDocument


def get_corpus():
    with open("../data/embeding_data/seg_test_data.txt", 'r', encoding='utf-8') as doc:
        docs = doc.readlines()
    train_docs = []
    for i, text in enumerate(docs):
        word_list = text.split(' ')
        length = len(word_list)
        word_list[length - 1] = word_list[length - 1].strip()
        document = TaggededDocument(word_list, tags=[i])
        train_docs.append(document)
    return train_docs


def train(x_train, size=100, epoch_num=1):
    model_dm = Doc2Vec(x_train, min_count=1, window=3, vector_size=size, sample=1e-3, negative=5, workers=4)
    model_dm.train(x_train, total_examples=model_dm.corpus_count, epochs=100)
    model_dm.save('../data/models/segmentedWords_test_vectormodel')
    return model_dm


if __name__ == '__main__':
    x_train = get_corpus()
    model_dm = train(x_train)

    代码说明:将分好词(用一个空格隔开)的文本文件放入指定目录,然后就会生成文档模型文件。可以修改具体代码,将读文件、写文件路径和训练参数进行调整。

 3  加载文档向量模型并生成文本文件

import gensim
import numpy as np
from gensim.models.doc2vec import Doc2Vec

model_dm = Doc2Vec.load("../data/models/segmentedWords_test_vectormodel")
np.savetxt('../result/test_features.txt', model_dm.docvecs.vectors_docs)

    生成的文本文件样本如下图所示:

图3.1  文档向量截图

 

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值