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}")