利用Sentiwordnet进行文本情感分析(简)

本文介绍了如何使用Python的NLTK库进行文本情感分析,包括下载NLTK包,分词,计算单词得分,并详细解释了代码过程。通过Sentiwordnet,对名词、动词、形容词和副词进行情感评分,最终计算文本的情感总分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简介

利用python中的NLTK包对英文进行分词,得到词频,标注词性,得到单词得分,最后可再根据实际情况计算文本情感分。注:分词只能得到一个个单词,不能得到短语。(我的第一篇blog!!!)

2. 下载NLTK包和它内部的词典

  • 使用pip下载nltk
    pip install nltk在这里插入图片描述

  • 利用nltk下载词典
    先在代码行输入:

    import nltk
    nltk.download()
    

    弹出下载框,可选all,一般下载book就够用了,不够的话在运行代码时会弹出错误提示你缺什么,再下载也可以。在这里插入图片描述

3. 全过程代码详解

1. 导入所需包,函数

import pandas as pd #著名数据处理包
import nltk 
from nltk import word_tokenize #分词函数
from nltk.corpus import stopwords #停止词表,如a,the等不重要的词
from nltk.corpus import sentiwordnet as swn #得到单词情感得分
import string #本文用它导入标点符号,如!"#$%& 

2. 分词

  • 导入文本

    text = 'Nice quality, fairly quiet, nice looking and not too big.  I bought two.'
    
  • 载入停止词

    stop = stopwords.words("english") + list(string.punctuation)
    >>> stop[:5]
    ['i', 'me', 'my', 'myself', 'we']
    
  • 根据停止词表分词

    >>>[i for i in word_tokenize(str(text).lower()) if i not in stop]
    ['nice', 'quality', 'fairly', 'quiet', 'nice', 'looking', 'big', 'bought', 'two']
    

``

3. 计数,给予词性标签

ttt = nltk.pos_tag([i for i in word_tokenize(str(text[77]).lower()) if i not in stop])
>>> ttt
[('nice', 'JJ'), ('quality', 'NN'), ('fairly', 'RB'), ('quiet', 'JJ'), ('nice', 'JJ'), ('looking', 'VBG'), ('big', 'JJ'), ('bought', 'VBD'), ('two', 'CD')]
>>> word_tag_fq = nltk.FreqDist(ttt)
>>> word_tag_fq
FreqDist({
   ('nice', 'JJ'): 2, 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值