AI 자연어처리 교육과정
1. Environment

- 리눅스 환경에서 작업하자 (서버 호환이 쉬움, 라이브러리 설치 용이)

- 윈도우와 리눅스를 함께 쓰는 법
- 윈도우 운영체제에서 WSL을 설치한 후 그 위에서 Visual Studio Code(IDE)를 실행하고, 패키지 관리에 ananconda 이용
2. Variable & Operator
- in-place 연산과 out-place 연산의 차이
a += 1
a = a + 1
in-place: 기존 객체를 수정 시도, 불가능할 시(불변타입일 경우) 새로운 객체 생성(out)
out-place: 명시적으로 새로운 객체 생성
a = 10
b = a
a += 1
a가 새로운 주소를 가리키게 됨(b에 변화 X)
a = [1, 2, 3]
b = a
a += [4]
a가 변화하고, 결국 b도 변화
a = [1, 2, 3]
b = a
a = a + [4]
a가 새로운 주소를 가리키게 됨(b에 변화 x)
3. Data structure
- *(asterisk)의 사용: unpacking
t = [1,2,3,4,5]
a, b, c, _, _ = t
a, *b, c = t
(1, [2,3,4], 5)
- Dictionary 자료형 특징
- Dict는 Hash로 구현: indexing 속도가 O(1), 처음부터 자료가 index(key)와 함께 저장되는 형태이기 때문에 모든 내용을 조회하지 않는다.
- Dict의 value에는 list, str 등 아무 객체나 할당 가능하다.
- Dict의 key만 모여있는 형태 -> 집합형(Set)
- set 자료형 특징
- index 존재하지 않음(순서 없다)
- set처럼 순서없는 불변 타입 형성 -> frozenset({1,2,3})
- 수학적 집합 연산자가 존재
- s1 & s2 (교집합)
- s1 | s2 (합집합)
- s1 - s2 (차집합)
- s1 ^ s2 (배타적합집합 = 합집합 - 교집합)