Ex5-colab에서 한글폰트 깨짐 현상 해결

안 형준·2021년 8월 2일
0

Aiffel/Archives

목록 보기
4/12

colab에서 진행하다보면 한글로 된 사람의 이름으로 딕셔너리에 접근하거나, 시각화에 한글을 사용하고 싶을 때가 있는데요.
그 두 과정에서 에러를 고치는 방법을 공유드립니다.

1. matplotlib 사용 중 한글 폰트가 빈 네모로 나오는 현상

나눔 고딕 폰트 설치 후, 커널 재시작하면 폰트를 사용할 수 있게 됩니다.

!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

위의 코드를 colab에서 실행하면, 다음과 같은 결과가 나옵니다. 이후 커널 다시 시작을 꼭 해주셔야 합니다.

다시 시작 후 다음 셀에 plt.rc('font', family='NanumBarunGothic') 를 실행하면 문제가 해결됩니다.

2. 한글로 된 key가 있는 딕셔너리에서 KeyError가 발생

딕셔너리의 key를 출력해보면 한글로 되어 있음에도 불구하고,
some_dict['한글 키']에 접근하려고 하면 KeyError를 받게 되는 일이 발생하는 원인은 한글 파일을 다루는 방식이 NFC와 NFD로 두 가지가 있는데 이와 관련된 문제라고 합니다.

디렉토리에 있는 모든 파일을 가져오는 경우를 예시로 설명 드리겠습니다.
os.listdir()을 사용하여 파일을 가져오게 되면 해당 문제가 발생하므로, 가져온 파일을 NFC 방식으로 변환해 주어야 합니다. 따라서 아래와 같은 함수를 정의하여 사용합니다.

colab에서 from unicodedata import normalize로 normalize를 가져 온 후,

def list_files(dir_path):
    nfd_file_list = os.listdir(dir_path)

    file_list = []
    for nfd_file in nfd_file_list:
        file = normalize("NFC", nfd_file)
        file_list.append(file)
    return file_list

새로 정의한 list_files() 로 파일을 불러오게 되면, 문제가 해결됩니다.

profile
물리학과 졸업/ 인공지능 개발자로의 한 걸음

0개의 댓글