2. Referenc
e- 조경현 교수님 강의 동영상 :
[site] https://www.edwith.org/deepnlp
- 이활석 연구원 강의 동영상 :
- [site]
https://www.youtube.com/watch?v=o_peo6U7IRM
- 김성훈 교수님 강의 동영상 :
- [site] https://hunkim.github.io/ml/
- 블로그 :
[site] https://ratsgo.github.io
- 스탠포드 대학 (CS224n) :
[site] http://web.stanford.edu/class/cs224n/
- 한국어 자연어 처리(PyCon Korea 2015) :
[site] https://www.lucypark.kr/docs/2015-pyconkr/
- 텍스트마이닝 깃허브자료 :
- 파이썬 자연어 처리의 이론과 실제
- 잘라지 트하나키 지음
- 파이썬과 자연어 처리
- 딥티 초프라, 니쉬트 조쉬 지음
3. - object : sample이라고도 하며, 어떤 분야에서 쓰이는지에 따라 관찰의 대상이 되는
객체, 레코드, 인스턴스를 의미한다.
- attribute : 관찰 대상이 가지는 성질과 특성. 각 객체가 가지는 속성마다
확률변수를 취하여 데이터의 분포를 파악하는데 쓰인다.
속성의 수를 차원이라고 한다.
- data set : 데이터들의 모임.
Dat
aThe collection of data objects and their attributes.
Record Data Matrix
Document 1
season
timeout
lost
wi
n
game
score
ball
pla
y
coach
team
Document 2
Document 3
3 0 5 0 2 6 0 2 0 2
0
0
7 0 2 1 0 0 3 0 0
1 0 0 1 2 2 0 3 0
Document
4. Machine learning
- 기계학습
기계(컴퓨터)가 인간과 같이 데이터를 수집하고 수집된 데이터를 분석함으로써 스스로
규칙을 형성하고 결과 값을 예측할 수 있도록 학습시키기 위한 알고리즘과 기술을
개발하는 분야를 말한다.
- 지도학습 (Supervised Learning)
각각의 속성(x)에 따라 레이블(label)이
명시되어있는 데이터를 컴퓨터에 입력하여 학습하는 것을 말한다.
- 비지도학습 (Unsupervised Learning)
레이블이 명시되어있지 않은 데이터를
컴퓨터가 스스로 데이터에 대해 학습하는 것을 말한다.
5. Machine learning
학습 방법 분석 방법 및 알고리즘
지도 학습
(Supervised
Learning)
의사결정트리(Decision Tree)
나이브 베이즈 분류기(Naive Bayse Classifier)
서포트 벡터 머신(Support Vector Machine)
인공신경망(Neural Network)
회귀분석(Regression)
비지도 학습
(Unsupervised Learning)
k-Means 군집화
계층적 군집화(Hierarchical Clustering)
밀도 기반 군집화(Density-based Clustering)
강화 학습
(Reinforcement Learning)
DQN( Deep Q Learning)
PG(Policy Gradient)
15. RN
NRecurrent neural network
순환 인공 신경망 (RNN)은 인공신경망의 한 종류로, 유닛간의 연결이 순환적 구조를 갖는 특징을 갖고 있다.
일반적인 ANN과 달리, 순환 인공 신경망은 내부의 메모리를 이용해 시퀀스 형태의 입력을 처리할 수 있다.
Basic RNN LSTM
20. - numpy : 배열을 이용하여 수치 계산을 더욱 빠르게 하기 위하여 사용하는 라이브러리
[tutorial site] https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
- pandas : 테이블, 시리즈 등의 자료형을 이용하여 데이터를 쉽게 다루기 위한 라이브러리
[tutorial site] http://pandas.pydata.org/pandas-docs/stable/10min.html
- matplotlib : 데이터의 분포나 추세 등을 그래프를 통하여 확인할 때 사용하는 라이브러리
[tutorial site] https://matplotlib.org/users/pyplot_tutorial.html
- scipy : 과학 계산을 이용하기 위해 사용하는 라이브러리
[tutorial site] https://www.scipy.org
- scikit-learn : 데이터마이닝 및 기계학습 알고리즘이 구현되어 있는 라이브러리
[tutorial site] http://scikit-learn.org/stable/index.html
Python
Library
21. - nltk : 배열을 이용하여 수치 계산을 더욱 빠르게 하기 위하여 사용하는 라이브러리
[tutorial site] https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
- konlpy : 테이블, 시리즈 등의 자료형을 이용하여 데이터를 쉽게 다루기 위한 라이브러리
[tutorial site] http://pandas.pydata.org/pandas-docs/stable/10min.html
Python Library for
NLP
24. IDLE에서 프로그램을 작성하고 실행하기(2)
클릭
<idle창 결과>
4) 다음과 같이 입력하고 [Run]->[Run Module] 혹은 F5
키
3) 원하는 파일 이름을 입력하고 enter 혹은 저장.
25. Python 주석
1) 한 줄 주석은 #을 이용하고 줄 어디에서나 시작 가능
2) 여러 줄 주석 ‘’’ ⋯ ‘’’
따옴표 ‘’’ ⋯ ‘’’ 안의 내용은 여러 줄의 문자열을 의미
스크립트 상에서 여러 줄 주석을 할 경우 사용
<test.py> <idle 결과>
26. Python 기초 산술 연산
연산 실행 결과
덧셈
뺄셈
곱셈
나눗셈
거듭제곱 #지수 연산 23
나머지
몫
덧셈과 곱셈 등의 산술 연산을 다음과 같이 진행 가능하다.
27. Python 주요 내장 자료형
자료형 설명 예
bool True와 False를 나타내는 자료형 True, False
int, float,
complex
정수, 실수, 복소수 등 숫자를 표현하는 자료형 123, 1.43
5+4j
str 유니코드 문자의 모임을 표현하는 자료형 ‘spams’, “ham”, ‘’’egg’’’,
“””hot dog”””
bytes 0 ~ 255 사이 코드의 모임을 표현하는 자료형 b’Python’
list 순서가 있는 파이썬 객체의 집합을 표현하는 자료
형
인덱스(index)로 값을 꺼냄
[‘ham’, ‘spam’]
dict 순서가 없는 파이썬 객체의 집합을 표현하는 자료
형
키(key)로 값을 꺼냄
{‘ham’:4, ‘spam’:5}
tuple 순서가 있는 파이썬 객체의 집합을 표현하는 자료 (‘ham’, ‘spam’)
28. Python 자료구조 - 리스트
리스트 : 순서가 있는 파이썬 객체의 집합을 표현하는 자료형
<리스트 생성 및 인덱싱(1)> <리스트 생성 및 인덱싱(2)>
29. Python 자료구조 - 딕셔너리
딕셔너리는 키(key)와 값(value)를 한 쌍으로 데이터를 저장한다.
- 중괄호{ }로 묶어서 {키1:값1, 키2:값2} 등으로 생성한다.
- 원소에 접근할 때는 키 값을 인덱스로 하여 값을 얻을 수 있다.
<딕셔너리 생성/추가>
30. Python 조건문 : if문
if 조건문1:
실행문1
elif 조건문2:
실행문2
else:
실행문3
※ 주의
∙ 파이썬에서는 { }로 묶지 않고 들여쓰기를 통하여 구분
∙ 들여쓰기 간격은 일정하기만 하면 된다.
∙ 일반적으로 한 단계를 들여 쓸 때마다 공백 4개를 추가
<shell 창 예시>
<스크립트(.py) 예시>
31. Python 반복문 : for문
상황에 따라 반복문을 사용할 수 있다.
- 기본적인 형태는 다음과 같다.
for 매개변수 in 범위:
실행문
주의 : 들여쓰기를 통해 for문 내에 있는지 구
<예시(1)>
<예시(2)>
<예시(3)>
32. Python 함수 : def
함수를 이용하여 코드를 작성할 수 있다.
- 기본적인 형태는 다음과 같다.
def 함수이름 (매개변
수):
실행문
<예시(1)>
<예시(2)>
<예시(3)>
Default값을
지정해줄 수 있다.
33. Python 실습 문제
1) 리스트
iris.csv 파일에서 다섯 줄을 다음과 같이 정리하시오.
iris = [[5.1, 3.5, 1.4, 0.2, “Iris-setosa”],
[4.9,3,1.4,0.2,”Iris-setosa”],
…]
2) 딕셔너리
iris데이터는 Iris Setosa, Iris Versicolur, Iris Virginica 세 개의 종으로 이루어져있다.
딕셔너리 자료구조를 이용하여 각 종류를 값으로 하고 0, 1, 2의 키 값으로 하는 딕셔너리를 만드시오
34. Python 실습 문제
3) Print 문
다음은 print문을 사용하는 3가지 방법이 있다.
sepal length sepal width petal length
5.1 3.5 1.4
세 개의 방법을 이용하여 다음을 출력하시오.
이 꽃은 sepal length는 5.1 (cm)이고 sepal width는 3.5 (cm) 이며 petal length는 1.4
(cm) 이다.
정답 : print("이 꽃은 sepal length는 ",5.1,"(cm)이고 sepal width는 %.1f"%3.5,"(cm) 이며 petal length는
{:.1f}".format(1.4), "(cm) 이다.")
35. Python 실습 문제
4) for문
for문을 이용하여 1부터 10까지 합을 출력하시오
5) for문 + if문
for문을 이용하여 1부터 10까지 짝수를 출력하시오
36. 실습1 numpy
1.넘파이는 외부 라이브러리로, 넘파이 라이브러리를 쓸 수 있도록 가져와야(import)한다.
import numpy as np
2.넘파이 배열 생성하기
x = np.array([1.0, 2.0, 3.0])
print(x)
print(type(x))
*왜 넘파이 배열을 써야 하는가?
[실행결과]
37. 실습1 numpy
3.넘파이의 산술 연산
x = np.array([1., 2., 3.])
y = np.array([2., 4., 6.])
x + y #원소별 덧셈
x – y #원소별 뺄셈
x * y #원소별 곱셈
x / y #원소별 나눗셈
[실행결과]
38. 실습1 numpy
4.브로드캐스트 : 형상이 다른 배열끼리도 계산이 가능하다.
x = np.array([1., 2., 3.])
x/2.0
A = np.array([[1, 2],[3, 4]])
B = np.array([10, 20])
A*B
[실행결과]
[실행결과]