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 =