Browse Source

Update abducer examples

pull/3/head
troyyyyy 3 years ago
parent
commit
8511d618ba
1 changed files with 14 additions and 4 deletions
  1. +14
    -4
      abl/abducer/abducer_base.py

+ 14
- 4
abl/abducer/abducer_base.py View File

@@ -10,10 +10,13 @@
#
# ================================================================#

import sys
sys.path.append('/home/huwc/ABL-Package/abl')

import abc
import numpy as np
from zoopt import Dimension, Objective, Parameter, Opt
from ..utils.utils import confidence_dist, flatten, reform_idx, hamming_dist
from utils.utils import confidence_dist, flatten, reform_idx, hamming_dist

class AbducerBase(abc.ABC):
def __init__(self, kb, dist_func='hamming', zoopt=False):
@@ -302,21 +305,28 @@ if __name__ == '__main__':
kb = HED_prolog_KB(pseudo_label_list=[1, 0, '+', '='], pl_file='../examples/datasets/hed/learn_add.pl')
abd = HED_Abducer(kb)
consist_exs = [[1, 1, '+', 0, '=', 1, 1], [1, '+', 1, '=', 1, 0], [0, '+', 0, '=', 0]]
inconsist_exs = [[1, '+', 0, '=', 0], [1, '=', 1, '=', 0], [0, '=', 0, '=', 1, 1]]
inconsist_exs1 = [[1, 1, '+', 0, '=', 1, 1], [1, '+', 1, '=', 1, 0], [0, '+', 0, '=', 0], [0, '+', 0, '=', 1]]
inconsist_exs2 = [[1, '+', 0, '=', 0], [1, '=', 1, '=', 0], [0, '=', 0, '=', 1, 1]]
rules = ['my_op([0], [0], [0])', 'my_op([1], [1], [1, 0])']

print('HED_kb logic forward')
print(kb.logic_forward(consist_exs))
print(kb.logic_forward(inconsist_exs))
print(kb.logic_forward(inconsist_exs1), kb.logic_forward(inconsist_exs2))
print()
print('HED_kb consist rule')
print(kb.consist_rule([1, '+', 1, '=', 1, 0], rules))
print(kb.consist_rule([1, '+', 1, '=', 1, 1], rules))
print()

print('HED_Abducer abduce')
res = abd.abduce((consist_exs, [[[None]]] * len(consist_exs), [None] * len(consist_exs)))
print(res)
res = abd.abduce((inconsist_exs, [[[None]]] * len(consist_exs), [None] * len(inconsist_exs)))
res = abd.abduce((inconsist_exs1, [[[None]]] * len(inconsist_exs1), [None] * len(inconsist_exs1)))
print(res)
res = abd.abduce((inconsist_exs2, [[[None]]] * len(inconsist_exs2), [None] * len(inconsist_exs2)))
print(res)
print()

print('HED_Abducer abduce rules')
abduced_rules = abd.abduce_rules(consist_exs)
print(abduced_rules)

Loading…
Cancel
Save