文本情感分析-机器学习实验三

本文介绍了如何通过Python和机器学习技术,如jieba分词、CountVectorizer预处理、SVM模型训练,进行购物评论的情感分析实验。重点展示了文本分析的整体流程和技术应用,包括正向和负向评论的处理,以及模型预测的实际应用。
摘要由CSDN通过智能技术生成

情感分析-机器学习实验三

关注公众号:Time木
回复:文本情感分析
可获得相关代码,数据,文档
更多大学课业实验实训可关注公众号回复相关关键词
学艺不精,若有错误还望指点

实验目的:
通过实验,掌握文本分析的整体流程,了解文本分类、情感分析、自动摘要等内容
通过给定的文本内容,完成分词、文本向量化、文本分类、情感分析等相关实验
实验可从文本分类、情感分析、自动摘要中任选一个,进行完整实验

1、导入pandas库

import pandas as pd

在这里插入图片描述
2、读入“购物评论”的数据集,并打印出前10行。

# 读入原始数据集
dfpos = pd.read_excel("购物评论.xlsx", sheet_name = "正向", header=None)
dfpos['y'] = 1
dfneg = pd.read_excel("购物评论.xlsx", sheet_name = "负向", header=None)
dfneg['y'] = 0
df0 = dfpos.append(dfneg, ignore_index = True)
df0.head(10)

在这里插入图片描述
3、导入“jieba”库
Jieba库的分词原理:利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果。

import jieba

安装“jieba”教程:anaconda安装jieba
4、进行分词和预处理。
查看分词结果:

# 分词和预处理
cuttxt = lambda x: " ".join(jieba.lcut(x)) # 这里不做任何清理工作,以保留情感词
df0["cleantxt"] = df0[0].apply(cuttxt) 
df0.head()

在这里插入图片描述
5、忽略少于5个文档中出现的术语

from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer(min_df = 5) # 出现5次以上的才纳入

wordmtx = countvec.fit_transform(df0.cleantxt)
wordmtx

在这里插入图片描述
6按照7:3的比例生成训练集和测试集

# 按照7:3的比例生成训练集和测试集
from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(
    wordmtx, df0.y, test_size=0.3) # 这里可以直接使用稀疏矩阵格式
x_train[0]

在这里插入图片描述
7使用SVM进行建模

# 使用SVM进行建模
from sklearn.svm import SVC

clf=SVC(kernel = 'rbf', verbose = True)
clf.fit(x_train, y_train) # 内存占用可能较高
clf.score(x_train, y_train)

在这里插入图片描述
8对模型效果进行评估

# 对模型效果进行评估
from sklearn.metrics import classification_report

print(classification_report(y_test, clf.predict(x_test)))

在这里插入图片描述

clf.predict(countvec.transform([df0.cleantxt[0]]))[0]

10使用模型对实际文本进行处理,查看预测效果

# 模型预测
import jieba

def m_pred(string, countvec, model) : 
    words = " ".join(jieba.lcut(string))
    words_vecs = countvec.transform([words]) # 数据需要转换为可迭代格式
     
    result = model.predict(words_vecs)
    
    if int(result[0]) == 1:
        print(string, ":正向")
    else:
        print(string, ":负向")
        

comment = "外观美观,速度也不错。上面一排触摸键挺实用。应该对得起这个价格。当然再降点大家肯定也不反对。风扇噪音也不大。"
m_pred(comment, countvec, clf)

在这里插入图片描述

comment = "作为女儿6.1的礼物。虽然晚到了几天。等拿到的时候,女儿爱不释手,上洗手间也看,告知不好。竟以学习毛主席来反驳我。我反对了几句,还说我对主席不敬。晕。上周末,告诉我她把火鞋和风鞋拿到学校,好多同学羡慕她。呵呵,我也看了其中的人鸦,只可惜没有看完就在老公的催促下睡了。说了这么多,归纳为一句:这套书买的值。"
m_pred(comment, countvec, clf)  

在这里插入图片描述
总结:在这次试验中,我基本掌握了文本分析的整体流程,了解了情感分析的内容,并进行了购物评论的情感分析。
结合课本和实验我了解到,情感分析就是对文本内容所表达出来的主观情感额色彩进行挖掘和分析的过程。这次实验也用到了Jieba库,“jieba”的分词原理是利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,从而形成分词结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Time木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值