AmpliGraph icon indicating copy to clipboard operation
AmpliGraph copied to clipboard

generate_candidates() doesn't work as expected - generates same triplet

Open smejkka3 opened this issue 2 years ago • 0 comments

Description

The function generate_candidates(X, strategy='graph_degree', target_rel='y', max_candidates=3) generates different output then shown in the example in the file, which is not correct as it is generating 3x the same array

Actual Behavior

import numpy as np
import networkx as nx
        
X = np.array([['a', 'y', 'b'],
            ['b', 'y', 'a'],
            ['a', 'y', 'c'],
            ['c', 'y', 'a'],
            ['a', 'y', 'd'],
            ['c', 'y', 'd'],
            ['b', 'y', 'c'],
            ['f', 'y', 'e']])
X_candidates = generate_candidates(X, strategy='graph_degree', target_rel='y', max_candidates=3)
array([['b', 'y', 'c'],
       ['b', 'y', 'c'],
       ['b', 'y', 'c']], dtype=object)

Expected Behavior

import numpy as np
import networkx as nx
        
X = np.array([['a', 'y', 'b'],
            ['b', 'y', 'a'],
            ['a', 'y', 'c'],
            ['c', 'y', 'a'],
            ['a', 'y', 'd'],
            ['c', 'y', 'd'],
            ['b', 'y', 'c'],
            ['f', 'y', 'e']])
X_candidates = generate_candidates(X, strategy='graph_degree', target_rel='y', max_candidates=3)
# ([['a', 'y', 'e'],
# ['f', 'y', 'a'],
# ['c', 'y', 'e']])

Steps to Reproduce

Run above mentioned code, ampligraph version = 1.4.0, numpy version = 1.19.5, networkx version=2.3

smejkka3 avatar Jul 29 '22 14:07 smejkka3