본문 바로가기

Study21

[NLP] 9. Sentiment Analysis 감정 분석은 텍스트에 등장하는 단어들을 통해 어떤 감정이 드러나는지 분석하는 기법이다.감정 분석은 '오피니언 마이닝'으로도 불리며, 텍스트에 담긴 의견, 태도 등을 알아보는데 유용한 기법이다.감정 분석을 하기 위해선 미리 정의된 감정 어휘 사전이 필요하다.감정 어휘 사전에 포함된 어휘가 텍스트에 얼마나 분포하는지에 따라 해당 텍스트의 감정이 좌우된다.토픽 모델링이 텍스트의 주제를 찾아낸다면, 감정 분석은 텍스트의 의견을 찾아낸다.텍스트는 주제(토픽)와 의견(감정)의 결합으로 이루어졌다고 볼 수 있다. 감정 분석은 SNS, 리뷰 분석에 유용하게 사용할 수 있다.특정 이슈에 대한 사람들의 감정을 실시간으로 분석한다면, 그에 대해 신속하게 대처가 가능하다. 파이썬으로 감정 분석하는 방법은 크게 두 가지로 구분.. 2024. 8. 25.
[NLP] 8. 스팸 메일 분류 CNN 스팸 메일 분류1. 데이터 로드 및 전처리import numpy as npimport pandas as pdimport matplotlib.pyplot as pltplt.style.use('seaborn-white')from tensorflow.keras.preprocessing.text import Tokenizerfrom tensorflow.keras.preprocessing.sequence import pad_sequencesimport urllib.requesturllib.request.urlretrieve('https://raw.githubusercontent.com/mohitgupta-omg/Kaggle-SMS-Spam-Collection-Dataset-/master/spam.csv',.. 2024. 8. 25.
[NLP] 7. Embedding 워드 임베딩은 단어를 컴퓨터가 이해하고, 효율적으로 처리할 수 있도록 단어를 벡터화하는 기술이다.워드 임베딩은 단어의 의미를 잘 표현해야만 하며, 현재까지도 많은 표현 방법이 연구되고 있다.워드 임베딩을 거쳐 잘 표현된 단어 벡터들은 계산이 가능하며, 모델에 넣는 것이 가능해진다.1. 인코딩(Encoding)기계는 자연어를 이해할 수 없다. 그렇기에, 데이터를 기계가 잘 이해할 수 있도록 숫자 등으로 변환해주는 작업이 필요하다. 이러한 작업을 인코딩이라고 한다.텍스트 처리에서는 주로 정수 인코딩, 원-핫 인코딩을 사용한다.정수 인코딩각 단어와 정수 인덱스를 연결하고 토큰을 변환해주는 정수 인코딩text='평생 살 것처럼 꿈을 꾸어라. 그리고 내일 죽을 것처럼 오늘을 살아라.'tokens=[x for x .. 2024. 8. 21.
[NLP] 6. Topic Modeling 토픽 모델링은 문서 집합에서 주제를 찾아내기 위한 기술이다.토픽 모델링은 '특정 주제에 관한 문서에서는 특정 단어가 자주 등장할 것이다.' 라는 직관을 기반으로 한다.예를 들어, 주제가 '개'인 문서에서는 개의 품종, 개의 특성을 나타내는 단어가 다른 문서에 비해 많이 등장한다.주로 사용되는 토픽 모델링 방법은 잠재 의미 분석과 잠재 디리클레 할당 기법이 있다.1. 잠재 의미 분석(Latent Semantic Analysis)잠재 의미 분석(LSA)은 주로 문서 색인의 의미 검색에 사용된다.잠재 의미 인덱싱(Latent Semantic Indexing, LSI)로도 알려져 있다.LSA의 목표는 문서와 단어의 기반이 되는 잠재적인 토픽을 발견하는 것이다.잠재적인 토픽은 문서에 있는 단어들의 분포를 주도한다.. 2024. 8. 21.
[NLP] 5. Semantic Network Analysis 사회 연결망 분석(Social Network Analysis)은 분석 대상 및 분석 대상들 간의 관계를 연결망 구조로 표현하고 이를 계량적으로 제시하는 분석 기법이다.사회 연결망 분석은 사람, 장소, 물품 등의 객체 간의 관계를 분석하는데 효과적이며, 주로 친구 관계, 전력 공급 등을 분석하는데 사용한다. 사회 연결망 분석 기법을 텍스트 내 단어의 관계에 적용한 것이 바로 의미 연결망 분석이다.의미 연결망 분석에서는 일정한 범위 내에서 어휘가 동시에 등장하면 서로 연결된 것으로 간주하며, 이 연결 관계들을 분석한다.1. 어휘 동시 출현 빈도의 계수화동시 출현(Co-occurrence)란 두 개 이상의 어휘가 일정한 범위나 거리 내에서 함께 출현하는 것을 의미한다.단어 간의 동시 출현 관계를 분석하면 문서.. 2024. 8. 20.
[NLP] 4. Document Classification 문서 분류데이터 준비문서 분류에 필요한 데이터는 scikit-learn이 제공하는 20개의 주제를 가지는 뉴스그룹 데이터를 사용한다.텍스트는 CounterVectorizer를 거쳐 DTM으로 변환DTM은 문서에 등장하는 단어들을 빈도수 별로 표현한 행렬from sklearn.datasets import fetch_20newsgroupsfrom sklearn.feature_extraction.text import CountVectorizerfrom sklearn.model_selection import train_test_splitnews = fetch_20newsgroups()x = news.datay = news.targetcv = CountVectorizer()x = cv.fit_transform(x.. 2024. 8. 20.