当前位置:   article > 正文

评论文本主题分析

文本主题分析

数据分析:汽车评论主题分析与情感极性分析

在这里插入图片描述

一、项目目的

根据汽车评论数据,进行评论的主题分析,与情感判别分析。

二、数据预处理

导入模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import re

# 正常显示中文
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
# 正常显示符号
from matplotlib import rcParams
rcParams['axes.unicode_minus']=False
from sklearn import preprocessing
from sklearn.feature_extraction.text import TfidfVectorizer,CountVectorizer
import jieba
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
导入文本数据
import pandas as
train=pd.read_csv(r'C:\Users\Administrator.USER-20180908SZ\Desktop\汽车情感分析数据集\train.csv')
#test=pd.read_csv(r'C:\Users\Administrator.USER-20180908SZ\Desktop\汽车情感分析数据集\test_public.csv')
path_stopwords=r'C:\Users\Administrator.USER-20180908SZ\Desktop\stopwords.txt'
#训练集总共9947条数据,Columns分别是,评论ID号,评论内容,主题,情感值,情感词
#train.info()
#9947个数据样本中,有8290个不重复的评论

train['content_id', 'content'].head()
      content_id                                            content  \
0  vUXizsqexyZVRdFH           因为森林人即将换代,这套系统没必要装在一款即将换代的车型上,因为肯定会影响价格。   
1  4QroPd9hNfnCHVt7      四驱价格貌似挺高的,高的可以看齐XC60了,看实车前脸有点违和感。不过大众的车应该不会差。   
2  QmqJ2AvM5GplaRyz  斯柯达要说质量,似乎比大众要好一点,价格也低一些,用料完全一样。我听说过野帝,但没听说过你说...   
3  KMT1gFJiU4NWrVDn           这玩意都是给有钱任性又不懂车的土豪用的,这价格换一次我妹夫EP020可以换三锅了   
4  nVIlGd5yMmc37t1o                            17价格忒高,估计也就是14-15左右。      

print(train.content.nunique())
#训练集中不重复的content_id和content,columns(id-content)
content_set = train.groupby(['content_id','content']).size().reset_index().iloc[:,:2]
#content_set.head()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
文本处理
#去除短句,评论长度大于等于4,从结果看,所有评论都大于等于4
content_set = content_set[content_set['content'].apply(len)>=4]  #columns(id-content)
#print(content_set.count())

#使用jieba分词,去除训练集和测试集中的停用词
def stopwordslist(filepath):  # 创建停用词列表 
 global stopwords
 stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]  
 return stopwords  
def seg_sentence(sentence):  # 对句子进行分词  
 #sentence = re.sub('[a-zA-Z]*','',sentence)  # 去除字母
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/945831
推荐阅读
相关标签
  

闽ICP备14008679号