Ejemplo n.º 1
0
def test_predict():
    model = DistMult(batches_count=2,
                     seed=555,
                     epochs=1,
                     k=10,
                     loss='pairwise',
                     loss_params={'margin': 5},
                     optimizer='adagrad',
                     optimizer_params={'lr': 0.1})
    X = np.array([['a', 'y', 'b'], ['b', 'y', 'a'], ['a', 'y', 'c'],
                  ['c', 'z', 'a'], ['a', 'z', 'd']])
    model.fit(X)

    preds1 = model.predict(X)
    preds2 = model.predict(to_idx(X, model.ent_to_idx, model.rel_to_idx),
                           from_idx=True)

    np.testing.assert_array_equal(preds1, preds2)
Ejemplo n.º 2
0
def test_fit_predict_DistMult():
    model = DistMult(batches_count=2, seed=555, epochs=20, k=10, loss='pairwise', loss_params={'margin': 5}, 
                     optimizer='adagrad', optimizer_params={'lr':0.1})
    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']])
    model.fit(X)
    y_pred, _ = model.predict(np.array([['f', 'y', 'e'], ['b', 'y', 'd']]), get_ranks=True)
    print(y_pred)
    assert y_pred[0] > y_pred[1]
Ejemplo n.º 3
0
def test_predict_twice():
    model = DistMult(batches_count=2,
                     seed=555,
                     epochs=1,
                     k=10,
                     loss='pairwise',
                     loss_params={'margin': 5},
                     optimizer='adagrad',
                     optimizer_params={'lr': 0.1})
    X = np.array([['a', 'y', 'b'], ['b', 'y', 'a'], ['a', 'y', 'c'],
                  ['c', 'z', 'a'], ['a', 'z', 'd']])
    model.fit(X)

    X_test1 = np.array([['a', 'y', 'b'], ['b', 'y', 'a']])

    X_test2 = np.array([['a', 'y', 'c'], ['c', 'z', 'a']])

    preds1 = model.predict(X_test1)
    preds2 = model.predict(X_test2)

    assert not np.array_equal(preds1, preds2)
Ejemplo n.º 4
0
    ["Missandei", 'SPOUSE', 'Grey Worm'],
    ["Brienne of Tarth", 'SPOUSE', 'Jaime Lannister']
])

unseen_filter = np.array(list({tuple(i) for i in np.vstack((positives_filter, X_unseen))}))

ranks_unseen = evaluate_performance(
    X_unseen, 
    model=model, 
    filter_triples=unseen_filter,   # Corruption strategy filter defined above 
    corrupt_side = 's+o',
    use_default_protocol=False, # corrupt subj and obj separately while evaluating
    verbose=True
)

scores = model.predict(X_unseen)

from scipy.special import expit
probs = expit(scores)

pd.DataFrame(list(zip([' '.join(x) for x in X_unseen], 
                      ranks_unseen, 
                      np.squeeze(scores),
                      np.squeeze(probs))), 
             columns=['statement', 'rank', 'score', 'prob']).sort_values("score")

"""---
# 7. Visualizing Embeddings with Tensorboard projector
"""

from ampligraph.utils import create_tensorboard_visualizations