情感分词 情感打分 based on 感情词权重和否定词前缀

本来玩这些都是满足自己的爱好,然而嘛,,同学突然建议我写一些blog,我才突然想到,是哦,现在怎么投简历都是已读不回,索性把自己的项目都搬上来做个博客吧hhh,说不定也能为简历加点分,毕竟宜家揾食艰难哦~

这又是一篇python,没办法,python好写,是这样的

用到的所有分词文件我已经打包放在下面了,需要自取。

链接:https://pan.baidu.com/s/1f2pUhjFLvtA_SDLkR8wXtQ 
提取码:2w8y

现在来讲讲难点吧~

mostdict = degree_word[degree_word.index('extreme') + 1: degree_word.index('very')]  # 权重4,即在情感词前乘以4
verydict = degree_word[degree_word.index('very') + 1: degree_word.index('more')]  # 权重3
moredict = degree_word[degree_word.index('more') + 1: degree_word.index('ish')]  # 权重2
ishdict = degree_word[degree_word.index('ish') + 1: degree_word.index('last')]  # 权重0.5

这里是权重文件,可以看到分成most,very,more等权重文件,对应到具体的词语中就是

 然后就是停用词,我用的是哈尔滨工业大学的停用词,HITStop.txt,停用词就是把一句话拆成一个个词的词语,这点不再赘述。

def seg_depart(sentence):
    sentence_depart = jieba.cut(sentence.strip('\n'))
    res=[]
    useless=[',',',','.','。','!','!','[',']','?','?','(',')','(',')','{','}','\n']
    for i in sentence_depart:
        if i not in useless :
            res.append(i)
    return res

 当然,还有标点符号,结合这俩再用jieba库就能把一句话拆成很多个词了。拆完后我们来打分。打分前我们还需要观察一个具有情感的词语的方向,比如不喜欢,前缀是不,那就是一个负分的情感了。代码如下:

def judgeodd(num):
    if (num % 2) == 0:
        return 'even'
    else:
        return 'odd'
                if judgeodd(c) == 'odd':  # 扫描情感词前的否定词数
                    poscount *= -1.0
                    poscount2 += poscount
                    poscount = 0
                    poscount3 = poscount + poscount2 + poscount3
                    poscount2 = 0
                else:
                    poscount3 = poscount + poscount2 + poscount3
                    poscount = 0
                a = i + 1  # 情感词的位置变化

 还算简单吧?然后基于如上的基本逻辑,我们先随便找一段bilibili的弹幕,爬取b站弹幕见本人博客另一篇文章

 这个爬取的好像是一食纪的弹幕。没记错的话。然后打完分

 嗯不错不错,分数打完了可以做LDA分析咯!无非就是把词语塞进一个html网页中,这个后续我们再说。需要完整代码请发邮件到xinkong@1418.com咨询我,备注来意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值