学习主张

  • 现在许多网站、小程序、应用软件、博客、电商购物渠道等,都有许多的用户谈论数据,这些数据包含了用户对产品的认知、看法和一些立场;
  • 那么咱们能够对这些数据进行情感剖析,能够得到一些有价值的信息,协助咱们进一步提高产品价值或用户体验;
  • 本文首要针对某个博客的谈论数据进行剖析,剖析用户的情感改变,包括正面的、负面的情绪改变等;
  • 学习本文主张对Python的SnowNLP第三库有必定的了解,别的对Python的excel数据处理相关库有一些基础认知,比方pandas库、matplotlib库等等。

SnowNLP基础

什么是SnowNLP?

在学习前,咱们先了解下什么是SnowNLP?

  • SnowNLP是Python的第三方模块或许库;
  • SnowNLP首要效果是可完成对谈论内容的情感预测。

SnowNLP情感剖析

  • SnowNLP可友爱的处理中文内容,包括中文分词、文本分类、提取文本关键词、文本类似度核算、情感剖析等;
  • 而针对情感剖析,剖析完成后可得到概率,从概率咱们能够得出哪些是正面谈论,哪些是负面谈论;
  • 情感剖析中,概率大于0.5视为正面点评(活跃情感),概率小于0.5视为负面点评(消沉情感)。

SnowNLP运用

在进行实战之前,咱们了解一些SnowNLP的简略运用,可对后续咱们数据剖析有必定的协助。下边简略举几个例子,协助咱们了解SnowNLP的效果。

SnowNLP装置

直接运用pip装置即可:

pip install snownlp

情感剖析

  • 情感剖析会对点评的正面和负面点评进行剖析,大于0.5为正面,否则为负面;
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12
# 文件名称:test_snlp.py
# 效果:snownlp运用-情感剖析
import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
from snownlp import SnowNLP
text = "我篇文章内容丰富、条理清晰,让我学到了许多~~~"
s = SnowNLP(text)
# 情感剖析
sentiment = s.sentiments
if sentiment > 0.5:
    print('正面点评')
else:
    print('负面点评')
# 输出为:正面点评

中文分词

  • 中文剖析首要是对一句话进行分化,把整个句子分割成单个词语和汉字;
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12
# 文件名称:test_snlp.py
# 效果:snownlp运用-中文分词
import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
from snownlp import SnowNLP
data = "假如我有一个亿,我会不会飘?"
s = SnowNLP(data)
print(s.words)
# 输出:
# ['假如', '我', '有', '一个', '亿', ',', '我', '会', '不', '会', '飘', '?']

关键词提取

  • 能够设置需求提取的关键词个数,然后输出对应的药提取的关键词;
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12
# 文件名称:test_snlp.py
# 效果:snownlp运用-关键词提取
import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
from snownlp import SnowNLP
text = "这是一篇关于Python数据处理的博客文章,首要介绍Python中SnowNLP库的运用方法以及实战。"
s = SnowNLP(text)
keywords = s.keywords(3)  # 提取前3个关键词
print('关键词:', keywords)
# 输出为:关键词: ['Python', '库', 'SnowNLP']

拼音、词性标示

  • 这个就不多介绍了,详细能够去看看SnowNLP的运用。

SnowNLP实战-博客谈论数据的情感剖析

数据预备

  • 咱们需求供给一组博客谈论数据,然后进行剖析;
  • 数据主张能够放入excel中,便利剖析,本文为了代码运行方面,后续会放置在变量中;
  • 数据如下:
类别 博客名称 时间 点评内容
有用性 Python字典和元组 2024/1/8 20:16 文章内容充分,对实践项目运用有很好的协助
易学性 一篇文章看懂Python从0到抛弃 2024/1/9 8:13 内容通俗易懂,能够快速入门Python的学习
完好性 Python画图 2024/2/3 12:20 内容过于简略,不太完好,有点短少重要内容,主张补充
有用性 我的Python学习生长记 2023/11/12 23:12 大佬这篇博文对我很有启示,感谢共享
易学性 Python画图 2023/11/13 20:12 内容不太能了解,没学会,哈哈
完好性 一篇文章看懂Python从0到抛弃 2023/12/30 20:15 内容许多,也很全,学习了
易学性 我的Python学习生长记 2023/12/20 21:15 或许我基础薄弱,感觉看不懂啊
易学性 怎么在职场中呼风唤雨? 2023/12/19 13:13 标题党,一看便是水文
完好性 怎么在职场中呼风唤雨? 2023/12/21 15:15 内容过于虚浮,不行完好,主张从实践中多讲讲
有用性 一篇文章看懂Python从0到抛弃 2023/12/17 18:18 比较比较有用,学习了
完好性 我的Python学习生长记 2023/12/24 5:37 内容充分完好,值得推荐给小伙伴
有用性 Python画图 2023/12/11 3:16 有用性还不错
易学性 Python selenium怎么完成自动化测验? 2023/12/9 16:48 内容不错,简略上手,感谢共享
完好性 Python selenium怎么完成自动化测验? 2023/12/8 11:33 内我很全啊,支撑大佬

数据获取

  • 有两种方法,第一种是把以上数据存入data.xls文件中,然后运用pandas读取即可,比方:

data = ‘data.xls’ df = pd.read_excel(data ) # 读取文本数据 df1=df.iloc[:,3] # 提取一切数据 print(type(df1)) values=[SnowNLP(i).sentiments for i in df1] # 遍历每条谈论进行预测

  • 第二种方法是,咱们直接把需求的数据放入变量,便于后续直接运行代码,如下:
data = ["文章内容充分,对实践项目运用有很好的协助",
        "内容通俗易懂,能够快速入门Python的学习",
        "内容过于简略,不太完好,有点短少重要内容,主张补充",
        "大佬这篇博文对我很有启示,感谢共享",
        "内容不太能了解,没学会,哈哈",
        "内容许多,也很全,学习了",
        "或许我基础薄弱,感觉看不懂啊",
        "标题党,一看便是水文",
        "内容过于虚浮,不行完好,主张从实践中多讲讲",
        "比较比较有用,学习了",
        "内容充分完好,值得推荐给小伙伴",
        "有用性还不错",
        "内容不错,简略上手,感谢共享",
        "内我很全啊,支撑大佬",
        ]
print(data)

数据剖析

大致过程分如下几个过程:

  • 导入需求的模块或许库;
  • 将需求的数据存入列表;
  • 循环遍历一切数据;
  • 输出活跃和消沉情绪的概率;
  • 核算概率并根据成果生成图标的横纵坐标;
  • 成果显现。
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2024/3/12 
# 文件名称:test_snlp.py
# 效果:Python完成博客谈论数据的情感剖析
import subprocess
import sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "snownlp"])
subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib"])
from snownlp import SnowNLP
import matplotlib.pyplot as plt
data = ["文章内容充分,对实践项目运用有很好的协助",
        "内容通俗易懂,能够快速入门Python的学习",
        "内容过于简略,不太完好,有点短少重要内容,主张补充",
        "大佬这篇博文对我很有启示,感谢共享",
        "内容不太能了解,没学会,哈哈",
        "内容许多,也很全,学习了",
        "或许我基础薄弱,感觉看不懂啊",
        "标题党,一看便是水文",
        "内容过于虚浮,不行完好,主张从实践中多讲讲",
        "比较比较有用,学习了",
        "内容充分完好,值得推荐给小伙伴",
        "有用性还不错",
        "内容不错,简略上手,感谢共享",
        "内我很全啊,支撑大佬",
        ]
# 遍历数据并进行预测
values = [SnowNLP(i).sentiments for i in data] 
print(values)
# 输出活跃的概率,大于0.5活跃的,小于0.5消沉的
# 保存预测值
text = []
positive = 0
negative = 0
for i in values:
   if(i>=0.5):
       text.append("正面")
       positive = positive   1
   else:
       text.append("负面")
       negative = negative   1
# 核算好评率
rate = positive / (positive   negative)
print('好评率为:','%.f%%' % (rate * 100)) # 格局化为百分比
# 图例的横纵坐标
y = values
plt.rc('font', family='SimHei', size=10)
plt.plot(y, marker='o', mec='r', mfc='w', label=u'博客评分')
plt.xlabel('粉丝')
plt.ylabel('博客评分')
# 成果显现
plt.legend()  # 让图例生效
plt.title('博客谈论情感剖析', family='SimHei', size=14, color='red')
plt.savefig('plot.jpg')
  • 显现效果如下:

数据剖析实战-Python完成博客谈论数据的情感剖析

总结

Python完成博客谈论数据的情感剖析实践是运用了SnowNLP库的功能,SnowNLP不仅能够对谈论数据进行情感剖析,还能进行文本分类、中文分词、词性标示、提取关键词、文本类似度核算等操作。这样做数据剖析其实为了协助咱们更好的了解咱们的目标客户关于产品的运用反馈,能够很好协助咱们进一步提高产品质量。