python snownlp情感分析和词云分析

  • Post author:
  • Post category:python




1 snownlp

安装

pip install snownlp -i https://pypi.douban.com/simple/

from snownlp import SnowNLP
s = SnowNLP("今天我很快乐。你怎么样呀?");
1) s.words        分词
2) s.sentences    句子/分句
3) s.sentiments   情感偏向,0-1之间的浮点数,越靠近1越积极(正面)
4) s.pinyin       转为拼音
5) s.han          转为简体
6) s.keywords(n) 提取关键字,n默认为5
7) s.summary(n)  提取摘要,n默认为5

示例

分词库仍以jieba的中文分词效果最佳

from snownlp import SnowNLP
s = SnowNLP(u"今天我很快乐。你怎么样呀?");
print("[words]",s.words); # 分词



2 jieba 分词

pip install jieba -i https://pypi.douban.com/simple/
import jieba

text = "征战四海只为今日一胜,我不会再败了。"
# jieba.cut直接得到generator形式的分词结果
seg = jieba.cut(text)  
print(' '.join(seg)) 

# 也可以使用jieba.lcut得到list的分词结果
seg = jieba.lcut(text)
print(seg)

jieba分词有三种不同的分词模式:精确模式、全模式和搜索引擎模式:

jieba.cut(sentence,cut_all=False,HMM=True) # 精确模式
jieba.cut(sentence,cut_all=True,HMM=True) # 全模式
jieba.cut_for_search (sentence, HMM=True) # 搜索引擎模式

对应的,函数前加l即是对应得到list结果的函数:

jieba.lcut(sentence,cut_all=False) # 精确模式
jieba.lcut(sentence,cut_all=True) # 全模式
jieba.lcut_for_search (sentence) # 搜索引擎模式

print(jieba.lcut(sentence,cut_all=False) )# 精确模式
print(jieba.lcut(sentence,cut_all=True)) # 全模式
print(jieba.lcut_for_search (sentence) )# 搜索引擎模式
#---------------ex----------------
sentence = "今天天气真好"
#---------------result----------------
'今天天气 真 好' # 精确模式
'今天 今天天气 天天 天气 真好' # 全模式
'今天 天天 天气 今天天气 真 好' # 搜索引擎模式



3 词云图

pip install matplotlib -i https://pypi.douban.com/simple/
pip install wordcloud -i https://pypi.douban.com/simple/

文本例子

#完美日记# 五大标志性“作品” 哪一款,让你与我们相识? “仅一眼即被外表吸引的出色口红" "历经了5次魔鬼考验的粉饼” 这次将TA们汇集在一起 你能通过关键词,猜出他们是谁吗? 点击关键词,解锁答案吧~ 评论区分享:你最喜欢的标志性“作品”是____?
#你郭姐的新伙计# 完美日记红丝绒v08 丝绒很高级 就是有点沾灰尘 佛山
#生活的模样# 是谁说完美日记的唇釉好的一点都不好用
今天画了个挺好看的妆 来夸夸我的化妆品们 红地球粉底液~妆效一绝不会氧化 玛丽黛佳眉粉~画眉超简单 小奥汀睫毛膏~卷翘持久 NYCEMAKEUP~修容超自然 花洛莉亚唇泥~09日常又百搭 完美日记液体腮红~04颜色好看好晕开 还要夸夸今天的天气,一点点热能够让我的妆融合得更好看
这逛一下午也着实是有些累啊 不知道为什么最近莫名其妙很关注国货 完美日记竟然开在西宁了,还有这么大个门面 西宁
完美日记背后的供应商都有哪些? 关注老林[抱拳]点个赞[爱心]为你揭秘更多品牌背后的供应商[抱拳][抱拳][抱拳] 林清海lqhv的微博视频
完美日记小猪盘8款眼影画法新手必看❗️
王一博准备出新歌了,已经开始筹备了,粉丝可以期待一下 杜海涛和沈梦辰准备是夏天办婚礼,现在在确认嘉宾的档期了 完美日记刚开始找的是张雨绮,不过当时她没有接 白宇有whoo品牌的合作,也会出席品牌的线下活动
jk出物回血完美日记斑虎盘能换点什么啊 全新带吊s42星野能换什么裙子啊,有爱咩嘢冈梨田 条顿精灵 抹茶威化 青野 其他也可以问问
#薅羊毛##好物分享# 哈哈哈哈哈34块钱买了2个凡士林润唇膏➕1个完美日记小黑钻 我真的牛牛牛了 都好好用啊
#扮下靓# 下睫毛长过上睫毛。 今日口红:娥佩兰润唇膏06(很提气色适合春天 底妆:Dior凝脂粉饼 眉笔:Jill Leen 眼线笔:The Saem得鲜眼线胶笔BR01 腮红:Bbia01(面中提亮) 睫毛膏:Canmake睫毛打底(棕)+完美日记极细睫毛膏
我的天啊完美日记哑光新出的940太好看了吧!这个色完全温柔本柔 太喜欢了!
款完美日记网红产品测评-红、黑、黄榜揭秘。 看看你用的好物上榜没? #你好生活节##我的生活百宝箱# 欢喜Yab的微博视频
#完美日记# 小黑钻色号116 /104 104绝绝子!薄涂厚涂都可! 居然没什么人种草这个色号! 116有点偏橘,也不错! 昨天买的时候发现京东在做活动36一支便宜哭不买不是中国人
#完美日记丹顶鹤盘# lyx#罗云熙皓衣行# 更新Vlog了我们开心坏了 熙熙、感谢 留住中国美色真好看啊 美色、如狼似虎 @罗云熙Leo
当你觉得为时已晚的时候, 恰恰是最早的时候。 @罗云熙Leo #完美日记亚太区色彩代言人罗云熙# #罗云熙寻鹤少年大片#
#完美日记亚太区色彩代言人罗云熙# lyx#罗云熙完美日记# 熙哥熙哥,你下巴冒了一颗小痘痘这男人肿着眼睛冒着痘痘还是那么帅! 兔叽们,快去小破站看新美妆博主 @罗云熙Leo
#完美日记亚太区色彩代言人罗云熙# #罗云熙寻鹤少年大片# 2021年3月19日下午, 知道@罗云熙Leo 在B站释放出“美妆”Vlog的时候, 我正好从圆形机下来,打算拉拉背松下腿就滚回家, 结果一个冲动又爬上圆形机加练了两遍Vlog的长度…… 罗熙熙这人呢,就是对“美”这东西没有“界限”, 魔熙先生第二季的时候,说着羡慕“长发及腰”, 化身寻鹤少年的时候,分享blingbling的创意“眼妆”, “女神节”祝大家“自由”, 美和美好就是他本身。 这个视频真好看,一解相思之苦。 我最喜欢盯着他的眼睛看, 这个Vlog中了他嘴唇的蛊。 最早认识他的时候,总觉得他嘴大吃四方好福气, 现在盯着他的嘴唇看,海棠花的香味。 下嘴唇饱满,牙牙可爱,嘴角微微上勾。 (没写完。。。
罗云熙#罗云熙皓衣行# #罗云熙良言写意# 罗云熙完美日记拍摄花絮,视频截图修图第二弹,这怼脸大眼忽闪忽闪也太好看了吧!@罗云熙Leo
没想到现在戴口罩变成了日常,出门时间都缩短了,只化上半张脸的妆就OK(谁还没个偷懒的小心思呐),#完美日记动物眼影盘# 我真的太爱啦,锦鲤盘里的亮片简直太满足我的少女心啦,约会必备哦,扑灵扑灵的回头率百分百~
完美日记玉兔盘美甲
# -*- coding: utf-8 -*-

import collections
import re

import wordcloud
import xlwt

import matplotlib.pyplot as plt
import jieba


def xieruexlce(bb,excelname):

    workbook = xlwt.Workbook(encoding='utf-8')
    # 创建一个worksheet
    worksheet = workbook.add_sheet('Sheet1',cell_overwrite_ok=True)

    # 写入excel
    # 参数对应 行, 列, 值ce
    # aa = [nicheng, content, qingganpingfen, keyword, zongjie, dianzan, shijian]评论时间
    worksheet.write(0, 0, label='词语')
    worksheet.write(0, 1, label='出现次数')
    for b in bb:
        worksheet.write(bb.index(b)+1, 0, label=b[0])
        worksheet.write(bb.index(b)+1, 1, label=b[1])
    # 保存
    try:
        workbook.save(str(excelname)+'词频统计.xls')
    except:
        print('excle名字错误')
        aa=input('请输入另一个excle表名字,例如:ceshi.xls')
        workbook.save(aa)

def duquwenzhang():
    apath=r'ceshi.txt'
    # apath=r'ceshi.txt'
    fn = open(apath, 'r', encoding='UTF-8')  # 打开文件
    string_data = fn.read()  # 读出整个文件
    fn.close()
    # print(string_data)
    return string_data

def fenxi():
    text = duquwenzhang()
    # 设置不让显示的词
    # huluedeci='真好,哈哈,真不错,哎呀'
    # huluelist=huluedeci.split(',')
    # for hulue in huluelist:
    #     try:
    #         text=''.join(words).replace(hulue,'')
    #     except:
    #         text = words.replace(hulue, '')

    # text = re.sub(r"[0-9\s+\.\!\/_,$%^*()?;;:-【】+\"\']+|[+——!,;:。?、~@#¥%……&*()]+", "", text)  #去掉标点符号
    words = [x for x in jieba.cut(text, cut_all=False) if len(x) >= 2]

    word_counts = collections.Counter(words)  # 对分词做词频统计
    word_counts_top200 = word_counts.most_common(200)  # 获取前200最高频的词
    word_counts_top10 = word_counts.most_common(10)  # 获取前10最高频的词
    print(word_counts_top10)  #
    xieruexlce(word_counts_top200, '词频统计')

    wc = wordcloud.WordCloud(
        font_path='simhei.ttf',  # 设置字体格式
        mask=None,  # 设置背景图
        background_color=None,  # 设置背景颜色
        mode='RGBA',  # 设置背景图
        max_words=200,  # 最多显示词数
        max_font_size=100 , # 字体最大值
        scale = 32  #设置清晰度
    )
    wc.generate_from_frequencies(word_counts)  # 从字典生成词云
    plt.imshow(wc)  # 显示词云
    plt.axis('off')  # 关闭坐标轴
    name = "词云图.png"
    plt.savefig(name, dpi=600)


if __name__ == '__main__':
    fenxi()



版权声明:本文为weixin_45304329原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。