情感分析数据预处理过程
时间:2022-07-23
本文章向大家介绍情感分析数据预处理过程,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
# 训练数据预处理
import numpy as np
from sklearn.utils import shuffle
import os
import matplotlib.pyplot as plt
# 评论语料目录
hotel_feedbacks_dir = "./hotel_feedbacks_sentiment"
# all_positive和all_negative含有所有的正样本和负样本
with open(hotel_feedbacks_dir + "/" + "neg.txt", "r", encoding="utf-8") as f:
all_negative = [line.strip() for line in f.readlines()]
with open(hotel_feedbacks_dir + "/" + "pos.txt", "r", encoding="utf-8") as f:
all_positive = [line.strip() for line in f.readlines()]
print(all_positive[2])
不错,下次还考虑入住。交通也方便,在餐厅吃的也不错。
# 获取所有文本的长度
all_length = [len(i) for i in all_negative] + [len(i) for i in all_positive]
# 可视化语料序列长度, 可见大部分文本的长度都在300以下
plt.hist(all_length, bins=30)
plt.show()
np.mean(np.array(all_length) < 300)
0.9346
# 把所有的语料放到list里, 每一条语料是一个dict: {"text":文本, "label":分类}
all_data = []
for text in all_positive:
all_data.append({"text": text, "label": 1})
for text in all_negative:
all_data.append({"text": text, "label": 0})
# shuffle打乱顺序
all_data = shuffle(all_data, random_state=1)
# 拿出5%的数据用来测试
test_proportion = 0.05
test_idx = int(len(all_data) * test_proportion)
# 分割训练集和测试集
test_data = all_data[:test_idx]
train_data = all_data[test_idx:]
# 输出训练集和测试集为txt文件, 每一行为一个dict: {"text":文本, "label":分类}
with open("train_sentiment.txt", "a", encoding="utf-8") as f:
for line in train_data:
f.write(str(line))
f.write("n")
with open("test_sentiment.txt", "a", encoding="utf-8") as f:
for line in test_data:
f.write(str(line))
f.write("n")
部分数据:
- 从零教你在Linux环境下(ubuntu)如何编译hadoop2.4
- 【Golang语言社区】前端编程-利用CSS3实现雷达扫描效果图特效
- 【Golang语言社区】h5 实现图片拖拽
- go语言结构体定义使用
- Go语言单元测试
- go语言中json转成map结构
- 让你快速认识flume及安装和使用flume1.5传输数据(日志)到hadoop2.2
- 几种服务器端IO模型的简单介绍及实现(上)
- tensorflow版的bvlc模型
- 几种服务器端IO模型的简单介绍及实现(下)
- caffe中关于数据进行预处理的方式
- 高性能IO模型浅析
- 关于梯度下降算法的的一些总结
- Hadoop集群搭建总结及Hadoop2.5集群伪分布、完全分布搭建总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- QT 中普通数值与字符串之间的转换
- C# 时间与时间戳互转 13位
- 在C#中ref和out具体怎么使用?在什么情况下使用?
- Vs code 创建vue模版
- [892]python中re.split()方法
- MacOS抓包工具Charles
- PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)
- C# TCP/IP 文件(图片、视频等)收发系统
- 反制面试官 | 14张原理图 | 再也不怕被问 volatile!
- Javascript之其实我觉得原型链没有难的那么夸张!
- 归纳一下:C#线程同步的几种方法
- C# 主界面的扁平化
- C# LINQ
- Oracle基本参数(DB_NAME)
- Oracle基本参数(DB_RECOVERY_FILE_DEST,DB_RECOVERY_FILE_DEST_SIZE)