sentiment_kb.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:Book_DeepLearning_Practice 作者: wac81 项目源码 文件源码
def prefix_process(curr_index, sentence, score):
    """
    ?????????????
    :param curr_index:  w ? sentence ??????
    :param score:       ??????
    :param sentence:    ??
    :return:
    """
    num_cnt = 5
    if curr_index - num_cnt > 0:
        seg = sentence[curr_index - num_cnt:curr_index]
    else:
        seg = sentence[0:curr_index]

    # ????????
    for curr_neg_prefix in double_none_prefix:
        if seg.endswith(curr_neg_prefix):
            return 0.8 * score

    # ????????
    for curr_neg_prefix in set_neg_prefix:
        if seg.endswith(curr_neg_prefix):
            temp_pair = pseg.lcut(sentence[0:curr_index])
            for i, (w, f) in enumerate(reversed(temp_pair)):
                if f.startswith(u"x"):
                    break
                elif f.startswith(u"r") or f.startswith(u"n") or f.startswith(u"m"):
                    if (len(temp_pair)-i-2) > 0 and temp_pair[len(temp_pair)-i-2].word in set_neg_prefix:
                        return 1.3 * score
            return -1.3 * score

    temp_pair = pseg.lcut(seg)
    for i, (w, f) in enumerate(reversed(temp_pair)):
        if f.startswith(u"x"):
            break
        elif f.startswith(u"r") or f.startswith(u"n") or f.startswith(u"m"):
            if temp_pair[len(temp_pair)-i-2].word in set_neg_prefix:
                return -0.6 * score

    # ?????????????
    for curr_very_prefix in set_very_prefix:
        if seg.endswith(curr_very_prefix):
            return 1.3 * score
    return score
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号