基于CNN的文本情感分类数据预处理代码
时间: 2024-03-09 13:45:53 浏览: 66
pytorch文本分类word2vec+TextCNN. 完整代码+数据 可直接运行
5星 · 资源好评率100%
以下是基于Python和Keras实现的基于CNN的文本情感分类数据预处理代码示例:
```python
import numpy as np
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
from sklearn.model_selection import train_test_split
# 加载数据集
data = open('data.txt', 'r', encoding='utf-8').readlines()
# 数据清洗
data = [line.strip().lower() for line in data]
# 分词
tokenizer = Tokenizer()
tokenizer.fit_on_texts(data)
sequences = tokenizer.texts_to_sequences(data)
# 构建词汇表
word_index = tokenizer.word_index
vocab_size = len(word_index) + 1
# 将单词转换成数字
max_len = max([len(seq) for seq in sequences])
data = pad_sequences(sequences, maxlen=max_len, padding='post')
# 标签转换成数字
labels = np.array([int(line.split()[0]) for line in data])
# 数据集划分
train_data, test_data, train_labels, test_labels = train_test_split(data, labels, test_size=0.2)
train_data, val_data, train_labels, val_labels = train_test_split(train_data, train_labels, test_size=0.2)
# 对齐
train_data = pad_sequences(train_data, maxlen=max_len, padding='post')
val_data = pad_sequences(val_data, maxlen=max_len, padding='post')
test_data = pad_sequences(test_data, maxlen=max_len, padding='post')
```
在上述代码中,data.txt是包含原始文本数据的文件,每行包含一个文本和一个标签,用空格隔开。程序首先将数据读入内存,然后进行数据清洗、分词、构建词汇表、将单词转换成数字、数据集划分和对齐等预处理操作,最终得到训练集、验证集和测试集的数字序列。
阅读全文