首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >情感分析数据预处理过程

情感分析数据预处理过程

作者头像
西西嘛呦
发布2020-08-26 14:14:28
发布2020-08-26 14:14:28
51400
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
# 训练数据预处理
import numpy as np
from sklearn.utils import shuffle
import os
import matplotlib.pyplot as plt
代码语言:javascript
代码运行次数:0
运行
复制
# 评论语料目录
hotel_feedbacks_dir = "./hotel_feedbacks_sentiment"
代码语言:javascript
代码运行次数:0
运行
复制
# 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()]
代码语言:javascript
代码运行次数:0
运行
复制
print(all_positive[2])
代码语言:javascript
代码运行次数:0
运行
复制
不错,下次还考虑入住。交通也方便,在餐厅吃的也不错。
代码语言:javascript
代码运行次数:0
运行
复制
# 获取所有文本的长度
all_length = [len(i) for i in all_negative] + [len(i) for i in all_positive]
代码语言:javascript
代码运行次数:0
运行
复制
# 可视化语料序列长度, 可见大部分文本的长度都在300以下
plt.hist(all_length, bins=30)
plt.show()
代码语言:javascript
代码运行次数:0
运行
复制
np.mean(np.array(all_length) < 300)
代码语言:javascript
代码运行次数:0
运行
复制
0.9346
代码语言:javascript
代码运行次数:0
运行
复制
# 把所有的语料放到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})
代码语言:javascript
代码运行次数:0
运行
复制
# shuffle打乱顺序
all_data = shuffle(all_data, random_state=1)
代码语言:javascript
代码运行次数:0
运行
复制
# 拿出5%的数据用来测试
test_proportion = 0.05
test_idx = int(len(all_data) * test_proportion)
代码语言:javascript
代码运行次数:0
运行
复制
# 分割训练集和测试集
test_data = all_data[:test_idx]
train_data = all_data[test_idx:]
代码语言:javascript
代码运行次数:0
运行
复制
# 输出训练集和测试集为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")  

部分数据:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档