情感分析中处理否定问题的伪代码

# 需要准备的词典:
# 正向词典: pos_dict
# 负向词典: neg_dict
# 否定前缀: neg_prefix_dict(如:不是,不算 等)
# 双重否定前缀: double_neg_prefix_dict(如:不能不,不得不 等)
# 程度前缀:  very_prefix(如: 最,很 等)

#curr_index 表示当前情感词在句子中的位置
def prefix_process(curr_index,sewntence,score):
    seg = sentence[curr_index-5: curr_index]
    # 双重否定
    for curr_neg_prefix in double_neg_prefix_dict:
        if seg.endswith(curr_neg_prefix):
            return 0.8*score

    # 否定前缀直接修饰情感词
    for curr_neg_prefix in neg_prefix_dict:
        if seg.endswith(curr_neg_prefix):
            temp_pair=pesg.lcut(sentence[0:curr_index])
            #判断是否有双重否定修饰
            for i,(w,f) in enumerate(reversed(temp_pair)):
                if 标点符号:
                    break
                elif 代词/名词/数词(找到情感词修饰的主语):
                    if 情感词的主语被否定(因为修饰否定的否定词已经处理过了):
                        return 1.3*score
                return -1.3*score
            
            #否定前缀修饰情感的主语
            for i,(w,f) in enumerate(reversed(temp_pair)):
                if 标点符号:
                    break
                elif 代词/名词/数词(找到情感词修饰的主语):
                    if 情感词的主语被否定(因为修饰否定的否定词已经处理过了):

            #程度前缀
            for curr_very_prefix in se_very_prefix:
                if seg.endswith(curr_very_prefix):
                    return 1.3*score
return score
    

参考:《深度学习算法实践》吴岸城

你可能感兴趣的:(情感分类,python)