LSTM实现情感分类

本文基于kaggle上的UMICH SI650情感分类数据集,利用LSTM进行文本情感分析。首先对数据进行预处理,包括分词、统计词典大小和最长句子,并转化为模型输入。接着构建LSTM模型,编译并训练,然后评估模型性能,随机抽取样本进行预测,并最终保存模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、数据集以及说明

本次采用kaggle上情感分类数据集UMICH SI650,文件名:train.csv。包含两列,sentence以及label。
sentence为英文字符串。label表示正负情感,取值为0和1。
由于本次数据集为英文,故一个单词即为一个词,若使用中文数据集,请先分词之后再建立字典。
本次代码为jupyter中实现。

1、数据预分析——分词、统计词典大小与最长句子,以及处理成格式化的输入输出

import pandas as pd
df = pd.read_csv('./train.csv',sep=',')
import nltk
df['words'] = df['sentence'].apply(lambda x:nltk.word_tokenize(x.lower()))
df['sentence_len'] = df['words'].apply(lambda x:len(x))


#得出句子的最长词数,结果为42
df['sentence_len'].max()

import collections

word_freqs = collections.Counter()
for i in df.index:
    temp = collections.Counter(df.loc[i,'words'])
    word_freqs += temp


#字典大小,输出为2074
len(word_freqs)

#创建id2word和word2id 双向查询表


#使用2000个词。 本次采用固定长度的句子,不足的补填充词PAD,字典中没有的词设为伪词UNK
MAX_FEATURES = 2000
MAX_SENTENCE_LENGTH = 42


#留伪词和填充词
word2index = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值