반응형

분류 전체보기 297

[Supervised Learning][Classification] KNN(K-Nearest Neighbor)

k-최근접 이웃(K-Nearest Neighbor, KNN) 가장 간단한 머신러닝 알고리즘 장점 구현이 쉽다 알고리즘을 이해하기 쉽다 수학적으로 거리를 계산하는 방법만 알면 이해하기가 쉽다 숫자로 구분된 속성에 우수한 성능을 보인다. 별도의 모델 학습이 필요 없다. Hyper-parameter가 적다 단점 예측 속도가 느리다 하나의 데이터를 예측할 때마다 전체 데이터와의 거리를 계산해야 한다 메모리를 많이 사용한다 노이즈 데이터(수집된 데이터가 참값만 가지고 있지 않을 경우)에 예민하다 예측값이 편향될 수 있다 학습된 모델이 아닌 가까운 이웃을 통해 예측하기 때문에 예측값이 틀릴 가능성이 상대적으로 높아진다 가장 가까운 훈련 데이터 포인트 하나를 최근접 이웃으로 찾아 예측하는 방법 숫자 k와 거리 측정 ..

[NLP] Khaii

카이(Khaiii) Kakao Hangul Analyzer III 국립국어원이 구축한 세종 corpus를 이용해 CNN 모델을 적용해 학습 C++로 구현해 GPU 없이도 형태소 분석이 가능하며 실행 속도 빠름 http://tech.kakao.com/2018/12/13/khaii kakao의 오픈소스 Ep9 - Khaiii : 카카오의 딥러닝 기반 형태소 분석기 “카카오의 오픈소스를 소개합니다” 아홉 번째는 jamie.lim과 자연어 처리 파트 동료들이 함께 개발한 khaiii(Kakao Hangul Analyzer III)입니다. khaiii는 세종 코퍼스를 이용하여 CNN(Convolutional Neural Network, tech.kakao.com 입력 문장을 문자 단위로 읽어 들인 뒤 convol..

NLP/KoNLPy 2021.03.18

[NLP] Okt

Okt(Open Korean Text) twitter에서 만든 오픈소스 한국어 처리기 twitter-korean-text를 이어받아 만들고 있는 프로젝트 github.com/open-korean-text/open-korean-text open-korean-text/open-korean-text Open Korean Text Processor - An Open-source Korean Text Processor - open-korean-text/open-korean-text github.com okt.morphs(norm=False, stem=False) 텍스트를 형태소 단위로 나눔 norm normalize 문장을 정규화 stem 각 단어에서 어간을 추출하는 기능 okt.nouns() 텍스트에서 명사만 ..

NLP/KoNLPy 2021.03.18

[NLP] Data Preprocessing

Data Preprocessing 문장 부호 제거 불용어 제거 단어 최대 길이 설정 단어 패딩 벡터 표상화 불용어 제거 문장에서 자주 출현하나 전체적인 의미에 큰 영향을 주지 않는 단어 영어에서는 조사, 관사 등과 같은 어휘 불용어가 포함된 데이터 모델링 시 노이즈를 줄일 수 있는 경우 불용어 제거가 좋음 데이터가 많고 문장 구문에 대한 전체적인 패턴을 모델링하고자 하는 경우에는 역효과 날 수 있음 불용어 제거 전에는 영문의 경우 모든 단어를 소문자로 변경 후 처리 필요 import re from nltk.corpus import stopwords # 영어 불용어 set을 만든다 stop_words = set(stopwords.words('english')) # 영어가 아닌 특수문자를 공백으로 치환 do..

NLP/NLP 기초 2021.03.15

[NLP] 텍스트 전처리

텍스트 전처리 비정형 데이터(Unstructured Data) 일정한 규격이나 형태를 지닌 숫자 데이터(Numeric Data)와 달리 그림이나 영상, 문서처럼 형태와 구조가 다른 구조화되지 않은 데이터 전처리 비정형 데이터를 정형화하는 과정 텍스트 문서 변환 파일로부터 텍스트를 추출하는 것 문서: docs, hwp, html, pdf 문서 파일을 문서로 바꾸는 작업 텍스트 내의 입력 문자열은 오로지 목표 어위 언어의 문자만 남아야 함 특수 문자 및 불필요한 타 언어 문자 제거 필요 특수 문자 제거 문장과 관련이 없는 특수 커맨드 또는 코딩을 규칙적으로 제거 텍스트를 문장단위로 줄 바꿈 요소 변경(마침표로 문장 구분 등) 띄어쓰기 교정 띄어쓰기는 단어의 의미 분할 및 전달과 함께 매우 중요 띄어쓰기의 용..

NLP/NLP 기초 2021.03.15

[NLP] Kaggle

Kaggle(캐글) 2010년 설립된 예측모델 및 분석 대회 플랫폼 기업 및 단체에서 데이터와 해결과제를 등록하면, 데이터 과학자들이 이를 해결하는 모델을 개발하고 경쟁 opendatascience.com/10-tips-to-get-started-with-kaggle/ 10 Tips to Get Started with Kaggle Kaggle is a well-known community website for data scientists to compete in machine learning challenges. Competitive machine learning can be a great way to hone your skills, as well as demonstrate your skills. In ..

NLP/NLP 기초 2021.03.15

EDA(Exploratory Data Analysis)

EDA(Exploratory Data Analysis) 탐색적 데이터 분석 정해진 틀 없이 데이터에 대해 최대한 많은 정보를 추출 데이터에 대한 정보 데이터의 평균값, 중앙값, 최솟값, 최댓값, 범위 분포, 이상치(outlier) 등 데이터 변수 간의 관계, Null 값과 같은 결측값(missing value) 존재 유무 등을 파악 데이터를 분석할 때는 분석가의 선입견을 철저하게 배제하고 데이터가 부여주는 수치만으로 분석을 진행해야 한다

NLP/NLP 기초 2021.03.15

[NLP] Machine Comprehension

Machine Comprehension 기계가 텍스트를 이해하고 논리적 추론을 할 수 있는지 데이터 학습을 통해 보는 것 기계가 어떤 텍스트에 대한 정보를 학습하고 사용자가 질의를 던졌을 때 그에 대해 응답하는 문제 Dataset 바비(bAbI) 페이스북 AI 연구팀에서 기계가 데이터를 통해 학습해서 텍스트를 이해하고 추론하는 목적으로 만들어진 데이터셋 시간 순서대로 나열된 텍스트 문장 정보와 그에 대한 질문으로 구성되어 텍스트 정보에 대해 질문을 던지고 응답하는 형태 20가지 분류의 질문 내용으로 구성 SQuAD(Stanford Question Answering Dataset) 기계 이해 태스크에서 가장 유명한 데이터셋 중 하나 스탠퍼드 자연어 처리 연구실에서 만든 데이터셋 위키피디아에 있는 내용을 크..

NLP/NLP 기초 2021.03.15

[NLP] Text Similarity

Text Similarity 텍스트가 얼마나 유사한지는 표현하는 방식 같은 단어의 개수를 사용해서 유사도를 판단하는 방법 형태소로 나누어 형태소를 비교하는 방법 자소 단위로 나누어 단어를 비교하는 방법 딥러닝을 기반으로 텍스트의 유사도를 측정하는 방법 Jaccard Similarity 자카드 유사도 또는 자카드 지수는 두 문장을 각각 단어의 집합으로 만든 뒤 두 집합을 통해 유사도를 측정하는 방식 두 집합의 교집합인 공통된 단어의 개수를 합집합(전체 단어의 수)로 나눔 유사도 값은 0 ~ 1, 1에 가까울수록 유사도가 높음을 의미 Cosine Similarity 두 개의 벡터값에서 코사인 각도를 구하는 방법 유사도 값은 -1 ~ 1, 1에 가까울수록 유사도가 높음을 의미 두 벡터간의 각도를 구해 방향성의..

[NLP] Text Classification

Text Classification 자연어 처리 기술을 활용해 특정 텍스트를 사람들이 정한 몇 가지 범주(class) 중 어느 범주에 속하는지 분류 데이터의 정답 라벨 유무에 따라 학습 방법 선택 지도 학습을 통한 텍스트 분류 데이터에 대해 각각 속한 범주에 대한 값(라벨)이 이미 주어져 있음 주어진 범주로 글들을 모두 학습한 후 학습한 결과를 이용해 새로운 글의 범주를 예측 분류 모델 예시 나이브 베이즈 분류(Naïve Bayes Classification) 서보트 벡터 머신(Support Vector Machine) 신경망(Neural Network) 선형 분류(Linear Classifier) 로지스틱 분류(Logistic Classifier) 랜덤 포레스트(Random Forest) 비지도 학습을..

[Machine Learning] Transfer Learning

Transfer Learning 학습 데이터가 부족한 분야의 모델 구축을 위해 데이터가 풍부한 분야에서 훈련된 모델을 재사용하는 학습 기법 특정한 task(classfication, detection, segmentation 등)에 대하여 학습된 딥러닝 모델을 다른 task로 transfer하여 해당 모델을 사후적으로 학습하는 개념 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용 이미 학습된 모델의 weight들을 transfer하여 자신의 model에 맞게 학습 시키는 방법 기존의 만들어진 모델을 사용하여 새로운 모델을 만들 시 학습을 빠르게 하며, 예측을 더 높이는 방법 적은 데이터만을 학습시킬 경우 overfitting 가능성 증가 많은 da..

[NLP] LDA(Latent Dirichlet Allocation)

LDA(Latent Dirichlet Allocation) 추출한 문서에 담긴 단어들의 주제(토픽)을 추출하는 ‘토픽모델링’ 기법 중 하나 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출 토픽 모델링 각 단어나 문서들의 집합에 대해 숨겨진 주제를 찾아내어 문서나 키워드별로 주제끼리 묶어주는 비지도학습 알고리즘 LDA는 문서가 있고, 그 안에 단어가 있다면 확률분포 중 하나인 디리클레의 분포를 가정하고, 번호가 매겨진 토픽 안에 문서와 단어들을 하나씩 넣어보며 잠재적인 의미(토픽)을 찾아주는 과정 α, β, K : 디리클레 분포 하이퍼 파라미터 값 α: 문서들의 토픽 분포를 얼마나 밀집되게 할 것인지에 대한 설정 값 β: 문서 내 단어들의 토픽 분포를 얼..

[NLP] NLP(Natural Language Processing)

NLP(Natural Language Processing) 컴퓨터를 이용하여 인간 언어의 이해, 생성 및 분석을 다루는 인공지능 기술 자연어를 컴퓨터가 해독하고 그 의미를 이해하는 기술 NLP = NLU + NLG NLU(Natural Language Understanding) 문자로 된 언어를 입력으로 직접 받아들여서, 목적에 맞게 내부적으로 처리해내는 과정 자연어 표현을 기계가 이해할 수 있는 다른 표현으로 변환시키는 것 NLU 사용하는 기술 Word Embedding 단어나 형태소를 벡터화하는 기술 MRC 기술 및 대화 모델 사용자가 어떤 질문을 했을 때 기계는 자신이 학습했던 내용 중에서 적절한 답변을 알아서 찾아 제공해주는 것 ※ MRC Machine Reading Comprehension, 기..

NLP/NLP 기초 2021.03.12

[NLP] Word2Vec

Word2Vec 신경망 모델을 사용하여 큰 텍스트 corpus에서 단어 연관성을 학습 단어의 의미가 벡터로 표현됨으로써 벡터 연산이 가능 단어가 가지는 의미 자체를 다차원 공간에 벡터화 하는 것 카운트 기반 방법으로 만든 단어 벡터보다 단어 간의 유사도를 잘 측정 단어들의 복잡한 특징까지도 잘 잡아낸다 장점 단어간의 유사도 측정이 용이 단어간의 관계 파악에 용이 벡터 연산을 통한 추론이 가능 단점 단어의 subword 정보 무시(ex. 서울/서울시/고양시) OOV(Out of vocabulary)에서 적용 불가능 CBOW(Continuous Bag of Words) 어떤 단어를 문맥 안의 주변 단어들을 통해 예측하는 방법 입력 값으로 여러 개의 단어를 사용하고, 학습을 위해 하나의 단어와 비교 CBOW ..

NLP/Embedding 2021.03.12
728x90
반응형