text_gcn icon indicating copy to clipboard operation
text_gcn copied to clipboard

如何根据row和col生成图

Open tangdouer opened this issue 5 years ago • 6 comments

第一个问题:您好,请问如何根据row和col生成可视化的异构图呢, 第二个问题:row.append(train_size + i) 为什么row和col中的索引要加上train_size呢 谢谢

tangdouer avatar Oct 17 '19 01:10 tangdouer

@tangdouer

  1. 可参考D3: https://observablehq.com/@d3/force-directed-graph。
  2. 因为单词节点的id在训练集之后、测试集之前。而i又是词表的索引,是从0开始的。

yao8839836 avatar Oct 24 '19 05:10 yao8839836

@tangdouer

  1. 可参考D3: https://observablehq.com/@d3/force-directed-graph。
  2. 因为单词节点的id在训练集之后、测试集之前。而i又是词表的索引,是从0开始的。

您好,首先感谢您的解释,但是还是不明白为什么单词节点在训练集之后 测试集之前,单词节点不就是训练集中的单词或者测试集中的单词吗

tangdouer avatar Oct 24 '19 05:10 tangdouer

@tangdouer

图中有两类节点:文档节点和词节点,因此词需要加入邻居矩阵

yao8839836 avatar Oct 24 '19 05:10 yao8839836

@tangdouer

图中有两类节点:文档节点和词节点,因此词需要加入邻居矩阵

还是不太明白,您能给举个例子吗。我发现针对文档来说,如果索引小于train_size,则索引保持不变,如果索引大于train_size,则就是现有索引+vocab_size

tangdouer avatar Oct 24 '19 06:10 tangdouer

@tangdouer

假设有1000篇文档,其中训练集800,测试集200;词表大小3000。 则图中的节点个数为800 + 200 + 3000 = 4000。于是邻接矩阵A是4000行4000列。词表可以在A的前3000行,也可以在最后3000行。也可以位于中间。我在实现的时候,选择了前800行是分给了训练文档、中间3000行分给了单词、最后200行分给了测试文档。所以训练文档跟词连边时,行号为0-799不变,列号为800+词在词表中位置。词i跟词j连边的时候,行号和列号是800+i和800+j。测试文档跟词连边的时候,行号是测试文档在文档集合中的位置+3000,因为中间被插入了3000个词,列号是800+词在词表中位置。

yao8839836 avatar Oct 26 '19 06:10 yao8839836

@tangdouer

假设有1000篇文档,其中训练集800,测试集200;词表大小3000。 则图中的节点个数为800 + 200 + 3000 = 4000。于是邻接矩阵A是4000行4000列。词表可以在A的前3000行,也可以在最后3000行。也可以位于中间。我在实现的时候,选择了前800行是分给了训练文档、中间3000行分给了单词、最后200行分给了测试文档。所以训练文档跟词连边时,行号为0-799不变,列号为800+词在词表中位置。词i跟词j连边的时候,行号和列号是800+i和800+j。测试文档跟词连边的时候,行号是测试文档在文档集合中的位置+3000,因为中间被插入了3000个词,列号是800+词在词表中位置。

完全明白这里的实现了,感谢详细的解释!问一个问题,文档和词连边时,只填了doc->word的位置,反过来word->doc(即矩阵中对称的位置)没有填是么?那可以理解为,咱们的Graph是有向图么?

lewsn2008 avatar Mar 04 '20 11:03 lewsn2008