SlideShare uma empresa Scribd logo
1 de 42
Basic Machine Learning for
NLP
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/
- 텍스트마이닝 깃허브자료 :
- 파이썬 자연어 처리의 이론과 실제
- 잘라지 트하나키 지음
- 파이썬과 자연어 처리
- 딥티 초프라, 니쉬트 조쉬 지음
- 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
Machine learning
- 기계학습
기계(컴퓨터)가 인간과 같이 데이터를 수집하고 수집된 데이터를 분석함으로써 스스로
규칙을 형성하고 결과 값을 예측할 수 있도록 학습시키기 위한 알고리즘과 기술을
개발하는 분야를 말한다.
- 지도학습 (Supervised Learning)
각각의 속성(x)에 따라 레이블(label)이
명시되어있는 데이터를 컴퓨터에 입력하여 학습하는 것을 말한다.
- 비지도학습 (Unsupervised Learning)
레이블이 명시되어있지 않은 데이터를
컴퓨터가 스스로 데이터에 대해 학습하는 것을 말한다.
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)
AN
NArtificial neural network
DN
NDeep neural network
Activation
Function
Activation
Function
Activation
Function
Gradient
Descent
Loss
Function
Gradient
Descent
CN
NConvolutional neural network
합성곱 신경망 (CNN)은 신경망에 기존의 필터기술을 병합하여 신경망이 2차원 영상을 잘 습득할 수 있도록
최적화시킨 알고리즘
합성곱 예 일반적인 CNN구조
RN
NRecurrent neural network
순환 인공 신경망 (RNN)은 인공신경망의 한 종류로, 유닛간의 연결이 순환적 구조를 갖는 특징을 갖고 있다.
일반적인 ANN과 달리, 순환 인공 신경망은 내부의 메모리를 이용해 시퀀스 형태의 입력을 처리할 수 있다.
Basic RNN LSTM
Natural Language
Processing
Natural Language
Processing
- Phonology : 음운론 -> 음성인식 관련
- Morphology : 형태론 -> 형태소 분석
- Syntax : 통사론 -> 파싱(문장의 문법적 구조 분석)
- Senmantics : 의미론
Natural Language Processing –
Example
형태소 분석 및 태
깅
- 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
- 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
Basic Python
IDLE에서 프로그램을 작성하고 실행하기(1)
1) IDLE를 실행하고 메뉴에서 [File] -> [New File] 2) 메뉴의 [File] -> [Save]를 선택.
IDLE에서 프로그램을 작성하고 실행하기(2)
클릭
<idle창 결과>
4) 다음과 같이 입력하고 [Run]->[Run Module] 혹은 F5
키
3) 원하는 파일 이름을 입력하고 enter 혹은 저장.
Python 주석
1) 한 줄 주석은 #을 이용하고 줄 어디에서나 시작 가능
2) 여러 줄 주석 ‘’’ ⋯ ‘’’
따옴표 ‘’’ ⋯ ‘’’ 안의 내용은 여러 줄의 문자열을 의미
스크립트 상에서 여러 줄 주석을 할 경우 사용
<test.py> <idle 결과>
Python 기초 산술 연산
연산 실행 결과
덧셈
뺄셈
곱셈
나눗셈
거듭제곱 #지수 연산 23
나머지
몫
덧셈과 곱셈 등의 산술 연산을 다음과 같이 진행 가능하다.
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’)
Python 자료구조 - 리스트
리스트 : 순서가 있는 파이썬 객체의 집합을 표현하는 자료형
<리스트 생성 및 인덱싱(1)> <리스트 생성 및 인덱싱(2)>
Python 자료구조 - 딕셔너리
딕셔너리는 키(key)와 값(value)를 한 쌍으로 데이터를 저장한다.
- 중괄호{ }로 묶어서 {키1:값1, 키2:값2} 등으로 생성한다.
- 원소에 접근할 때는 키 값을 인덱스로 하여 값을 얻을 수 있다.
<딕셔너리 생성/추가>
Python 조건문 : if문
if 조건문1:
실행문1
elif 조건문2:
실행문2
else:
실행문3
※ 주의
∙ 파이썬에서는 { }로 묶지 않고 들여쓰기를 통하여 구분
∙ 들여쓰기 간격은 일정하기만 하면 된다.
∙ 일반적으로 한 단계를 들여 쓸 때마다 공백 4개를 추가
<shell 창 예시>
<스크립트(.py) 예시>
Python 반복문 : for문
상황에 따라 반복문을 사용할 수 있다.
- 기본적인 형태는 다음과 같다.
for 매개변수 in 범위:
실행문
주의 : 들여쓰기를 통해 for문 내에 있는지 구
<예시(1)>
<예시(2)>
<예시(3)>
Python 함수 : def
함수를 이용하여 코드를 작성할 수 있다.
- 기본적인 형태는 다음과 같다.
def 함수이름 (매개변
수):
실행문
<예시(1)>
<예시(2)>
<예시(3)>
Default값을
지정해줄 수 있다.
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의 키 값으로 하는 딕셔너리를 만드시오
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) 이다.")
Python 실습 문제
4) for문
for문을 이용하여 1부터 10까지 합을 출력하시오
5) for문 + if문
for문을 이용하여 1부터 10까지 짝수를 출력하시오
실습1 numpy
1.넘파이는 외부 라이브러리로, 넘파이 라이브러리를 쓸 수 있도록 가져와야(import)한다.
import numpy as np
2.넘파이 배열 생성하기
x = np.array([1.0, 2.0, 3.0])
print(x)
print(type(x))
*왜 넘파이 배열을 써야 하는가?
[실행결과]
실습1 numpy
3.넘파이의 산술 연산
x = np.array([1., 2., 3.])
y = np.array([2., 4., 6.])
x + y #원소별 덧셈
x – y #원소별 뺄셈
x * y #원소별 곱셈
x / y #원소별 나눗셈
[실행결과]
실습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
[실행결과]
[실행결과]
실습1 numpy
5.넘파이의 N차원 배열
A = np.array([[1,2,3],[3,4,5]])
print(A)
A.shape
np.shape(A)
np.size(A)
실습1 numpy
6.원소 접근
A = np.array([[1,2,3],[3,4,5]])
print(A[0])
print(A[0][0])
print(A[:,0])
print(A[:,-1])
실습2 matplotlib
 matplotlib은 그래프를 그려주는 라이브러리이다. 그래프를 그리려면 matplotlib의
pyplot 모듈을 이용한다.
실습2 matplotlib 예)

Mais conteúdo relacionado

Mais procurados

문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017Insuk (Chris) Cho
 
2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 SKKU
 
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성Hye-rim Jang
 
20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기Kim Sungdong
 
자료구조 Project5
자료구조 Project5자료구조 Project5
자료구조 Project5KoChungWook
 
모두의 JIT 컴파일러
모두의 JIT 컴파일러모두의 JIT 컴파일러
모두의 JIT 컴파일러우경 성
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차Taekyung Han
 

Mais procurados (20)

문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017Python vs Java @ PyCon Korea 2017
Python vs Java @ PyCon Korea 2017
 
서울 R&D 캠퍼스 자연어 수업자료
서울 R&D 캠퍼스 자연어 수업자료서울 R&D 캠퍼스 자연어 수업자료
서울 R&D 캠퍼스 자연어 수업자료
 
자연어5 | 1차강의
자연어5 | 1차강의자연어5 | 1차강의
자연어5 | 1차강의
 
자연어1 | 1차강의
자연어1 | 1차강의자연어1 | 1차강의
자연어1 | 1차강의
 
자연어4 | 1차강의
자연어4 | 1차강의자연어4 | 1차강의
자연어4 | 1차강의
 
2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디 2015-2 MODA 두 번째 스터디
2015-2 MODA 두 번째 스터디
 
02_1_변수와친해지기
02_1_변수와친해지기02_1_변수와친해지기
02_1_변수와친해지기
 
Study1
Study1Study1
Study1
 
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
 
04 3 함수와반환문
04 3 함수와반환문04 3 함수와반환문
04 3 함수와반환문
 
20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기
 
자료구조 Project5
자료구조 Project5자료구조 Project5
자료구조 Project5
 
파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초
 
Python - Module
Python - ModulePython - Module
Python - Module
 
파이썬을 활용한 자연어 분석 - 추가분
파이썬을 활용한 자연어 분석 - 추가분파이썬을 활용한 자연어 분석 - 추가분
파이썬을 활용한 자연어 분석 - 추가분
 
파이썬을 활용한 자연어 분석 - 2차
파이썬을 활용한 자연어 분석 - 2차파이썬을 활용한 자연어 분석 - 2차
파이썬을 활용한 자연어 분석 - 2차
 
모두의 JIT 컴파일러
모두의 JIT 컴파일러모두의 JIT 컴파일러
모두의 JIT 컴파일러
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
 
자연어3 | 1차강의
자연어3 | 1차강의자연어3 | 1차강의
자연어3 | 1차강의
 

Semelhante a Nlp study1

[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pubJaewook. Kang
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Taekyung Han
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Polyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apiPolyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apifermat39
 
니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트효준 강
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7KoChungWook
 
Python machine learning_chap04_2
Python machine learning_chap04_2 Python machine learning_chap04_2
Python machine learning_chap04_2 PartPrime
 
Python machine learning Chapter 04 - PART2
Python machine learning Chapter 04 - PART2Python machine learning Chapter 04 - PART2
Python machine learning Chapter 04 - PART2Young Oh Jeong
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)Tae Young Lee
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XpressEngine
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
Lecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowLecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowSang Jun Lee
 

Semelhante a Nlp study1 (20)

파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
20160126_python
20160126_python20160126_python
20160126_python
 
[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Polyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_apiPolyp detection with_tensorflow_object_detection_api
Polyp detection with_tensorflow_object_detection_api
 
파이썬 소개
파이썬 소개 파이썬 소개
파이썬 소개
 
니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트니름: 쉬운 SOA 단위 테스트
니름: 쉬운 SOA 단위 테스트
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7
 
Python machine learning_chap04_2
Python machine learning_chap04_2 Python machine learning_chap04_2
Python machine learning_chap04_2
 
Python machine learning Chapter 04 - PART2
Python machine learning Chapter 04 - PART2Python machine learning Chapter 04 - PART2
Python machine learning Chapter 04 - PART2
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
 
Light Tutorial Python
Light Tutorial PythonLight Tutorial Python
Light Tutorial Python
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
07 2 for in list
07 2 for in list07 2 for in list
07 2 for in list
 
Lecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlowLecture 1: Introduction to Python and TensorFlow
Lecture 1: Introduction to Python and TensorFlow
 

Mais de Lee Gyeong Hoon

Mais de Lee Gyeong Hoon (8)

Vae
VaeVae
Vae
 
Mylab
MylabMylab
Mylab
 
Gan
GanGan
Gan
 
Svmtf
SvmtfSvmtf
Svmtf
 
The fastalgorithmfordeepbeliefnets
The fastalgorithmfordeepbeliefnetsThe fastalgorithmfordeepbeliefnets
The fastalgorithmfordeepbeliefnets
 
Convolutional rnn
Convolutional rnnConvolutional rnn
Convolutional rnn
 
세미나 20170929
세미나 20170929세미나 20170929
세미나 20170929
 
Where to Apply Dropout in Recurrent Neural Networks for Handwriting Recognition?
Where to Apply Dropout in Recurrent Neural Networks for Handwriting Recognition?Where to Apply Dropout in Recurrent Neural Networks for Handwriting Recognition?
Where to Apply Dropout in Recurrent Neural Networks for Handwriting Recognition?
 

Nlp study1

  • 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)
  • 14. CN NConvolutional neural network 합성곱 신경망 (CNN)은 신경망에 기존의 필터기술을 병합하여 신경망이 2차원 영상을 잘 습득할 수 있도록 최적화시킨 알고리즘 합성곱 예 일반적인 CNN구조
  • 15. RN NRecurrent neural network 순환 인공 신경망 (RNN)은 인공신경망의 한 종류로, 유닛간의 연결이 순환적 구조를 갖는 특징을 갖고 있다. 일반적인 ANN과 달리, 순환 인공 신경망은 내부의 메모리를 이용해 시퀀스 형태의 입력을 처리할 수 있다. Basic RNN LSTM
  • 17. Natural Language Processing - Phonology : 음운론 -> 음성인식 관련 - Morphology : 형태론 -> 형태소 분석 - Syntax : 통사론 -> 파싱(문장의 문법적 구조 분석) - Senmantics : 의미론
  • 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
  • 23. IDLE에서 프로그램을 작성하고 실행하기(1) 1) IDLE를 실행하고 메뉴에서 [File] -> [New File] 2) 메뉴의 [File] -> [Save]를 선택.
  • 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 [실행결과] [실행결과]
  • 39. 실습1 numpy 5.넘파이의 N차원 배열 A = np.array([[1,2,3],[3,4,5]]) print(A) A.shape np.shape(A) np.size(A)
  • 40. 실습1 numpy 6.원소 접근 A = np.array([[1,2,3],[3,4,5]]) print(A[0]) print(A[0][0]) print(A[:,0]) print(A[:,-1])
  • 41. 실습2 matplotlib  matplotlib은 그래프를 그려주는 라이브러리이다. 그래프를 그리려면 matplotlib의 pyplot 모듈을 이용한다.