텍스트분석 10

RNN과 LSTM의 차이점과 활용(시계열 데이터 처리)

수업 내용 리마인드 및 아카이빙 목적의 업로드 AI와 딥러닝을 배우다 보면 RNN(순환 신경망)과 LSTM(장단기 메모리)라는 용어를 자주 듣게 됩니다. 특히 시계열 데이터를 처리하는 데 뛰어난 성능을 보여주는데요. 오늘은 RNN과 LSTM의 기본 개념부터 그 차이점까지 하나씩 알아보겠습니다! 1. RNN(순환 신경망)이란?RNN은 순환 신경망(Recurrent Neural Network)의 약자입니다. 일반적인 신경망은 과거의 정보를 기억하지 못하는 단점이 있는데, RNN은 이전 시점의 정보를 활용해 새로운 데이터를 처리할 수 있습니다. 예를 들어, 문장이나 시간에 따라 변화하는 데이터를 다룰 때 유용해요. 1) RNN의 작동 방식RNN의 핵심 아이디어는 이전 시점의 정보를 반영해 더 나은 예측을 하자..

+ 개발 2024.09.21

Word2Vec 모델 만들기

수업 내용 리마인드 및 아카이빙 목적의 업로드1. 영어 Word2Vec 만들기1) 필요 모듈 로드먼저 Word2Vec 학습을 위해 필요한 라이브러리를 불러옵니다.import reimport urllib.requestimport zipfilefrom lxml import etreefrom nltk.tokenize import word_tokenize, sent_tokenizeimport nltknltk.download("punkt") 2) 데이터 로드데이터는 TED 강연 텍스트로, XML 형식으로 제공됩니다. content 태그 사이의 내용을 추출합니다.# 데이터 다운로드urllib.request.urlretrieve("https://raw.githubusercontent.com/ukairia777/ten..

+ 개발 2024.09.16

임베딩 기법 비교: Word2Vec, GloVe, FastText.

수업 내용 리마인드 및 아카이빙 목적의 업로드 자연어 처리는 말 그대로 컴퓨터가 사람의 언어를 이해하고 처리할 수 있도록 도와주는 분야입니다. 그중에서 단어를 숫자로 변환하여 벡터로 표현하는 방법을 임베딩(Embedding)이라고 해요. 오늘은 그 대표적인 기법들인 Word2Vec, GloVe, 그리고 FastText를 차근차근 알아보려고 합니다. 1. Word2Vec – 단어와 단어 사이의 관계를 학습하자!Word2Vec은 단어를 벡터로 표현하는 대표적인 임베딩 기법이에요. 이 방법은 단순히 단어를 숫자로 바꾸는 것에서 끝나는 게 아니라, 단어 사이의 관계까지 고려해서 단어 벡터를 만듭니다. 1) Embedding과 Vectorization의 차이먼저 Vectorization은 단어를 수치로 변환하는 ..

+ 개발 2024.09.15

뉴스 데이터 LDA 분석(ft. Gensim & Scikit-learn)

수업 내용 리마인드 및 아카이빙 목적의 업로드1. Twenty Newsgroups 데이터를 통한 LDA 분석 (Gensim)Twenty Newsgroups 데이터셋은 사이킷런에서 제공하는 20개의 서로 다른 주제를 가진 뉴스 그룹 데이터를 포함하고 있습니다. 이 데이터셋을 활용하여 LDA 분석을 수행해보겠습니다. 1) 필요 모듈 로드먼저, 데이터 전처리와 모델링에 필요한 라이브러리를 로드합니다.import pandas as pdfrom sklearn.datasets import fetch_20newsgroupsimport nltkfrom nltk.corpus import stopwordsfrom sklearn.feature_extraction.text import TfidfVectorizerfrom ge..

+ 개발 2024.09.14

뉴스 데이터 LSA 분석(ft. Numpy & Scikit-learn)

수업 내용 리마인드 및 아카이빙 목적의 업로드 LSA(Latent Semantic Analysis)는 문서의 단어 간 숨겨진 의미를 분석하는 강력한 방법 중 하나입니다. 이번 글에서는 LSA를 활용해 간단한 실습을 진행하고, 뉴스 데이터를 분석하는 과정을 단계별로 살펴보겠습니다. 1. LSA 간단 실습LSA는 문서-단어 행렬(DTM)을 특이값 분해(SVD)를 통해 분석하는 방법입니다. 이를 통해 문서 내에 존재하는 잠재적 의미를 추출할 수 있어요. 1) DTM 행렬 생성먼저, 예시 데이터로 문서-단어 행렬(DTM)을 만들어봅니다.import numpy as npA = np.array([[0,0,0,1,0,1,1,0,0], [0,0,0,1,1,0,1,0,0], ..

+ 개발 2024.09.13

단어 임베딩을 활용한 유사도 계산

수업 내용 리마인드 및 아카이빙 목적의 업로드  자연어 처리에서 텍스트의 유사도를 측정하는 것은 매우 중요한 작업이에요. 단어 임베딩을 통해 벡터로 변환된 단어들 사이의 거리를 측정하면, 단어들이 얼마나 비슷한지 계산할 수 있습니다. 이번 글에서는 유클리디안 거리, 자카드 유사도, 코사인 유사도를 계산하는 방법을 단계별로 알아봐요.  1. 유클리디안 거리 (Euclidean Distance)유클리디안 거리는 두 벡터 사이의 직선 거리를 의미합니다. 즉, 두 점 사이의 최단 거리를 구하는 방법이죠. 벡터 간의 차이를 계산한 후, 그 차이의 제곱을 더하고 루트를 취하면 유클리디안 거리가 나옵니다. * 유클리디안 거리 계산 코드 예시import numpy as np# 단어 임베딩 사전word_embedding..

+ 개발 2024.09.09

문서 표현 기법(ft. Scikit-learn & Gensim)

수업 내용 리마인드 및 아카이빙 목적의 업로드자연어 처리(NLP)에서 문서를 어떻게 표현하느냐는 아주 중요한 부분이에요. 오늘은 두 가지 대표적인 파이썬 라이브러리인 Scikit-learn(Sklearn)과 Gensim을 가지고 문서 표현 방법을 쉽게 설명해볼게요. 이 두 라이브러리는 각기 다른 장점이 있어서 상황에 맞게 잘 선택해서 사용하면 좋아요. Scikit-learn과 Gensim 비교Sklearn은 일반적인 머신러닝 작업에 적합해요. 텍스트 데이터를 다룰 때, 분류나 클러스터링 같은 고급 머신러닝 작업을 할 때 많이 사용해요.Gensim은 대규모 텍스트 데이터에서 주로 쓰이는 라이브러리인데요, 주제 모델링(LDA)이나 단어 임베딩(Word2Vec) 같은 작업에 특히 강점이 있어요.1. BoW (..

+ 개발 2024.09.08

N-gram: 텍스트에서 문맥 파악하기

수업 내용 리마인드 및 아카이빙 목적의 업로드 텍스트 데이터를 다룰 때 단어들의 순서와 문맥을 고려하는 것은 매우 중요해요. 특히 N-gram은 문맥을 일부 반영할 수 있는 방법으로, 인접한 단어들을 묶어 표현해주는 기법이에요. 이 글에서는 N-gram의 개념부터 실제로 어떻게 활용되는지까지 차근차근 살펴볼게요. N-gram이란?N-gram은 텍스트에서 연속된 n개의 단어 묶음을 의미해요. 예를 들어, "I love deep learning"이라는 문장에서 2-gram은 "I love", "love deep", "deep learning"과 같이 두 단어씩 묶은 형태가 되죠. 이렇게 하면 단순히 단어의 빈도만 고려하는 것이 아니라, 단어들의 순서를 유지하면서 문맥 정보를 파악할 수 있어요. 하지만 N-g..

+ 개발 2024.09.07

단어 표현(Word Representation)

수업 내용 리마인드 및 아카이빙 목적의 업로드 기계는 우리가 사용하는 문자를 그대로 이해할 수 없어요. 그래서 자연어 처리에서는 문자를 숫자로 변환하는 방법이 필요해요. 이 글에서는 단어를 숫자로 변환하는 대표적인 방법인 원-핫 인코딩(One-Hot Encoding)을 직접 구현하고, Scikit-learn을 이용한 방법까지 단계별로 설명드릴게요. 1. 원-핫 인코딩 (One-Hot Encoding)원-핫 인코딩은 단어를 고유한 숫자로 변환한 후, 해당 단어의 위치에만 1을 부여하고 나머지에는 0을 채우는 방법이에요. 이 방식은 단어 간의 관계나 유사성을 표현하지 않지만, 간단하고 명확하게 텍스트 데이터를 숫자로 변환할 수 있죠. 1) 직접 원-핫 인코딩 구현하기파이썬의 기본 라이브러리만 사용해서 원-핫..

+ 개발 2024.09.06

텍스트 마이닝 : 개념부터 활용까지

수업 내용 리마인드 및 아카이빙 목적의 업로드 1. 텍스트 마이닝이란? 텍스트 마이닝(Text Mining)은 자연어 처리(NLP) 기술을 바탕으로 비정형 텍스트 데이터를 정형화하고, 그 속에서 유의미한 패턴과 정보를 찾아내는 기술이에요. 언어학, 통계학, 기계 학습 등이 융합된 이 기술은 이메일, 고객 리뷰, 소셜 미디어 게시물, 연구 보고서 등 다양한 텍스트 데이터를 분석하여 중요한 인사이트를 도출합니다. 2. 텍스트 마이닝과 데이터 마이닝의 차이점 텍스트 마이닝과 데이터 마이닝은 둘 다 데이터를 분석해 유의미한 정보를 추출하는 기술이지만, 분석 대상이 다릅니다.텍스트 마이닝: 비정형 텍스트 데이터를 분석하여 의미 있는 정보를 추출합니다. 주로 자연어 처리 기술을 사용해 데이터를 가공합니다.데이터 마..

+ 개발 2024.09.04