我想构建一个功能来处理非正式文本的情感分析中的对比词。文字为马来语。知道如何解决这个问题吗?
“食物很好吃,但是太贵了”-负面情绪
但是,由于肯定词(好,好吃)的数量高于否定词(昂贵),因此系统检测到句子为肯定。
所以我要做的是,一个对比词的价移子,我列出了一系列对比词,然后,如果系统中有对比词,它将极性从正向转变为负,反之亦然。
这是我尝试过的代码。
positive='1'
negative='-1'
neutral ='0'
pos_Words=set(['good','beautiful','best',])
neg_Words=set(['bad','suck','damn'])
contrast_words=set(['but'])
def sentiment(words):
pslen= len(pos_Words.intersection(words))
nglen= len(neg_Words.intersection(words))
if pslen > nglen and contrast_words == 0:
return positive
elif pslen < nglen and contrast_words == 0:
return negative
elif pslen > nglen and contrast_words > 0:
return negative
eliif pslen < nglen and contrast_words > 0:
return positive
else:
return neutral
我不知道我的概念是对还是错,这看起来太简单了,准确性还低,还有其他方法吗?