《自然语言处理技术》
PAGE2
项目3深入文本进阶处理
——基于LightGBM实现情感分析
学习目标
掌握使用jieba库进行中文文本分词的方法。
掌握TF-IDF算法,学会使用TfidfVectorizer提取文本特征。
理解LightGBM算法原理,学会使用LightGBM搭建情感分类模型。
掌握模型评估方法,如准确率等。
学习和掌握情感分析技术,培养学生具备分析舆论导向和舆论情感的能力。
提高学生独立解决问题的能力,培养学生的创新意识和实践能力。
案例要求
导入所需库和模块。
加载文本数据。
文本预处理。
特征提取。
划分训练集和测试集。
模型训练。
模型评估。
输出结果。
案例内容
本案例将通过对一份酒店评论数据集进行基于LightGBM的情感分析,主要分为几个步骤:加载文本数据、文本预处理、特征提取、数据集划分、模型训练与评估以及结果输出。
通过本案例的学习,学生将掌握如何运用计算机技术处理和分析文本信息,提高学生对社会问题的敏感性,此外,还能够培养学生关注社会热点问题的能力,如通过对酒店评论的情感分析了解各酒店的受欢迎程度和观众喜好;通过情感分析技术,培养学生具备分析舆论导向和舆论情感的能力,使学生能够在日常生活和工作中洞察社会态势。
案例步骤
导入所需库和模块
首先,导入情感分析所需库和模块,如REF_Re\h代码41所示。
代码STYLEREF1\s4SEQ代码\*ARABIC\s11导入所需库和模块
importpandasaspd#用于数据处理
importnumpyasnp#用于数组操作
importjieba#用于中文分词
importre#用于正则表达式操作
fromsklearn.model_selectionimporttrain_test_split#用于数据集划分
fromsklearn.feature_extraction.textimportTfidfVectorizer#用于特征提取
fromLightGBMimportLGBMClassifier#用于构建LightGBM分类器
fromsklearn.metricsimportaccuracy_score#用于模型评估
加载文本数据
这一步骤,首先使用pandas库读取酒店评论数据集(酒店评价.csv),再从数据集中提取评论(comment列)和对应的情感标签(label列),其中,正面情感标记为1,负面情感标记为0,如REF_Re\h代码42所示。
代码STYLEREF1\s4SEQ代码\*ARABIC\s12加载文本数据
#读取电影评论数据集
data=pd.read_csv(../data/酒店评价.CSV)
print(data.head())
#提取评论和标签(正面:1,负面:0)
comments=data[review]
labels=data[label]
print(评论形状为:\n,comments.shape)
print(标签形状为:\n,labels.shape)
运行REF_Re\h代码42,得到酒店评价如下。
labelreview
01距离川沙公路较近,但是公交指示不对,如果是蔡陆线的话,会非常麻烦.建议用别的路线.房间较...
11商务大床房,房间很大,床有2M宽,整体感觉经济实惠不错!
21早餐太差,无论去多少人,那边也不加食品的。酒店应该重视一下这个问题了。房间本身很好。
31宾馆在小街道上,不大好找,但还好北京热心同胞很多~宾馆设施跟介绍的差不多,房间很小,确实挺小...
41CBD中心,周围没什么店铺,说5星有点勉强.不知道为什么卫生间没有电吹风
评论形状为:
(7766,)
标签形状为:
(7766,)
文本预处理
对文本数据进行预处理,包括文本清洗和文本分词两个部分,如REF_Re\h代码43所示。
代码STYLEREF1\s4SEQ代码\*ARABIC\s13文本预处理
#定义文本清洗函数
defclean_text(text):
#使用正则表达式去除特殊符号、数字和英文字符
returnre.su