前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微博情感分析代码,随取随用

微博情感分析代码,随取随用

作者头像
月小水长
发布2021-11-16 13:09:41
1.2K0
发布2021-11-16 13:09:41
举报
文章被收录于专栏:月小水长月小水长

情感分析有三种方式。

一是自建模型训练,这种费时费力精度大概率不高。

二是使用百度等在线接口,使用 requests 等请求库调用,精度应该最高,但是这种有并发限制。

三是使用一些开源的模型,比如 SnowNLP 这种,可以直接 pip install,这种精度没有百度的高应该,但是没有接口并发等限制。

其中这三种本质上都是训练好的模型在起作用,第二种是 web sdk,第三种是 local sdk。

本文使用的第三种,需要先 pip 安装 SnowNLP pandas 这两个库。

代码语言:javascript
复制
from snownlp import SnowNLP
import pandas as pd
def sentiment_score(input_file, text_col = 'text'):
    df = pd.read_csv(input_file)
    sentiment_score_col = 'sentiment_score'
    is_scored_col = 'has_scored'
    df[is_scored_col] = [False for _ in range(df.shape[0])]
    for index, row in df.iterrows():
        print(f'{index + 1}/{df.shape[0]}')
        if row[is_scored_col] == True:
            continue
        text = row[text_col]
        # 去除 html 标签
        text = filter_html(text)
        if len(text) == 0 or text == None:
            # 本行没有文本
            sentiment = -1
        else:
            sentiment = SnowNLP(text).sentiments
        df.loc[index, sentiment_score_col] = sentiment
        df.loc[index, is_scored_col] = True

    df.to_csv(input_file, index=False, encoding='utf-8-sig')

上面这个函数的作用是,输入一个 csv 文件名,并且其文本列名为 text,自动输出一个给文本打好情感分的同名 csv 文件。情感分所在列名为 sentiment_score,其值介于 0-1 之间,值小于 0.2 可以判为消极,大于 0.6 可以判为积极。

比如我有一个 12345678.csv 文件,其内容列为 content,可以这样给这个文件打分。

代码语言:javascript
复制
sentiment_score(input_file='12345678.csv', text_col='content')

其中 filter_html 函数 对 html 标签作了过滤。

代码语言:javascript
复制
import re
def filter_html(text):
    # text为包含html标签内容
    content = re.sub("<[^>]*?>", "", text)
    return content

以上所有代码,复制到 py 文件中即可用~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 月小水长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档