我一直在用NLTK在python中做情绪分析,它只有正类、中性类和负面类,如果我们想做情感分析,并有一个数字来显示一个句子多少可以是负数或正数呢?把它看作是一个回归问题。是否有任何经过预先训练的图书馆可以这样做?
发布于 2018-07-16 16:33:40
我知道有几种方法可以做到:
NLTK方式:
from nltk.sentiment.vader import SentimentIntensityAnalyzer as sia
sentences = ['This is the worst lunch I ever had!',
'This is the best lunch I have ever had!!',
'I don\'t like this lunch.',
'I eat food for lunch.',
'Red is a color.',
'A really bad, horrible book, the plot was .']
hal = sia()
for sentence in sentences:
print(sentence)
ps = hal.polarity_scores(sentence)
for k in sorted(ps):
print('\t{}: {:>1.4}'.format(k, ps[k]), end=' ')
print()
示例输出:
This is the worst lunch I ever had!
compound: -0.6588 neg: 0.423 neu: 0.577 pos: 0.0
斯坦福-NLP,Python的一种方式:
(请注意,这种方式要求您启动CoreNLP服务器的一个实例来运行,例如:java -mx1g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
)
from pycorenlp import StanfordCoreNLP
stanford = StanfordCoreNLP('http://localhost:9000')
for sentence in sentences:
print(sentence)
result = stanford.annotate(sentence,
properties={
'annotators': 'sentiment',
'outputFormat': 'json',
'timeout': '5000'
})
for s in result['sentences']:
score = (s['sentimentValue'], s['sentiment'])
print(f'\tScore: {score[0]}, Value: {score[1]}')
示例输出:
This is the worst lunch I ever had!
Score: 0, Value: Verynegative
https://stackoverflow.com/questions/51343373
复制相似问题