Doc2vec关于一本小说集:我如何为一个小说的每个句子分配一个ID作为句子ID,一个标签作为本书ID?

时间:2019-03-27 11:56:24

标签: python gensim doc2vec

我正在尝试在六本小说的语料库上训练doc2vec模型,我需要构建“标记文档”的语料库。 每本小说都是一个txt文件,已经过预处理,并使用read()方法读入python,因此显示为“ long string”。如果我尝试使用TaggedDocument形式gensim标记每本小说,则每本小说仅获得一个标签,并且标记文档的主体仅包含六个元素(这不足以训练doc2vec模型)。

有人建议我将每本小说分成句子,然后给每个句子分配一个标签作为句子的ID,然后给一个标签作为其所属的书的ID。但是,由于我不知道如何构造代码,所以我遇到了麻烦。

这是第一个代码,即使用“ long string”格式的每本小说的代码:

    `documents=[emma_text, persuasion_text, prideandprejudice_text,   
     janeeyre_text, shirley_text, professor_text] 
     corpus=[]`

    `for docid, document in enumerate(documents):
         corpus.append(TaggedDocument(document.split(), tags=
         ["{0:0>4}".format  
         (docid)]))`    

     `d2v_model = Doc2Vec(vector_size=100, 
                window=15,
                hs=0,
                sample=0.000001,
                min_count=100,
                workers=-1,
                epochs=500,
                dm=0, 
                dbow_words=1) 

    d2v_model.build_vocab(corpus)`

    `d2v_model.train(corpus, total_examples=d2v_model.corpus_count,    
     epochs=d2v_model.epochs)`

但是,这意味着我的带标签文档语料库只有六个元素,而我的模型没有足够的元素可以训练。例如,如果我尝试将.most_similar方法应用于目标书籍,则会得到完全错误的结果

总而言之,我需要帮助,使用TaggedDocument为每本书的每个句子(我已经将书拆分成句子)分配一个句子ID的标签和一个所属书籍ID的标签。建立用于训练模型的语料库。

感谢您的关注!

0 个答案:

没有答案