andreagemelli / doc2graph

Doc2Graph transforms documents into graphs and exploit a GNN to solve several tasks.
https://link.springer.com/chapter/10.1007/978-3-031-25069-9_22
MIT License
114 stars 20 forks source link

what does this actually tell by this prediciton .? #6

Closed NaveenVinayakS closed 1 year ago

NaveenVinayakS commented 1 year ago

This is the prediction that i am getting on E2E with FUNSD dataset image

what does this actually tell by this prediciton .?

andreagemelli commented 1 year ago

Hi @NaveenVinayakS , it is kidn of hard to me understing your outputs if I do not get the entire "picture" (meaning also your input or the contest). By the way, using the utility "get_info()" in "GraphBuilder" you can see from the output the name of edge and node labels that correspond one to one to the integer version of the label itself. For example from this output:

FUNSD TEST dataset: -> graphs: 50 -> node labels: ['answer' 'header' 'other' 'question'] -> edge labels: ['none' 'pair'] -> node features: 1752 -> edge type: fully -> textual feats: True -> visual feats: True -> edge feats: True -> graph example: Graph(num_nodes=47, num_edges=2162, ndata_schemes={'geom': Scheme(shape=(4,), dtype=torch.float32), 'feat': Scheme(shape=(1752,), dtype=torch.float32), 'norm': Scheme(shape=(1,), dtype=torch.float32), 'label': Scheme(shape=(), dtype=torch.int64)} edata_schemes={'feat': Scheme(shape=(6,), dtype=torch.float32), 'weights': Scheme(shape=(), dtype=torch.float32), 'label': Scheme(shape=(), dtype=torch.int64)})

you can tell that for node labels "answer" is 0, "header" is 1, "other" is 2 and question is "3". While, for edge labels, "none" is 0 and "pair" 1.

andreagemelli commented 1 year ago

FYI, you can also use the utility Doc2Graph.label2class() contained in dataloader.py to input one integer and return the label string it refers to.