【NLP】Python3.7使用NLTK进行情感分析

【NLP】Python3.7使用NLTK进行情感分析

以前系统的玩过NLP,对于相关的知识较为熟悉,这次需要对一些英文评论性的语料做一些情感分析,本来这段时间好不容易搞定了中文的SnowNlp,发现用已有代码效果不好,本次拿出以前用了很多次的NLTK,好久不用会有一些坑的,那记录一下吧,希望大家可以顺利,不要安装使用上打击了积极性哇!

1.NLTK情感分析

自然语言工具包(NLTK)是最受欢迎的自然语言处理(NLP)库。它是用 Python 语言编写的,背后有强大的社区支持。

NLTK 也很容易入门,实际上,它将是你用到的最简单的自然语言处理(NLP)库。

2.安装使用上的一些坑

这次在python 3.7环境下。
其实一般只需要pip install nltk就可以,在pycharm下直接add也可,这个时候import nltk一般是没问题的。
但是如果想用Nltk下的自带data,一般使用import nltk后用,

nltk.download()

这时候会弹出?
正常下载需要的包就可以了。
但有可能会像我一样出错,连接不到winerror巴拉巴拉。。。。。
【NLP】Python3.7使用NLTK进行情感分析_第1张图片
那就看这里吧
详细步骤,去他的github自己下载
在github上下载nltk_data,网址为https://github.com/nltk/nltk_data,支持python3。下载packages目录,把目录名改为nltk_data,保存在任意目录下,比如D:/nltk_data这样都可以。
【NLP】Python3.7使用NLTK进行情感分析_第2张图片
一般这样就会可以用啦!

3.实战结果

我从数据库里读出自己的内容,主要nltk情感分析写在这个函数里了!
不要忘了?
from nltk.sentiment.vader import SentimentIntensityAnalyzer

def nltkSentiment(view):
    sid = SentimentIntensityAnalyzer()
    view_sen=[]
    for sen in view:
        print(sen)
        senti = sid.polarity_scores(sen)
        for k in senti:
            print('{0}:{1},'.format(k, senti[k]), end='\n')

输出的结果大概是这样:
【NLP】Python3.7使用NLTK进行情感分析_第3张图片compound是复杂度,基本今天这个结果暂时满意啦~

3.后续需解决

一些思考和后续需要解决的问题
这个解决给了每个句子的pos ,neg, neu三个方向的值,不确定怎么用一个值来衡量,大多都属于中立的范畴,但这样对情感分析不适合,最好是以pos 和neu为主找到一个衡量值,除了pos:0;neg:0;neu:1,就认为他是中立的。

或许可以?!继续试试,会回来填坑~

—————EchoZhang——2019/10/28——————————

你可能感兴趣的:(NLP)