def predict(self, a_rel, a_x):
        """Method for predicting sense of single relation.

        Args:
        a_rel (dict):
          input relation to classify
        a_x (np.array):
          (submodels x class) array of input predictions

        Returns:
        str:
          most probable sense of discourse relation

        """
        ret = np.mean(a_x, axis=0)
        return (np.argmax(ret), ret)
        if is_explicit(a_rel):
            return self.explicit.predict(a_x)
        return self.implicit.predict(a_x)
Exemple #2
0
    def predict(self, a_rel, a_x):
        """Method for predicting sense of single relation.

        Args:
        a_rel (dict):
          input relation to classify
        a_x (np.array):
          (submodels x class) array of input predictions

        Returns:
        str:
          most probable sense of discourse relation

        """
        ret = np.mean(a_x, axis=0)
        return (np.argmax(ret), ret)
        if is_explicit(a_rel):
            return self.explicit.predict(a_x)
        return self.implicit.predict(a_x)
Exemple #3
0
    def _divide_data(self, a_data):
        """Separate dataset into explicit and implicit instances.

        Args:
        a_data (2-tuple(dict, dict)):
        list of gold relations and dict with parses

        Returns:
        (2-tuple(list, list)):
          lists of explicit and implicit training instances

        """
        if a_data is None:
            return ((), ())
        explicit_instances = []
        implicit_instances = []
        for x_i, irel, y_i in a_data:
            if is_explicit(irel):
                explicit_instances.append((x_i, y_i))
            else:
                implicit_instances.append((x_i, y_i))
        return (explicit_instances, implicit_instances)
    def _divide_data(self, a_data):
        """Separate dataset into explicit and implicit instances.

        Args:
        a_data (2-tuple(dict, dict)):
        list of gold relations and dict with parses

        Returns:
        (2-tuple(list, list)):
          lists of explicit and implicit training instances

        """
        if a_data is None:
            return ((), ())
        explicit_instances = []
        implicit_instances = []
        for x_i, irel, y_i in a_data:
            if is_explicit(irel):
                explicit_instances.append((x_i, y_i))
            else:
                implicit_instances.append((x_i, y_i))
        return (explicit_instances, implicit_instances)
    def _divide_ds(self, a_ds):
        """Separate dataset into explicit and implicit instances.

        Args:
          a_ds (tuple):
            list of gold relations and dict with parses

        Returns:
          tuple:
            trainings set with explicit and implicit connectives

        """
        if not a_ds:
            return (([], {}), ([], {}))
        explicit_instances = []
        implicit_instances = []
        for i, irel in enumerate(a_ds[0]):
            if is_explicit(irel):
                explicit_instances.append((i, irel))
            else:
                implicit_instances.append((i, irel))
        ret = ((explicit_instances, a_ds[1]), (implicit_instances, a_ds[1]))
        return ret
    def predict(self, a_rel, a_data, a_ret, a_i):
        """Method for predicting sense of single relation.

        Args:
          a_rel (dict):
            discourse relation whose sense should be predicted
          a_data (2-tuple(dict, dict)):
            list of input JSON data
          a_ret (np.array):
            output prediction vector
          a_i (int):
            row index in the output vector

        Returns:
          void:

        Note:
          modifies ``a_ret[a_i]`` in place

        """
        if is_explicit(a_rel):
            return self.explicit.predict(a_rel, a_data, a_ret, a_i)
        return self.implicit.predict(a_rel, a_data, a_ret, a_i)
Exemple #7
0
    def predict(self, a_rel, a_data, a_ret, a_i):
        """Method for predicting sense of single relation.

        Args:
          a_rel (dict):
            discourse relation whose sense should be predicted
          a_data (2-tuple(dict, dict)):
            list of input JSON data
          a_ret (np.array):
            output prediction vector
          a_i (int):
            row index in the output vector

        Returns:
          void:

        Note:
          modifies ``a_ret[a_i]`` in place

        """
        if is_explicit(a_rel):
            return self.explicit.predict(a_rel, a_data, a_ret, a_i)
        return self.implicit.predict(a_rel, a_data, a_ret, a_i)
Exemple #8
0
    def _divide_ds(self, a_ds):
        """Separate dataset into explicit and implicit instances.

        Args:
          a_ds (tuple):
            list of gold relations and dict with parses

        Returns:
          tuple:
            trainings set with explicit and implicit connectives

        """
        if not a_ds:
            return (([], {}), ([], {}))
        explicit_instances = []
        implicit_instances = []
        for i, irel in enumerate(a_ds[0]):
            if is_explicit(irel):
                explicit_instances.append((i, irel))
            else:
                implicit_instances.append((i, irel))
        ret = ((explicit_instances, a_ds[1]),
               (implicit_instances, a_ds[1]))
        return ret
Exemple #9
0
def test_is_explicit():
    assert is_explicit({CONNECTIVE: {TOK_LIST: [1, 2, 3]}})
    assert is_explicit({CONNECTIVE: {TOK_LIST: []}}) is False