Project/한국어 대화 분류 및 요약

[Project] 한국어 대화 분류 및 요약 - 데이터 전처리 2

gangee 2024. 6. 9. 19:22

목차

    728x90
    반응형
    • 이전 전처리에서 추가 전처리 진행

    AI Hub 데이터

    • 너무 짧은 문장은 주제 파악 및 요약이 불가능하거나 의미가 없다고 판단하여 10글자 이하의 문장 삭제
    • 박스플롯을 기준으로 Q1 이하, Q3 이상 문장 삭제
      • 데이터 노이즈를 줄여 분석 및 모델링의 정확성을 높임
      • 이상치를 제거하여 극단적인 값이 분석 결과에 미치는 영향을 최소화
    # 1. 길이가 10인 텍스트 데이터 제거
    filtered_texts = [text for text in texts if len(text) > 10]
    lengths = [len(text) for text in filtered_texts]
    
    # 2. Q1 이하 및 Q3 이상의 길이를 가진 문장 제거
    Q1 = np.percentile(lengths, 25)
    Q3 = np.percentile(lengths, 75)
    IQR = Q3 - Q1
    lower_bound = Q1 - 1.5 * IQR
    
    print(f"Q1: {Q1}")
    print(f"Q3: {Q3}")
    print(f"IQR: {IQR}")
    print(f"Lower Bound: {lower_bound}")
    
    filtered_data = {key: value for key, value in data.items() if Q1 < len(value) < Q3}

    삭제 전 박스플롯, 히스토그램 삭제 후 박스플롯, 히스토그램

    지식인 데이터 전처리

    def split_and_save_csv(df, category, save_directory):
    
        # 필요한 열이 존재하는지 확인
        if all(column in df.columns for column in ['카테고리', '키워드', '질문', '답변']):
            # 질문과 답변 분리
            df_q = df[['카테고리', '키워드', '질문']]
            df_r = df[['카테고리', '키워드', '답변']]
    
            # 저장할 파일 경로 생성
            q_file_path = os.path.join(save_directory, f"{category}_Q.csv")
            r_file_path = os.path.join(save_directory, f"{category}_R.csv")
    
            # 분리된 DataFrame 저장
            df_q.to_csv(q_file_path, index=False, encoding='utf-8')
            df_r.to_csv(r_file_path, index=False, encoding='utf-8')
    
            print(f"Saved {q_file_path} and {r_file_path}")
        else:
            print(f"Skipping {category}: Required columns are not present")
    
    def process_all_csv_files(directory):
        data_frames = read_csv_files(directory)
        for df, file in data_frames:
            category = os.path.splitext(file)[0]
            split_and_save_csv(df, category, directory)
    
    directory = '카테고리별'  # 카테고리별 파일들이 저장된 디렉토리
    process_all_csv_files(directory)
    • AI Hub 데이터와 동일한 방식으로 불필요한 문자 제거, 띄어쓰기 교정, 맞춤법 교정 진행
    • 지식인 데이터의 경우 내용이 문어체로 작성되어 있어 별도로 변환 작업 진행

    문어체 변환 작업

    • Hugging face의 kobart-text-style-transfer 모델을 사용하여 변환
    728x90
    반응형