목록자연어처리 (16)
Hey Tech
👨💻 들어가며 KoNLPy와 Mecab 패키지는 기본적으로 설치되어 있다고 가정합니다. 혹시나 설치되어 있지 않다면 아래 포스팅을 참고해 주세요. https://heytech.tistory.com/3 [Python/NLP] KoNLPy 설치하는 방법에 대해 알아보자! 오늘은 한국어 자연어처리(NLP)를 위한 파이썬 라이브러리 KoNLPy를 설치하는 방법을 공유합니다. 1. 터미널/커맨드라인 오픈 가장 먼저, 터미널/커맨드라인을 열어줍니다. 2. KoNLPy 패키지 설치 pip i heytech.tistory.com Mecab 설치방법 bash
📚 목차 1. 자카드 유사도 개념 2. 자카드 유사고 실습 1. 자카드 유사도 개념 자카드 유사도(Jaccard Similarity)는 \(2\)개의 집합 \(A\), \(B\)가 있을 때 두 집합의 합집합 중 교집합의 비율입니다. 즉, 두 집합이 완전히 같을 때는 자카드 유사도가 \(1\)이며, 두 집합에 교집합이 없는 경우는 \(0\)입니다. 자카드 유사도를 \(J\)라고 할 때 두 집합 간의 자카드 유사도 수식은 아래와 같습니다. $$ J(A, B) = \frac{|A \cap B|}{|A \cup B|} = \frac{|A \cap B|}{|A| + |B| - |A \cap B|} $$ 자카드 유사도 개념을 자연어처리 분야로 그대로 가져오면, 하나의 집합이 곧 하나의 문서가 해당하는 것입니다. 2..
📚 목차 1. 유클리드 거리 개념 2. 유클리드 거리 실습 1. 유클리드 거리 개념 수학적 관점 접근 유클리드 거리(Euclidean Distance)는 두 점 사이의 거리를 계산하는 기법입니다. 두 점 \(p\)와 \(q\)가 각각 \((p_1, p_2, ..., p_n)\), \((q_1, q_2, ..., q_n)\) 좌표를 가질 때, 두 점 사이의 거리를 유클리드 거리 공식으로 표현하면 아래와 같습니다. $$ \sqrt{(q_1 - p_1)^2 + (q_2 - p_2)^2 + ... + (q_n - p_n)^2} = \sqrt{\displaystyle\sum_{i=1}^{n}(q_i - p_i)^2}$$ 다차원이 아닌 2차원 공간에서 유클리드 거리를 쉽게 알아보겠습니다(그림 1 참고). 두 점 \..
📚 목차 1. 코사인 유사도 개념 2. 코사인 유사도 실습 1. 코사인 유사도 개념 코사인 유사도(Cosine Similarity)란 두 벡터 사이의 각도를 계산하여 두 벡터가 얼마나 유사한지 측정하는 척도입니다. 즉, DTM, TF-IDF, Word2Vec 등과 같이 단어를 수치화하여 표현할 수 있다면 코사인 유사도를 활용하여 문서 간 유사도를 비교하는 게 가능합니다. 코사인 유사도는 \(1\)에 가까울수록 두 벡터가 유사하다고 해석하며, 문서의 길이가 다른 경우에도 비교적 공정하게 비교할 수 있다는 장점이 있습니다. 아래 그림 1과 같이 두 벡터가 같은 방향을 가리키는, 즉 두 벡터 사이의 각도가 \(0^\circ\)일 때 코사인 유사도가 최댓값인 1을 갖습니다. \(A\), \(B\)라는 두 벡터가..
📚목차 1. 등장배경 2. 개념 3. Sample 선정 4. Word2Vec 성능 1. 등장 배경 Negative Sampling 방법은 Word2Vec의 CBOW와 Skip-gram 모두 단어 개수가 많아질수록 계산 복잡도가 증가하여 연산 속도가 저하된다는 한계점을 보완하기 위해 제안되었습니다. CBOW와 Skip-gram의 목적함수는 아래와 같습니다. $$ \mathcal{L}_{CBOW} = -\sum_{j=1}^{|V|}y_{j}log(\hat{y}) $$ $$ \mathcal{L}_{Skip-gram} = -\sum_{j=0, j\ne{m}}^{2m}\sum_{k=1}^{|V|}y_{k}^{(c-j)}\log\hat{y_{k}}^{(c-j)} $$ 수식에서 알 수 있듯이, CBOW와 Skip-g..
📚목차 1. 학습 데이터셋 생성 2. 인공신경망 모형 3. 학습 과정 4. CBOW vs Skip-gram 5. 한계점 들어가며 Word2Vec는 학습방식에 따라 크게 \(2\)가지로 나눌 수 있습니다: Continuous Bag of Words(CBOW)와 Skip-gram. CBOW는 주변 단어(Context Word)로 중간에 있는 단어를 예측하는 방법입니다. 여기서 중간에 있는 단어를 중심 단어(Center Word) 또는 타겟 단어(Target Word)라고 부릅니다. 반대로, Skip-gram은 중심 단어를 바탕으로 주변 단어들을 예측하는 방법입니다. 선행연구들에 따르면, 대체로 Skip-gram이 CBOW보다 성능이 우수하다고 알려져 있는데, 이에 대한 자세한 내용은 본 포스팅에 'Chapt..
📚목차 1. 학습 데이터셋 생성 2. 인공신경망 모형 3. 학습 절차 4. CBOW vs Skip-gram 5. 한계점 들어가며 Word2Vec는 학습방식에 따라 크게 \(2\)가지로 나눌 수 있습니다: Continuous Bag of Words(CBOW)와 Skip-gram. CBOW는 주변 단어(Context Word)로 중간에 있는 단어를 예측하는 방법입니다. 여기서 중간에 있는 단어를 중심 단어(Center Word) 또는 타겟 단어(Target Word)라고 부릅니다. 반대로, Skip-gram은 중심 단어를 바탕으로 주변 단어들을 예측하는 방법입니다. 본 포스팅에서는 CBOW에 대해 다루고, 다음 포스팅에서 Skip-gram에 대해 자세히 다룹니다. 1. 학습 데이터셋 생성 CBOW에서 학습 ..
📚 목차 1. Word2Vec 개념 2. 희소표현과의 차이점 3. 언어모델과의 차이점 1. Word2Vec 개념 Word2Vec는 Word to Vector라는 이름에서 알 수 있듯이 단어(Word)를 컴퓨터가 이해할 수 있도록 수치화된 벡터(Vector)로 표현하는 기법 중 하나입니다. 구체적으로는 분산표현(Distributed Representation) 기반의 워드임베딩(Word Embedding) 기법 중 하나입니다. 분산표현이란 분포가설(Distibutional Hypothesis) 가정 하에 저차원에 단어 의미를 분산하여 표현하는 기법입니다. 분포가설은 "유사한 문맥에 등장한 단어는 유사한 의미를 갖는다"라는 가정입니다. 여기서 단어를 벡터화하는 작업을 워드임베딩(Word Embedding)이..