boostcamp-5th-NLP05 / level1_semantictextsimilarity-nlp-05

0 stars 0 forks source link

데이터 증강 코드 (2023/04/18) #1

Open yunjinchoidev opened 1 year ago

yunjinchoidev commented 1 year ago
import csv
import numpy as np
from koeda import EDA

# 한국어 형태소 분석기와 EDA 파라미터 설정
eda = EDA(morpheme_analyzer="Okt", alpha_sr=0.3, alpha_ri=0.3, alpha_rs=0.3, prob_rd=0.3)

# 입력 파일 (train.csv)과 출력 파일 (augmented_train.csv) 경로
input_file = "../data/train.csv"
output_file = "augmented_train.csv"

# train.csv 파일 읽기
with open(input_file, "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    header = next(reader)  # 첫 번째 줄(헤더) 읽기

    # 증강된 데이터를 저장할 리스트 생성
    augmented_data = []

    i = 0
    # 각 행에 대해 EDA 수행
    for row in reader:
        i += 1
        text1 = row[2]  # sentence_1

        eda = EDA(
                morpheme_analyzer="Okt", alpha_sr=0.3, alpha_ri=0.3, alpha_rs=0.3, prob_rd=0.3
                )

        result1 = eda(text1)

        # numpy 배열을 문자열로 변환
        if isinstance(result1, np.ndarray):
            result1 = result1.tolist()

        first = row[0]
        # 문자열을 리스트로 감싸서 결합
        new_row = [first] + row[1:2] + [str(result1)] + row[3:]
        augmented_data.append(new_row)

# 증강된 데이터를 새로운 파일에 저장
with open(output_file, "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(header)  # 헤더 작성

    # 증강된 데이터 작성
    for row in augmented_data:
        writer.writerow(row)

print(f"Data augmentation complete. Saved to {output_file}")