공부하기 전에..
하루하루 강의 컨텐츠를 접하기 때문에 가끔 Fundamental을 수행할 때 내가 어느 지점에 와있는지 궁금해질때가 있다. 이건 왜 배우지?라는 생각을 먼저 하는 편인데 이번 노드에서도 여러 부분들 중에 왜 텍스트를 다루는 법에 대해 배울까? 라고 궁금한 분이 있을거 같다. 아닌가..?! 텍스트 데이터를 다루는 법을 지금 초반에 배우는 이유는 AI든 데이터분석이든 데이터 전처리 단계에서나 분석 과정에서 텍스트와 파일 다루기는 필수적이기 때문이다.
예를 들어 컴퓨터로 이미지 파일을 여러개 읽어올 때도 'a.jpg', 'b.jpg' 라는 파일을 한번에 불러와야하는 상황이 있다. 이때 당연히 윈도우에서 파일탐색기처럼 한번에 불러오면 정말 좋겠지만 코드를 짤 때는 그런 GUI는 없다..! 그럼 어떻게 해야할까, 공통적인 패턴을 찾고 그걸 이용해서 원하는 이미지 파일을 가져올 수 있다. '.jpg'로 끝나는 패턴을 이용해서 코드 상에 파일 제목에 해당하는 문자열을 읽어온 후 '.jpg'를 가진 파일명을 읽어오는 것이다. 윈도우에서는 *.jpg를 코드로 짜야하니까 이 파트가 앞쪽에서 등장한거 같다!
1. 텍스트 데이터를 문자열로 저장
인코딩과 디코딩
인코딩은 암호화, 디코딩은 복호화이다. 인코딩과 디코딩은 사람과 컴퓨터가 소통할 수 있게 하는 구글 번역기라고 생각하면 좋다. 왜 그냥 '가'라고 하면 가면되는데 컴퓨터는 그게 안될까? 컴퓨터는 0, 1로 모든 걸 해석하기 때문에 '가는 U+AC00' 이렇게 매칭을 해줘야 이해한다. 따라서 문자열로 바꾼 텍스트와 코드에서 인코딩은 문자열을 바이트(컴퓨터의 기본 저장단위)로 바꾸는 것을 말한다. 일상 생활에서 자주 접하는 Unicode가 있다. 아마 한글이나 메모장에서 파일을 저장할 때 UTF-8 형식으로 저장 또는 (UTF-8)을 보았다면 생활 속 인코딩을 접한 것이다! 이외에도 ASCII CODE가 대표적인 인코딩 예시로 볼 수 있다.
유니코드
2. 참고 블로그: jeongdowon.medium.com/unicode%EC%99%80-utf-8-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-b6aa3f7edf96
유니코드의 개념은 추후 정리!
파이썬 내장함수에는 유니코드를 문자열로 혹은 문자열을 숫자로 반환하는 chr, ord가 있다.
print(ord('가'))
print(chr(0xAC00))
print('Please don\'t touch it') #이스케이프 문자 사용
print(r'Please don\'t touch it') #원시문자열(raw string, r) 사용
Please don't touch it을 출력하기 위한 이스케이프 문자와 원시문자열 사용의 예이다.
정규표현식 (난이도: ★★★)