基于Python的情感分析详细项目--《流浪地球》

获取项目相关数据,请移步至知乎,搜索并关注“情报学小硕”私信获取
https://www.zhihu.com/people/ban-tang-zhu-yi-51

一、模块的导入及数据读取

import pandas as pd
import numpy as np
import seaborn as sns
import itertools
import re
import jieba
import matplotlib.pyplot as plt
import jieba.analyse
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer
from snownlp import SnowNLP
import plotly.express as px
from sklearn.metrics import classification_report,confusion_matrix,precision_score
from gensim import corpora, models
from gensim.models import Word2Vec
from sklearn.cluster import KMeans
# 显示cell运行时长
%load_ext klab-autotime
#警告信息的处理(忽略)
import warnings
warnings.filterwarnings('ignore')

#设置行列的显示(以查看到全部的数据行和列)
pd.set_option('display.width',50000)
pd.set_option('display.max_colwidth',5000)
pd.set_option('display.max_columns',None)
pd.set_option('display.max_rows',None)
df=pd.read_csv('./流浪地球.csv')
df.head()

二、数据预处理

1.地区数据预处理

df['citys']=df['citys'].apply(lambda x: x[2:-2] if len(x)>2 else '-1')
##此函数用于判断结果为中文还是英文(通用性函数)
def city_split(x):
    x=str(x)
    if x >= u'一' and x <= u'龥':
        return x[:2]
    else:
        return 'outside'
df['province']=df['citys'].apply(city_split)
df['province']=df['province'].apply(lambda x:'黑龙江' if '讷河' in x else ('黑龙江' if '黑龙' in x else x))

2.评分数据预处理

df['scores']=df['scores'].apply(lambda x: x[2:-2] if len(x)>2 else '-1').astype('int')

3.评论数据预处理

df['evaluate']=df['evaluate'].apply(lambda x : x if len(x)==2 else 'Unkonw')
df['evaluate'].value_counts()

4.时间数据预处理

#计算截止最早的日期距离时间多久
date=pd.to_datetime(df['times'])-pd.to_datetime("2019-01-11")
df['days_of_year']=[i.days for i in date]
del date
df['date']=pd.to_datetime(df['times']).apply(lambda x:x.strftime("%Y-%m-%d"))
df['times'] = pd.to_datetime(df['times'])
df['week']=df['times'].apply(lambda x: x.week)
df['day'] = df['times'].apply(lambda x: x.day)
df['hour'] = df['times'].apply(lambda x: x.hour)

5.重复值及无用数据清理

#删除无用数据列
df.drop(['labs','user_info','times'],axis=1,inplace=True)
#查看重复量
print('重复数据量:',df.shape[0]-df.drop_duplicates().shape[0])
#删除重复值
df=df.drop_duplicates()

三、数据可视化

1. 地区分布可视化(地图)

#对各地的数据进行分组汇总
df_f=df['province'].value_counts().rename_axis('province').reset_index(name='count')
data=[]
#处理成画图时可识别的数据类型
for i in range(len(df_f)):
    if df_f.iloc[i,0]!='outside'
  • 10
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值