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)
生成的文本文件样本如下图所示:

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





