16. 토큰 (Token)
1. 토큰(token) : 의미를 갖는 문자열 (단어, 절, 문장 등)
2. 토크나이징(tokenizing) : 토큰을 나누는 작업
3. 영문은 공백 만으로도 충분히 토큰을 나눌 수 있다
4. 한글은 합성어, 조사합성 등의 별도 처리를 요한다
5. 작업기준을 어떻게 설정 할 것인가?
32. Stemming / Tagging 의 구조적 한계
1. 독립된 개별 Token의 태그 값을 추출
2. 평문, 일반문의 경우 규격화된 결과를 출력
3. 강조문/ 도치문/ 압축문 등 특수한 문장구조 는 부적합
4. Token / Stemming / Tagging 기준이 별도로 존재
35. Konlpy
1. KKMA : 서울대 이상구 교수 연구실
2. Hannanum : 카이스트 최기선 교수 연구실
3. Twitter : OpenKoreanText 오픈 소스 한국어 처리기
4. Eunjeon : 은전한닢 프로젝트 (윈도우 미지원) [링크]
5. KOMORAN : Junsoo Shin님의 코모란 v3.3.3
6. 빠른 분석이 중요할 때 : 트위터
7. 정확한 품사 정보가 필요할 때 : 꼬꼬마
8. 정확성, 시간 모두 중요할 때 : 코모란
50. 1. 문서의 내용을 쉽게 벡터로 표현하는 고전적 방식
2. Term Frequency : 해당 문서내 Token 발생빈도
>> (특정 Token 출현 수) / (문서 전체 Token 갯수)
3. Inverse Document Frequency : 전체문서 빈도 역
>> log (전체 문서 Token 수 / 특정 Token 수)
상대빈도분석 - Term Frequency
Inverse Document Frequency
52. 1. Token 의 중요도를 실수로 계산 (값이 클수록 중요)
2. TF는 해당 문서만 있으면 바로 연산이 가능하지만
3. IDF는 모집단의 Token 별 통계 데이터가 필요
상대빈도분석 - Term Frequency
Inverse Document Frequency
출처 : https://www.bloter.net/archives/264262
53.
54. Jupyter Notebook 실습
>> 02-4.Tf-idf_sklearn.ipynb
1. scikit-learn 모듈을 활용
2. konlpy, nltk 와 같이
scikit-learn의 자료를 활용
62. 딥러닝이란 (Deep Learning)
1. 머신러닝 : X, Y 에 적합한 수식을 찾는다
2. 신경망 : 머신러닝 / 통계를 바탕으로 일반화 Cell을
정의하고 이들을 연결하여 다양한 수식의 조합을
찾을 수 있도록 Net Work를 구성한다
3. 딥러닝 : X, Y 에 적합한 수식들의 조합을 찾는다
95. Jupyter Notebook 실습
>> Project2-w2v.ipynb
1. 살인의 추억 시나리오 분석
2. 캐릭터별, 단어별 NetWork
3. 독해론 알기 어려운 분석이 가능
96. pip install --upgrade gensim
1. Why is Gensim Word2Vec so much faster than Keras GPU? [link]
2. 데이터와 모델 을 저장하고, 호출하는 방식을 잘 익히자
3. 주요한 기능을 메소드 함수로 제공
https://radimrehurek.com/gensim/install.html
97. from gensim.models import Word2Vec
Word2Vec( data, size=30, window = 2, min_count=10, hs=1,
workers=4, iter=100, sg=1)
1. size = 30 : 30차원 벡터를 사용 (크면 차원의 저주)
2. window = 2 : 주변 단어(window)는 앞 뒤 두개
3. min_count = 20 : 출현 빈도가 20번 미만인 단어는 제외
4. hs = 1 : Huffman Tree를 이용한 Hierarchical Softmax
5. sg = 1 : CBOW, Skip-Gram 중 Skip-Gram를 사용
https://shuuki4.wordpress.com/2016/01/27/word2vec-관련-이론-정리/
98. TSNE - t-distributed Stochastic Neighbor Embedding
유클리디안 측정방법을 활용하여
데이터 포인트의 유사성을
조건부 확률 변환기법 으로
차원을 축소한다.
단점으로는 생성시 마다
모양이 다름
99. (5 Model 해석)
1. Word2Vec도 연산의 결과일 뿐이다
2. 사람의 논리적 근거/ 선별의 추가작업이 필요
3. 모델의 유사/ 반대의 모든 Token이 유의미 하지 않다
4. 핵심적인 Token 간의 유의미한 관계를 분석하는 용도
103. (1 Data) Data 임베딩 - 원시 데이터(raw data)를 숫자 목록 변환
1. Tf-idf : 벡터화에 바탕을 둔 용어빈도/ 역 문서 빈도 를 활용
2. Word2Vec : Mikolov가 고안한 방법으로 "주변 단어를 보면
그 단어를 알 수 있다" (John Firth) 에서 착안
3. One-hot Encoding : 단어를 고유한 숫자 인덱스로 치환
104. (1 Data) One Hot Encoding
https://minjejeon.github.io/learningstock/2017/06/05/easy-one-hot-encoding.html
109. (2 Cell) RNN
1. 전방향 신경망 : 회귀모델, 베이지안, CNN
2. 순환 신경망 : Recurrent Neual Network
3. 입력뉴런, 출력뉴런, 연결뉴런이 연결되어 있다
4. Input 값 과 연결뉴런의 다른 위상 값의 평균 또는 합을 X
로 연산을 진행한다
123. LSTM RNN CELL
Recurrent Neual Network
https://medium.com/@apiltamang/unmasking-a-vanilla-rnn-what-lies-beneath-912120f7e56c
recurrent connection allows
the network to remember
what it learned
in the previous step.
124. LSTM 의 장점
1. Hidden값을 Gate로 통과하면서 Noise를 발생
2. 저장된 Noise로 위상차이(반복횟수)를 구분
3. Gate 통과 전 / 이후의 값의 차이로 다양한 시간차를 인식
4. Sequence(연속적) 데이터 학습에 용이하다
125. LSTM 유닛구조
1. 유지게이트 : 앞의 Cell에서 넘어온 정보 중, 오래된 삭제할
정보와 유지할 정보를 Sigmoid 뉴런으로 구분한다
2. 쓰기게이트 : 위에서 구분한 정보중 필요한 정보(tan h)를
판단 후 상태변환/유지 여부를 파악 후 처리를 한다
3. 출력게이트 : 쓰기게이트와 유사한 구조를 갖고서 최종
결과물을 판단, 처리를 한다
126. Jupyter Notebook 실습
>> 04-1.RNN-LSTM.ipynb
1. RNN 알파벳 예측모델 (알파벳의 한계)
2. Data 는 사용자가 임베딩 함수를 정의
3. Data 의 Batch 함수도 직접 작성
128. seq 2 seq
1. 2013년 구글에서 공개한 기계번역 신경망 모델이다
2. 인코더 와 디코더를 연결
3. RNN의 재귀적 학습의 특성으로 인해, 특수함 심벌 ((1)
입력의 시작을 알림 (2) 디코더 출력이 끝남을 알림)을
필요로 한다
4. 대화형 챗봇, 번역 등 폭넓게 활용
129. (1 Data)
1. X (Input) : Sequence Data
2. Y (Output) : Sequence Data
130. (2 Cell)
1. 번역 Model 의 Cell : LSTM (엄격)
2. 챗봇 Model 의 Cell : RNN (유연)