数据集
Movie Review Data链接,包含正面和负面评论的影评数据集,数据集分为两个文件:pos和neg,每个文件包含了5331条影视评论。分类类别为正面、负面(二分类)。
预处理
数据集中包含了常见的标点符号,在处理过程中,并没有对标签符号进行去除。以word为单位,按空格来对数据集进行分词。求取句子最大长度,同时构建word2id,并用0将所有句子pad为最大长度。
pos_samples = open(self.path + "/rt-polarity.pos", errors="ignore").readlines()
neg_samples = open(self.path + "/rt-polarity.neg", errors="ignore").readlines()
datasets = pos_samples + neg_samples # 数据集
labels = [1] * len(pos_samples) + [0] * len(neg_samples) # 对应标签
# 对数据集进行处理
# data_s = [nltk.word_tokenize(data) for data in data_s] #进行分词 英文可选 中文一般需要
datas = [sample.split() for sample in datasets] # 英文文本进行分词 一般用空格进行划分
self.max_sample_length = max([len(sample) for sample in datas]) # 求取句子最大长度
# 生成word2id
word2id = {
"<pad>": 0} # 构建词id,建立第一个字符pad
for i, sample in enumerate(datas):
for j, word in enumerate(sample):
if word2id.get(word) is None:
word2id[word] = len(word2id)
datas[i][j] = word2id[word]#将数据集中的word变为id形式
datas[