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
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
def test_is_preposition(): assert StringUtils.is_preposition('the') is False assert StringUtils.is_preposition('on')
def test_is_preposition(): assert StringUtils.is_preposition("the") is False assert StringUtils.is_preposition("on")