본문 바로가기
반응형

Data Science/NLP12

한국어 텍스트 분석기 KoNLPy 쉽게 설치하기 (간단 방법 완벽 정리) 이번 포스팅에서는 매번 겁부터 나던 KoNLPy 패키지 설치에 대해서 알아본다. 설치 방법이 공식 페이지에도 나와 있지만, 왠지 모르게 이해하기 힘들다.. https://konlpy.org/ko/latest/index.html KoNLPy: 파이썬 한국어 NLP — KoNLPy 0.6.0 documentation KoNLPy: 파이썬 한국어 NLP KoNLPy(“코엔엘파이”라고 읽습니다)는 한국어 정보처리를 위한 파이썬 패키지입니다. 설치법은 이 곳을 참고해주세요. NLP를 처음 시작하시는 분들은 시작하기 에서 가 konlpy.org 그래서, 설치 과정을 단계별로 쉽게 써 놓으려고 한다. 나중에 내가 보는 용도로 사용하고 싶어서.. - 회사에서 설치했었던지라, 보안 관련된 부분도 문제가 있었던 부분을 추.. 2022. 12. 6.
Neural N-Gram Language Model Neural N-Gram Language Model 신경망을 사용함으로서 데이터 희소성(data sparsity) 문제를 해결 할 수 있습니다. 기존의 카운트 기반 모델 보다 훈련 데이터에서 나오지 않았었던 N-gram 을 계산 할 수가 있었습니다. 어떻게 이것이 가능할까요? 그전에 데이터 희소성(data sparsity) 문제가 생기는 이유를 살펴봐야합니다. 간단한 대답은 토큰들이 훈련시에는 생기지 않지만, 테스트시에 만 생기기 때문입니다. 조금더 깊은 대답은 이산 공간(discrete space) 에서 카운트하여 토큰들의 유사도 측정이 불가능 하기 때문입니다. 하지만 신경망에서는 토큰을 연속 벡터 공간(continuous vector space) 에 매핑(mapping) 시킵니다. 나오지 않았던 단어.. 2022. 3. 30.
Language Modeling 언어 모델링(Language Modeling) Input: 하나의 문장 Output: Input 문장에 대한 확률 텍스트 분류 문제와 달리, 비지도학습입니다. 하지만, 순서가 있는 지도학습으로 문제를 바꿔서 풀 수 있습니다. Autoregressive language modelling (자기회귀 언어 모델링) Sequence 가 주어졌을 때 이 문장에게 점수를 부여 하는 방법입니다. 이전 토큰이 나왔을때 다음 토큰이 나올 확률을 계산하는 작업과 동일합니다. 이렇게 정의 하면서 비지도학습 문제를 지도학습으로 푸는 문제로 변하게 됩니다. 즉, 이전에 공부했던 텍스트 분류 문제와 같아지는데, input 은 이전에 나온 토큰, output은 다음에 나올 토큰을 예측 하는 것입니다. 또한, 문장에 점수(Score.. 2022. 3. 30.
CBoW & RN & CNN & Self Attention & RNN 문장표현(Sentence representation)의 의미: 어떤 과제를 풀기에 적합하고 숫자로 나타낸 문장의 표현입니다 CBoW(Continuous bag-of-words): 단어장을 단어 주머니로 보게되고, 이에 따라 단어의 순서는 무시합니다. 문장에 대한 표현은 단어 벡터들을 평균시킨 벡터로 구합니다. 효과가 좋기 때문에 제일 먼저 시도해봐야합니다. (Baseline 모델) 공간상에서 가까우면 비슷한 의미, 아니면 멀리 떨어져 있을 것입니다. Relation Network(Skip-Bigram): 문장안에 있는 모든 토큰 쌍(pairs)을 보고, 각 쌍에 대해서 신경망을 만들어서 문장표현을 찾습니다. 장점: 여러 단어로 된 표현을 탐지 할 수 있습니다. 단점: 모든 단어간의 관계를 보기 때문에, .. 2022. 3. 28.
How to represent sentence & token 문장은 일련의 토큰(tokens)으로 구성되어 있습니다. 텍스트 토큰은 주관적, 임의적(arbitrary)인 성격을 띄고 있습니다. 토큰을 나누는 기준은 다양합니다. 공백(White space) 형태소(Morphs) 어절 비트숫자 컴퓨터에게 단어를 숫자로 표현하기 위해서, Vocabulary을 만들고, 중복되지 않는 인덱스(index)로 바꿉니다. 궁극적으로 모든 문장을 일련의 정수로 바꿔줍니다. 이를 인코딩(Encoding)이라고 합니다. 하지만 관계없는 숫자의 나열로 인코딩하는 것은 우리가 원하는 것이 아닙니다. 여전히 주관적인 숫자들 뿐입니다. 우리는 비슷한 의미의 단어는 같이 있고, 아니면 멀리 떨어져 있는 관계를 만들고 싶습니다. 그렇다면 어떻게 관계를 만들어 줘야 할까요? 한 가지 방법으로 ".. 2022. 3. 28.
Text classification Overview 텍스트 분류(Text Classification): 문장, 문단 또는 글을 어떤 카테고리에 분류하는 작업을 텍스트 분류라고 합니다. 텍스트 분류는 지도학습입니다. Input: 하나의 문장, 문단 혹은 문서 Output: 유한한 C 개의 카테고리 예시 감성 분석 카테고리 분류 의도 분류 본 내용은 부스트코스 조경현 교수의 딥러닝을 이용한 자연어 처리 수업 내용입니다. 2022. 3. 28.
Gradient-Based Optimization Off-the-shelf gradient-based optimization Gradient descent, L-BFGS, Conjugate gradient 등 방법 들이 있습니다. 그러나 위 방법들은 매개변수(parameters)가 많아질 수록 시간이 오래걸립니다. 그 이유는 훈련 샘플 전체의 Loss 는 각 샘플에 대한 Loss 의 합으로 구해지며, 데이터가 많아 질수록 오래 걸리기 때문입니다. 확률적 경사 하강법(Stochastic Gradient descent) 1. M개의 훈련 샘플을 선택합니다. 이를 미니배치(Mini batch) 라고 합니다. 2. 미니배치 경사를 계산합니다. 3. 매개변수를 업데이트합니다. 4. 검증 세트로 구한 validation loss 가 더 이상 진전이 없을때까지 진행.. 2022. 3. 28.
Backpropagation 자동 미분법(Automatic differentiation): 모델을 연결하는 비순환 그래프(DAG)는 미분 가능한 함수들로 구성되어 있습니다. 따라서 미분의 연쇄법칙을 사용하여 자동으로 미분합니다. 과정: 각 노드에서 Jacobian-vector product을 계산합니다. 비순환 그래프(DAG) 역순으로 전파합니다. 장점: Gradient 를 손으로 직접 계산할 필요가 없어졌습니다. [front-end]와 [back-end]의 분리 [front-end] 비순환 그래프(DAG)를 만듬으로서 뉴럴넷(모델)을 디자인하는데 집중합니다. [back-end] 디자인 된 비순환 그래프(DAG)는 타겟 컴퓨터 장치를 위한 효과적인 코드로 컴파일됩니다. Framework 개발자들이 타겟에 맞춰 알맞게 구현하면 사용자.. 2022. 3. 28.
Optimization methods Loss 는 비순환그래프(DAG)를 거쳐 계산됩니다. 가설이 무수히 많기 때문에 모든 것을 다 시도해보고 최적인 것을 고를 수가 없습니다. 따라서, 일단 아무 곳을 선택한 후에 Loss 를 낮추는 방향으로 최적화를 진행합니다. 방법: Local, Iterative Optimization: Random Guided Search 장점: 어떤 비용함수를 사용해도 무관합니다. 단점: 차원이 작을 때는 잘 되지만, 차원의 저주 때문에 커질 수록 오래걸립니다. 샘플링(sampling) 에 따라서 오래걸립니다. Gradient-based Optimization: 미분을 통해 최적화 할 방향을 정합니다 장점: Random Guided search 에 비해서 탐색영역은 작지만 확실한 방향은 정할 수 있습니다. 단점: 학.. 2022. 3. 28.
반응형