【发布时间】:2019-11-20 22:17:36
【问题描述】:
我想用另一个具有不同权重的 Doc2vec 模型创建的特定 Doc2Vec 向量替换。
这些是现有向量的权重(只是 800 个实际权重中的一部分):
array([ 1.72976881e-01, 2.44364753e-01, -9.90936995e-01, -1.03020036e+00,
-1.41046381e+00, 1.00970473e-02, -1.84546992e-01, 3.77230316e-01,
9.20825064e-01, -2.61079431e-01, 7.51454890e-01, -1.15353882e+00,
-9.96422302e-03, 1.65010715e+00, 5.63869551e-02, -4.25169647e-01],
dtype=float32)
我想用这些替换它们:
array([ 1.54585496e-01, 2.22857013e-01, -8.88102770e-01, -9.27794874e-01,
-1.27402091e+00, -5.38651831e-04, -1.63646400e-01, 3.38727772e-01,
8.28402698e-01, -2.29774594e-01, 6.77914560e-01, -1.04013634e+00,
-1.37407500e-02, 1.48667252e+00, 5.83136305e-02, -3.88587236e-01]
dtype=float32)
我尝试使用以下代码向我的模型添加一个新向量:
model = gensim.models.Word2Vec.load('mymodel.doc2vec')
model.docvecs.add(entities=["88763"], weights=[new_vector])
我没有收到任何错误,当我回调那个“88763”向量时,我发现它还没有更新:
model.docvecs["88763"]
array([ 1.72976881e-01, 2.44364753e-01, -9.90936995e-01, -1.03020036e+00,
-1.41046381e+00, 1.00970473e-02, -1.84546992e-01, 3.77230316e-01,
9.20825064e-01, -2.61079431e-01, 7.51454890e-01, -1.15353882e+00,
-9.96422302e-03, 1.65010715e+00, 5.63869551e-02, -4.25169647e-01],
dtype=float32)
有人可以帮我吗?
谢谢。
【问题讨论】:
-
你能分享你的
mymodel.doc2vec或者我们可以测试的东西吗? -
通读docs,它看起来可能是
model.docvecs['doc003'] = new_vector的形式,但我必须查看一些示例 mymodel.doc2vec 才能查看对象结构。