본문 바로가기

딥러닝/[딥 러닝을 이용한 자연어 처리 입문]딥러닝

(19)
Doc2Vec으로 공시 사업보고서 유사도 계산하기 Word2Vec은 단어를 임베딩하는 워드 임베딩 알고리즘이었습니다. Doc2Vec은 Word2Vec을 변형하여 문서의 임베딩을 얻을 수 있도록 한 알고리즘입니다. Word2Vec은 단어를 벡터화하는 워드 임베딩 알고리즘이고, Doc2Vec은 문서를 벡터화하는 독립적인 문서 임베딩 알고리즘입니다. Word2Vec은 단어의 분산 표현(distributed representation)을 학습합니다. 이는 단어를 고정된 차원의 벡터로 표현하면서도 각 단어의 의미와 관계를 보존하는 것을 의미합니다. Doc2Vec은 문서 전체를 하나의 벡터로 표현합니다. 이를 위해 Doc2Vec은 주어진 문서와 함께 그 문서가 속한 문서 집합(corpus)에 속한 다른 문서들도 함께 학습하는 것이 특징입니다. Word2Vec과 마..
문서 임베딩 : 워드 임베딩의 평균(Average Word Embedding) 임베딩은 단어나 문장을 벡터 형태로 표현하는 기술입니다. 따라서 특정 문장 내의 단어들의 임베딩 벡터들의 평균값을 구하면 그 문장의 벡터를 얻을 수 있습니다. 이를 활용하여, 문서의 벡터를 구하고 분류 모델의 입력으로 사용하는 방법이 있습니다. 이 경우, 단어의 순서나 문법적인 정보가 반영되지 않아서 성능이 다소 떨어질 수 있지만, 임베딩이 잘 학습되어 있다면 상대적으로 적은 계산 비용으로 효과적인 분류 모델을 구축할 수 있습니다. 1. 데이터 로드와 전처리 from tensorflow keras.datasets import imdb Keras에서 제공하는 imdb 데이터셋을 로드할 때 imdb.load_data()와 imdb.data_load() 두 가지 방법이 있습니다. imdb.load_data()..
임베딩 벡터의 시각화(Embedding Visualization) 구글은 임베딩 프로젝터(embedding projector)라는 데이터 시각화 도구를 지원합니다. 학습한 임베딩 벡터들을 시각화해봅시다. 임베딩 프로젝터 논문 : https://arxiv.org/pdf/1611.05469v1.pdf 임베딩 프로젝터(Embedding Projector)는 TensorFlow로 구현된 오픈소스 시각화 도구입니다. 임베딩 프로젝터는 워드 임베딩과 같은 다차원 벡터를 시각화하여 고차원 공간에서의 유사도를 직관적으로 이해할 수 있도록 도와줍니다. 이를 통해 임베딩 공간에서 단어들의 관계를 쉽게 파악하고, 데이터의 패턴을 발견하며, 모델의 성능을 개선할 수 있는 힌트를 얻을 수 있습니다. 임베딩 프로젝터는 구글에서 개발한 TensorFlow의 기능 중 하나이며, 웹 브라우저 상에서..
워드투벡터(Word2Vec) 원-핫 벡터 : 단어 벡터 간 유의미한 유사도를 계산할 수 없다 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 할 수 있는 방법이 필요합니다. 이를 위해서 사용되는 대표적인 방법이 워드투벡터(Word2Vec)입니다. 원-핫 벡터는 희소 표현 방법이기 때문에 단어 간 유사도를 계산하기 어렵습니다. 이러한 문제를 해결하기 위해 워드투벡터(Word2Vec)와 같은 방법이 개발되었습니다. 워드투벡터는 단어를 고정된 길이의 밀집 벡터로 표현하며, 이를 통해 단어 간 유사도를 계산할 수 있습니다. 워드투벡터는 인공 신경망 모델을 이용하여 학습하는데, 대표적인 모델로는 CBOW(Continuous Bag-of-Words)와 Skip-gram이 있습니다. http://w.elnn.kr/sear..
워드 임베딩(Word Embedding) 워드 임베딩(Word Embedding)은 단어를 벡터로 표현하는 방법으로, 단어를 밀집 표현으로 변환합니다. 1. 희소 표현(Sparse Representation) 원-핫 인코딩을 통해서 나온 원-핫 벡터들은 표현하고자 하는 단어의 인덱스의 값만 1이고, 나머지 인덱스에는 전부 0으로 표현되는 벡터 표현 방법이었습니다. 이렇게 벡터 또는 행렬(matrix)의 값이 대부분이 0으로 표현되는 방법을 희소 표현(sparse representation)이라고 합니다. 원-핫 벡터는 희소 벡터(sparse vector)입니다. 원-핫 인코딩을 통해 얻어진 벡터는 대부분의 원소가 0으로 표현되기 때문에 희소 벡터라고 부릅니다. 이러한 희소 표현은 메모리 공간을 많이 차지하게 되는 문제가 있습니다. 이에 대한 대..
여러가지 유사도 기법 자연어 처리에서 사용되는 여러 가지 유사도 기법: 코사인 유사도 (Cosine Similarity): 문서나 단어들을 벡터로 변환하여 두 벡터 사이의 코사인 각도를 계산하여 유사도를 측정하는 방법입니다. 자카드 유사도 (Jaccard Similarity): 두 집합 사이의 유사도를 측정하는 방법으로, 두 집합에서 공통으로 포함된 원소의 개수를 전체 원소의 개수로 나눈 값입니다. 유클리디안 거리 (Euclidean Distance): 두 점 사이의 직선 거리를 계산하여 유사도를 측정하는 방법입니다. 맨하탄 거리 (Manhattan Distance): 두 점 사이의 맨하탄 거리를 계산하여 유사도를 측정하는 방법으로, 좌표축에 수직으로 이동하는 거리의 합입니다. 편집 거리 (Edit Distance): 두 문..
코사인 유사도(Cosine Similarity) 1. 코사인 유사도(Cosine Similarity) 코사인 유사도는 두 벡터 간의 방향적 유사성을 측정하는 데 사용됩니다. 코사인 유사도가 1에 가까울수록 두 벡터가 가리키는 방향이 유사하고, 0에 가까울수록 유사하지 않습니다. 음수 값을 가질 경우, 두 벡터가 반대 방향을 가리키고 있다는 것을 의미합니다. 이를 통해 코사인 유사도는 문서 검색, 추천 시스템 등에서 사용되며, 벡터 공간에서의 유사성 측정을 위한 일반적인 방법 중 하나입니다. similarity=cos(Θ)=A⋅B||A|| ||B||=∑i=1nAi×Bi∑i=1n(Ai)2×∑i=1n(Bi)2 Numpy를 사용해서 코사인 유사도를 계산하는 함수를 구현하고 각 문서 벡터 간의 코사인 유사도를 계산해보겠습니다. 코사인 유사도는 유사도를 구할 때..
TF-IDF(Term Frequency-Inverse Document Frequency) DTM 내에 있는 각 단어에 대한 중요도를 계산할 수 있는 TF-IDF 가중치 TF-IDF를 사용하면, 기존의 DTM을 사용하는 것보다 보다 많은 정보, 성능을 얻을 수 있습니다. 1. TF-IDF(단어 빈도-역 문서 빈도, Term Frequency-Inverse Document Frequency) 단어의 빈도와 역 문서 빈도(문서의 빈도에 특정 식을 취함)를 사용하여 DTM 내의 각 단어들마다 중요한 정도를 가중치로 주는 방법 주로 문서의 유사도를 구하는 작업 검색 시스템에서 검색 결과의 중요도를 정하는 작업 문서 내에서 특정 단어의 중요도를 구하는 작업 TF-IDF는 TF와 IDF를 곱한 값 문서를 d, 단어를 t, 문서의 총 개수를 n이라고 표현할 때 (1) tf(d,t) : 특정 문서 d에서의 ..