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

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

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

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帮助我生成了格式符合要求的数据集

 数据集

[
    {
        "instruction": "你如何看待当前企业管理中的挑战?",
        "input": "",
        "output": "当前企业管理中的挑战主要包括技术变革、市场竞争、人才管理和企业文化等方面..."
    },
    {
        "instruction": "你认为一个好的企业管理者应该具备哪些素质?",
        "input": "",
        "output": "一个好的企业管理者应该具备领导力、沟通能力、决策能力、创新思维和团队合作精神..."
    },
    {
        "instruction": "如何处理团队内部的冲突?",
        "input": "",
        "output": "处理团队内部冲突需要先了解冲突的根源,然后通过有效沟通、协商解决方案,并促进团队成员之间的理解和合作..."
    }
]
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值