您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页项目实训日志(十)-数据集清洗与整理

项目实训日志(十)-数据集清洗与整理

来源:华佗小知识

在上一步中,我爬取到了考公,教资,银行,企业管理这四个行业的一些面试问题,但是在这些数据中存在一些噪声数据,今天我主要完成数据清洗的工作。

以下以企业管理数据为例,展示数据清洗过程。

1. 读取数据

首先,读取之前爬取的数据集文件:

import pandas as pd

# 读取CSV文件
df = pd.read_csv('business_management_interview_questions.csv')

# 显示前几行数据
print(df.head())

数据清洗

进行数据清洗,包括去除空值、去重、去除噪声数据等操作:

# 去除空值
df.dropna(subset=['Question', 'Answer'], inplace=True)

# 去除重复值
df.drop_duplicates(subset=['Question', 'Answer'], keep='first', inplace=True)

# 去除噪声数据
# 例如,去除过短的问答对
df = df[df['Question'].str.len() > 10]
df = df[df['Answer'].str.len() > 20]

# 显示清洗后的数据
print(df.head())
print(f"数据集有{df.shape[0]}条记录")

数据标准化

统一数据格式,例如去除多余的空格、转换成小写字母等:

# 去除多余的空格
df['Question'] = df['Question'].str.strip()
df['Answer'] = df['Answer'].str.strip()

# 转换成小写字母
df['Question'] = df['Question'].str.lower()
df['Answer'] = df['Answer'].str.lower()

# 显示标准化后的数据
print(df.head())

. 数据多样性

确保数据集的多样性,避免模型过拟合。可以通过检查和筛选数据来保证多样性:

# 检查问题的唯一性
unique_questions = df['Question'].nunique()
total_questions = df.shape[0]
print(f"问题的唯一性:{unique_questions}/{total_questions}")

# 检查答案的多样性
unique_answers = df['Answer'].nunique()
total_answers = df.shape[0]
print(f"答案的多样性:{unique_answers}/{total_answers}")

保存清洗后的数据

将清洗和整理后的数据保存到新的json文件中:

# 保存清洗后的数据
df.to_csv('cleaned_business_management_interview_questions.csv', index=False, encoding='utf-8')

print("数据清洗和整理完毕,并保存到 cleaned_business_management_interview_questions.csv 文件中")

完整的示例代码

以下是完整的代码示例,将上述所有步骤整合在一起:

import pandas as pd
import json

# 读取CSV文件
df = pd.read_csv('business_management_interview_questions.csv')

# 去除空值
df.dropna(subset=['Question', 'Answer'], inplace=True)

# 去除重复值
df.drop_duplicates(subset=['Question', 'Answer'], keep='first', inplace=True)

# 去除噪声数据
df = df[df['Question'].str.len() > 10]
df = df[df['Answer'].str.len() > 20]

# 去除多余的空格
df['Question'] = df['Question'].str.strip()
df['Answer'] = df['Answer'].str.strip()

# 转换成小写字母
df['Question'] = df['Question'].str.lower()
df['Answer'] = df['Answer'].str.lower()

# 构造ChatGLM3-6B格式的数据
data = []
for idx, row in df.iterrows():
    entry = {
        "instruction": row['Question'],
        "input": "",
        "output": row['Answer']
    }
    data.append(entry)

# 保存为JSON文件
with open('chatglm_business_management_interview_questions.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

print("数据已转换为ChatGLM3-6B格式,并保存到 chatglm_business_management_interview_questions.json 文件中")
gpt辅助

经过清洗之后的数据集主要内容中已经没有了网页标签等无关内容,仅保留了主要的文本内容,接下来,我通过gpt帮助我生成了格式符合要求的数据集

 数据集

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务