def extract_same_head_lemma(mention_x: MentionDataLight,
                                mention_y: MentionDataLight) -> RelationType:
        """
        Check if input mentions has same head lemma relation

        Args:
            mention_x: MentionDataLight
            mention_y: MentionDataLight

        Returns:
            RelationType.SAME_HEAD_LEMMA or RelationType.NO_RELATION_FOUND
        """
        if StringUtils.is_preposition(mention_x.mention_head_lemma.lower()) or \
                StringUtils.is_preposition(mention_y.mention_head_lemma.lower()):
            return RelationType.NO_RELATION_FOUND
        if mention_x.mention_head_lemma.lower() == mention_y.mention_head_lemma.lower():
            return RelationType.SAME_HEAD_LEMMA
        return RelationType.NO_RELATION_FOUND
Exemplo n.º 2
0
    def extract_fuzzy_head_fit(mention_x: MentionDataLight,
                               mention_y: MentionDataLight) -> RelationType:
        """
        Check if input mentions has fuzzy head fit relation

        Args:
            mention_x: MentionDataLight
            mention_y: MentionDataLight

        Returns:
            RelationType.FUZZY_HEAD_FIT or RelationType.NO_RELATION_FOUND
        """
        if StringUtils.is_preposition(mention_x.mention_head_lemma.lower(
        )) or StringUtils.is_preposition(mention_y.mention_head_lemma.lower()):
            return RelationType.NO_RELATION_FOUND

        mention_y_tokens = mention_y.tokens_str.split()
        mention_x_tokens = mention_x.tokens_str.split()
        if mention_x.mention_head in mention_y_tokens or mention_y.mention_head in mention_x_tokens:
            return RelationType.FUZZY_HEAD_FIT
        return RelationType.NO_RELATION_FOUND
    def extract_exact_string(mention_x: MentionDataLight,
                             mention_y: MentionDataLight) -> RelationType:
        """
        Check if input mentions has exact string relation

        Args:
            mention_x: MentionDataLight
            mention_y: MentionDataLight

        Returns:
            RelationType.EXACT_STRING or RelationType.NO_RELATION_FOUND
        """
        relation = RelationType.NO_RELATION_FOUND
        mention1_str = mention_x.tokens_str
        mention2_str = mention_y.tokens_str
        if StringUtils.is_preposition(mention1_str.lower()) or \
                StringUtils.is_preposition(mention2_str.lower()):
            return relation

        if mention1_str.lower() == mention2_str.lower():
            relation = RelationType.EXACT_STRING

        return relation
Exemplo n.º 4
0
def test_is_preposition():
    assert StringUtils.is_preposition('the') is False
    assert StringUtils.is_preposition('on')
Exemplo n.º 5
0
def test_is_preposition():
    assert StringUtils.is_preposition("the") is False
    assert StringUtils.is_preposition("on")