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

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 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天】
641 0
Kubernetes自动伸缩方案的终极指南
|
Shell 开发工具 git
从本地到Gitee:一步步学习文件上传及解决常见报错问题
从本地到Gitee:一步步学习文件上传及解决常见报错问题
1085 0
|
安全 程序员 编译器
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
5423 0
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
|
11天前
|
敏捷开发 人工智能 数据可视化
让AI替你写用例!Dify+RAG工作流,一键生成覆盖率达90%的测试方案
本文介绍如何利用Dify.ai与RAG技术构建智能测试用例生成工作流,通过接入需求文档、API接口等知识库,实现高覆盖率(超90%)的自动化用例生成,显著提升测试效率与质量,解放测试人力,助力敏捷开发。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
38_多模态模型:CLIP的视觉-语言对齐_深度解析
想象一下,当你看到一张小狗在草地上奔跑的图片时,你的大脑立刻就能将视觉信息与"小狗"、"草地"、"奔跑"等概念联系起来。这种跨模态的理解能力对于人类来说似乎是理所当然的,但对于人工智能系统而言,实现这种能力却经历了长期的技术挑战。多模态学习的出现,标志着AI从单一模态处理向更接近人类认知方式的综合信息处理迈出了关键一步。
|
机器学习/深度学习 算法
【机器学习系列】- 准确率、召回率、F1值的思考
关于如何评估算法,我们常通过准确率、召回率和F1值进行评估。
2744 0
【机器学习系列】- 准确率、召回率、F1值的思考
|
机器学习/深度学习 数据采集 自然语言处理
PyTorch搭建LSTM神经网络实现文本情感分析实战(附源码和数据集)
PyTorch搭建LSTM神经网络实现文本情感分析实战(附源码和数据集)
1755 2
|
数据采集 存储 JSON
C语言如何执行HTTP GET请求
C语言如何执行HTTP GET请求
|
缓存 自然语言处理 JavaScript
Web服务器的动态内容生成与处理
【8月更文第28天】在Web开发领域,动态内容生成是指根据用户请求实时生成页面内容的过程。这与静态内容生成不同,后者的内容在部署时就已经确定,不会随用户的请求而改变。动态内容生成通常依赖于服务器端脚本语言,例如PHP、Node.js等,它们能够根据不同的请求参数生成特定的响应数据。本文将探讨几种流行的服务器端脚本语言在动态网页生成中的作用及其优化方法,并提供相应的代码示例。
433 0