아이디어 및 데이터 정제

강태원·2023년 12월 2일
1
post-thumbnail

아이디어

이번 캡스톤 디자인에서 AI를 활용해보자는 팀원의 의견이 있었다.
1. 부산 소재 대학교의 캡스톤 디자인 프로젝트
2. 경진대회에서 실제로 사람들이 사용해 볼 수 있는 프로젝트

위 내용을 전제로 회의를 진행했었고, 경상도 사투리 번역기 웹사이트를 만들어보기로 했다.

(사투리 -> 표준어 -> 외국어)

그 중 AI 모델 개발을 내가 맡기로 했다. -> 백엔드와 AI 모델을 모두 맡게 되었다.

데이터셋

AI HUB에서 한국어 방언 발화(경상도) 데이터를 사용했다

음성데이터와 라벨 데이터가 존재하는데 라벨 데이터 JSON 파일을 정제하여 사용하기로 했다

ex) 라벨 데이터 JSON

  1. 문장에 사투리가 없는 경우
  2. 문장에 사투리가 있는 경우

데이터 정제 - 1

JSON에서 standard_form과 dialect_form이 다르면 사투리가 사용된 문장이라고 판단!

Pandas 라이브러리가 설치 되어 있지 않거나, Anaconda를 사용중이지 않다면 라이브러리를 설치해주자

pip install pandas
import json
import pandas as pd
import glob
from collections import defaultdict

dir = "json파일들이 위치한 폴더"

files = glob.glob(f"{dir}/*.json")
df = pd.DataFrame(index=range(2), columns=["사투리","표준어"])

for file in files:
    _dict = defaultdict(list)
    with open(file) as f:
        json_data = json.load(f)
        # JSON 파일의 utterance 키 값 아래에 리스트형태로 데이터가 존재했다.
        data = json_data.get("utterance")
        for item in data:
            # standard_form(표준어)와 dialect_form(사투리)가 일치하지 않는다면?
            standard = item.get("standard_form")
            dialect = item.get("dialect_form")
            if standard != dialect:
                _dict["표준어"].append(standard)
                _dict["사투리"].append(dialect)
    
    # 한 JSON 파일에서 데이터 추출이 끝나면 비어있던 데이터프레임에 추가
    append_df = pd.DataFrame(_dict)
    df = df.append(append_df)

df.to_csv("data.tsv",sep="\t")

AI HUB에서 받아온 라벨 데이터를 사투리, 표준어의 컬럼 이름을 가지는 데이터셋으로 변환하였다.

다음 포스트에는 단순히 모아놓은 이 데이터셋을 조금 더 품질 좋게 바꿔보도록 하겠다.

profile
가치를 창출하는 개발자! 가 목표입니다

0개의 댓글