text_gcn icon indicating copy to clipboard operation
text_gcn copied to clipboard

关于稀疏邻接矩阵生成的代码问题

Open dongcy-AHU opened this issue 5 years ago • 2 comments

我觉得这里的else:row.append(i + vocab_size)应该改为else:row.append(i + train_size+vocab_size),对吗? 这段代码是为doc节点和word节点生成稀疏邻接矩阵的代码,邻接矩阵的大小为train_size + vocab_size + test_size, 当doc文本序号i大于train_size时,剩下的不就是test_size大小的文本与单词建立连接吗?test_size在邻接矩阵之前不是有train_size+vocab_size,所以此时是不是文本从train_size+vocab_size开始一一与词建立连接?

以下为源码:

for i in range(len(shuffle_doc_words_list)):
    doc_words = shuffle_doc_words_list[i]
    words = doc_words.split()
    doc_word_set = set()
    for word in words:
        if word in doc_word_set:
            continue
        j = word_id_map[word]
        key = str(i) + ',' + str(j)
        freq = doc_word_freq[key]
        if i < train_size:
            row.append(i)
        else:
            row.append(i + vocab_size)
        col.append(train_size + j)
        idf = log(1.0 * len(shuffle_doc_words_list) / word_doc_freq[vocab[j]])
        weight.append(freq * idf)
        doc_word_set.add(word)

非常感谢您能够回答我的问题!

dongcy-AHU avatar Sep 22 '19 15:09 dongcy-AHU

@dongcy-AHU

shuffle_doc_words_list 是文本内容列表,其中前半部分是训练集,后半部分是测试集。

假设shuffle_doc_words_list长度是1000 (包含训练集和测试集),词表大小是500,那测试集最后一个文档在邻接矩阵中的行号应该是999+500, 而不是999+ 800(训练集大小)+ 500

yao8839836 avatar Sep 22 '19 15:09 yao8839836

已明白,感谢!

dongcy-AHU avatar Sep 23 '19 06:09 dongcy-AHU