국립국어원 모두의 말뭉치 json to csv python(맞춤법 교정 말뭉치)

!0!·2023년 10월 11일
0

허접 졸프🥲

목록 보기
3/3

(2022년 11월 임시글을 수정하여 업로드한 글입니다. 기억이 완전하지 못해 원래 담으려 했던 것과 차이가 있을지도..)

"글도비-쉽고 편한 글쓰기 크롬 익스텐션" 프로젝트를 하면서 맞춤법 관련 "wrong-correct" 데이터셋이 필요했고, 국립 국어원에서 제공하는 모두의 말뭉치에서 "맞춤법 교정 말뭉치"를 사용하였다. 사용하고자 하는 말뭉치 우측 상단에 있는 "?"를 클릭하면 자료에 대한 설명과 json 파일의 포맷을 알 수 있다.

복잡한 json을 csv로 변환하기

인터넷에 올라온 'json to csv' 코드는 대부분 아주 간단한 형태의 json 문서이다. 하지만 모두의 말뭉치는 Object와 list가 중첩된 형태로 되어 있었다. 이 작업을 할 때 두 개의 파일에서의 배열이 'utterance'와 'paragraph'로 서로 달라 주석처리를 해놓고 번갈아가며 실행을 시켰었는데, 지금 홈페이지에 들어가보니 둘다 utterance로 되어 있는 것 같다.

csv 파일에서 공백이 행마다 생기는 경우

(변환한 파일에서 공백이 생겼었...나보다... 이래서 기술 블로그는 그때그때 써서 올려야,,)

아무튼! CSV의 줄바꿈 문자가 운영체제 마다 다르기 때문에 (Linux: \n, window: \r\n) Windows는 \n\r\n 으로 치환하므로 결과적으로 \r\r\n 이 되기 때문이다.
때문에 파일을 불러올 때, newline="" 코드를 추가하였다.

사용한 코드

import csv
import json

f_name = "파일명1"
#f_name = "파일명2"
with open(f_name, "r", encoding = 'utf-8') as json_file:
    data = json.load(json_file)
 

#messenger = data['document'][0]['utterance']
messenger = data['document'][0]['paragraph']


# now we will open a file for writing
data_file = open('data999.csv', 'w', encoding = 'utf-8', newline="")
 
# create the csv writer object
csv_writer = csv.writer(data_file)
count = 0
i=0
for i in range(0,len(data['document'])):
    #messenger = data['document'][i]['utterance']
    messenger = data['document'][i]['paragraph']
    for msg in messenger:
        if count == 0:
            # Writing headers of CSV file
            header = msg.keys()
            csv_writer.writerow(header)
            count += 1
 
    # Writing data of CSV file
        csv_writer.writerow(msg.values())
        i+=1

 
data_file.close()

0개의 댓글

관련 채용 정보