【DeepLearning 文本分类实战】IMDB Data Preprocessing数据预处理

简介: IMDB数据预处理

 image.gif编辑

一、Introduction

数据集下载地址 Sentiment Analysis (stanford.edu)

image.gif编辑

斯坦佛官方描述IMDB非常详细:用于二分类情感分类的数据集,包含25k训练集和25k测试集。

下载解压数据集后,得到test和train文件夹, 打开train文件夹,neg和pos为已标注情感样本,unsup为未标注情感样本 。我们最终需要使用的就是train和test中neg和pos数据

image.gif编辑

二、Data Processing

将存储在一个个txt中的样本数据合并成一个csv数据集文件

get_data():获取原始数据

shuffle_process():数据打乱

save_process():数据去除标点符号,并保存为datasets.csv

import csv
import os
import re
import numpy as np
import pandas as pd
import torch
from Financial_News_Sentiment_Analysis.tt import tokenizer
def get_data():
    pos1, pos2 = os.listdir('../../dataset/aclImdb/test/pos'), os.listdir('../../dataset/aclImdb/train/pos')
    neg1, neg2 = os.listdir('../../dataset/aclImdb/test/neg'), os.listdir('../../dataset/aclImdb/train/neg')
    pos_all, neg_all = [], []
    for p1, n1 in zip(pos1, neg1):
        with open('../../dataset/aclImdb/test/pos/' + p1, encoding='utf8') as f:
            pos_all.append(f.read())
        with open('../../dataset/aclImdb/test/neg/' + n1, encoding='utf8') as f:
            neg_all.append(f.read())
    for p2, n2 in zip(pos2, neg2):
        with open('../../dataset/aclImdb/train/pos/' + p2, encoding='utf8') as f:
            pos_all.append(f.read())
        with open('../../dataset/aclImdb/train/neg/' + n2, encoding='utf8') as f:
            neg_all.append(f.read())
    datasets = np.array(pos_all + neg_all)
    labels = np.array([1] * 25000 + [0] * 25000)
    return datasets, labels
def shuffle_process():
    sentences, labels = get_data()
    # Shuffle
    shuffle_indexs = np.random.permutation(len(sentences))
    datasets = sentences[shuffle_indexs]
    labels = labels[shuffle_indexs]
    return datasets,labels
def save_process():
    datasets, labels = shuffle_process()
    sentences = []
    punc = '[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\n。!,]'
    for sen in datasets:
        sen = sen.replace('\n', '')
        sen = sen.replace('<br /><br />', ' ')
        sen = re.sub(punc, '', sen)
        sentences.append(sen)
    # Save
    df = pd.DataFrame({'labels': labels, 'sentences': sentences})
    df.to_csv("datasets.csv", index=False)
if __name__ == '__main__':
    model = save_process()

image.gif

处理后的效果

image.gif编辑


目录
相关文章
|
Kubernetes 监控 Cloud Native
Kubernetes自动伸缩方案的终极指南
【4月更文挑战第18天】
701 0
Kubernetes自动伸缩方案的终极指南
|
Shell 开发工具 git
从本地到Gitee:一步步学习文件上传及解决常见报错问题
从本地到Gitee:一步步学习文件上传及解决常见报错问题
1199 0
|
安全 程序员 编译器
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
5548 0
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
|
机器学习/深度学习 算法
【机器学习系列】- 准确率、召回率、F1值的思考
关于如何评估算法,我们常通过准确率、召回率和F1值进行评估。
2954 0
【机器学习系列】- 准确率、召回率、F1值的思考
|
4月前
|
监控 网络协议 Linux
Gobuster目录/文件扫描工具
Gobuster 是用 Go 语言编写的高效命令行扫描工具,支持目录/文件暴力扫描、子域名枚举和虚拟主机发现。其多线程机制使扫描速度快,资源占用低,适合远程或云服务器使用。它具备灵活性,支持自定义字典、代理、HTTP 认证等功能,适用于敏感目录查找、资产管理、渗透测试等场景。此外,Gobuster 可通过安装在 Kali 或 Linux 系统上,快速执行各类扫描任务,是安全测试和自动化脚本的理想选择。
418 0
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(九十八)(2)
Transformers 4.37 中文文档(九十八)
368 0
|
机器学习/深度学习 自然语言处理 PyTorch
pytorch实战---IMDB情感分析
pytorch实战---IMDB情感分析
pytorch实战---IMDB情感分析
|
存储 缓存 前端开发
基于B/S架构的实验室管理系统(云LIS平台源代码)
云LIS系统集成了样本管理、检测项目管理、质控管理、报告管理、数据分析、两癌筛查等多个方面的功能,为实验室提供了一站式的信息化解决方案。系统采用.Net Core新的技术框架、DEV报表、前端js封装、分布式文件存储、分布式缓存等技术,支持LIS独立部署、Docker部署等多种方式,方便用户根据自身需求进行定制和扩展。
715 1
基于B/S架构的实验室管理系统(云LIS平台源代码)
|
JavaScript API
Vue3通信方式之defineProps、defineEmits、useAttrs、插件mitt和v-model
Vue3通信方式之defineProps、defineEmits、useAttrs、插件mitt和v-model
726 0
|
机器学习/深度学习 自然语言处理 算法
【Python自然语言处理】使用逻辑回归(logistic)对电影评论情感分析实战(超详细 附源码)
【Python自然语言处理】使用逻辑回归(logistic)对电影评论情感分析实战(超详细 附源码)
542 0