docvecs.most_like()无法正常工作。找不到文档

时间:2019-07-01 21:38:57

标签: python

因此,我是Python的新手,这是我要解决的第一个问题。我意识到我有些烦恼,但我确实需要完成此操作(并且我想学习!)。

我正在尝试根据不同的产品描述对它们进行分类。为此,我使用了Gensim Doc2Vec,以及常用的Pandas,Numpy等。

我有大约6000个独特产品说明的文档,并带有各自的商品编号。我毫不费力地读取文件,对其进行格式化和标记化以及删除停用词等。令我头疼的是手动模型训练。为了设置代码,我使用了文档的一部分,只有200篇文章,所以每次我弄错它时,培训都不会花很长时间。

使用model.most_similar(“ word”)函数时,我会得到结果(尽管它们不是那么好,对于这么小的样本来说并不奇怪)。使我困扰的是,我无法使model.docvecs.most_like([doc_id])函数正常工作。

##...Reading and formatting file. Variable 'data' is the df containing tokenized lists etc
.
.
.

def create_taggeddoc (): #Code for creating TaggedDocument-list
    tagged = []
    i = 0
    for row in data['no_stops_nbrs']:
        tag = data['artcle'].iloc[i]
        tagged.append(TaggedDocument(row, tags = tag))
        i += 1

    return tagged


def train_data(): #Returns trained model
    #...training model...
    return model


model.docvecs.most_similar(artnbr) #The one that doesn't work

TaggedDocument方法似乎是正确的(尽管不合法),例如:

print(tagged[:5])

显示正确的单词表和标签。

由于某种原因,最后一行不起作用。当我输入artnbr参数作为字符串时:例如

model.docvecs.most_similar('1234')

我得到:

TypeError:“ str”和“ int”的实例之间不支持“ <”

但是当我将其输入为整数时,例如

model.docvecs.most_similar(1234)

我得到:

KeyError:“ doc'1234'不在训练集中”

我在这里不明白什么?

很抱歉,如果缺少该信息,我会在需要时提供更多信息。谢谢!

0 个答案:

没有答案