텍스트 마이닝 (52) 썸네일형 리스트형 감성 분석 (2) 8.2 감성 사전을 이용한 영화 리뷰 감성 분석 8.2.3 AFINN을 이용한 감성 분석 AFINN 어휘 목록은 덴마크의 핀 아럽 닐셀이 2009년부터 2011년까지 수작업으로 -5 에서 5 사이의 극성을 부여한 영어 단어들의 리스트 !pip install afinn from afinn import Afinn def sentiment_Afinn(docs): afn = Afinn(emoticons=True) results = [] for doc in docs: if afn.score(doc) > 0: results.append('pos') else: results.append('neg') return results print('#Afinn을 이용한 리뷰 감성분석의 정확도:', accuracy_score(c.. 감성 분석 (1) 8.1 감성분석의 이해 감성분석(Sentiment Analysis): 텍스트에 나타난 의견, 평가, 태도와 같은 주관적인 정보를 분석하는 것 감성: 어떤 대상에 대한 주관적인 감정으로 긍정, 중립, 부정으로 나뉘어짐 8.1.1 어휘 기반의 감성 분석 감성이 표현될 수 있는 명사, 형용사, 동사를 대상으로 모든 단어에 대해 긍정 혹은 부정의 감성을 붙여서 감성 사전을 구축한 후에, 이를 기반으로 텍스트에 대한 감성 분석을 수행하는 방식 특별한 경우가 아니면 외부의 감성 사전을 이용 8.1.2 머신러닝 기반의 감성 분석 학습을 위한 데이터셋이 필요함 머신러닝 기반의 감성 분석은 학습에 사용한 말뭉치의 영향을 많이 받음 8.2 감성 사전을 이용한 영화 리뷰 감성 분석 8.2.1 NLTK 영화 리뷰 데이터 준비.. 토픽 모델링으로 주제 찾기 (5) 7.4 토픽 트렌드로 시간에 따른 주제의 변화 알아내기 !pip install wget import os import wget import ssl data_dir = 'data' url = 'https://s3.ap-northeast-2.amazonaws.com/data10902/petition/petition_sampled.csv' ssl._create_default_https_context = ssl._create_unverified_context if not os.path.exists(data_dir): os.mkdir(data_dir) wget.download(url, data_dir) """ /usr/local/lib/python3.10/dist-packages/ipykernel/ipkernel.. 토픽 모델링으로 주제 찾기 (4) 7.3 Gensim을 이용한 토픽 모델링 7.3.2 혼란도와 토픽 응집도를 이용한 최적값 선택 from gensim.models import CoherenceModel cm = CoherenceModel(model=model, corpus=corpus, coherence='u_mass') coherence = cm.get_coherence() print(coherence) """ /usr/local/lib/python3.10/dist-packages/ipykernel/ipkernel.py:283: DeprecationWarning: `should_run_async` will not call `transform_cell` automatically in the future. Please pass the re.. 토픽 모델링으로 주제 찾기 (3) 7.3 Gensim을 이용한 토픽 모델링 7.3.1 Gensim 사용법과 시각화 Gensim: 토픽 모델링을 비롯해 의미적인 자연어 처리를 위한 다양한 라이브러리 !pip install --upgrade gensim import nltk nltk.download('stopwords') """ [nltk_data] Downloading package stopwords to /root/nltk_data... [nltk_data] Unzipping corpora/stopwords.zip. True """ # 필요한 library들을 import from nltk.corpus import stopwords from nltk.tokenize import RegexpTokenizer cachedStopWords =.. 토픽 모델링으로 주제 찾기 (2) 7.2 사이킷런을 이용한 토픽 모델링 7.2.1 데이터 준비 from sklearn.datasets import fetch_20newsgroups categories = ['alt.atheism', 'talk.religion.misc', 'comp.graphics', 'sci.space', 'comp.sys.ibm.pc.hardware', 'sci.crypt'] #학습 데이터셋을 가져옴 newsgroups_train = fetch_20newsgroups(subset='train', categories=categories) print('#Train set size:', len(newsgroups_train.data)) print('#Selected categories:', newsgroups_train.t.. 토픽 모델링으로 주제 찾기 (1) 7.1 토픽 모델링과 LDA의 이해 7.1.1 토픽 모델링이란? 텍스트 마이닝 기법 중에서 가장 많이 활용되는 기법 중 하나로, 다양한 문서 집합에 내재한 토픽, 주제를 파악할 때 사용하는 방법 구체적이고 명확하게 의미를 보여줄 수 있음 7.1.2 LDA 모형의 구조 LDA(Latent Dirichlet Allocation): 토픽 모델리에 가장 널리 쓰이는 기본적인 알고리즘 7.1.3 모형의 평가와 적절한 토픽 수의 결정 Perplexity: 혼란도, 혼잡도, 특정한 확률 모형이 실제로 관측되는 값을 얼마나 유사하게 예측해내는지를 평가할 때 사용, 값이 작을수록 좋음 토픽 응집도(coherence): 각 토픽에서 상위 비중을 차지하는 단어들이 의미적으로 유사한지를 나타내는 척도, 값이 클수록 좋음 토픽.. 차원축소 (3) 6.4 tSNE를 이용한 시각화와 차원축소의 효과 tSNE: 시각화를 위해 사용되는 비지도학습 알고리즘, 다차원 데이터 사이의 거리를 가장 잘 보존하는 2차원 좌표를 찾기 위해 사용 %matplotlib inline import matplotlib.pyplot as plt import matplotlib as mpl # 그래프에서 마이너스 폰트 깨지는 문제에 대한 대처 mpl.rcParams['axes.unicode_minus'] = False from sklearn.manifold import TSNE tfidf = TfidfVectorizer(tokenizer=tokenizer) X_train_tfidf = tfidf.fit_transform(X_train) # train set을 변환 X_test_.. 차원축소 (2) 6.3 LSA를 이용한 차원 축소와 의미 파악 LSA(Latent Semantic Analysis): 잠재 의미 분석 LSA에서 차원 축소는 SVD의 변형인 절단된 SVD(Truncated SVD)를 통해 이루어짐 6.3.1 LSA를 이용한 차원 축소와 성능 from sklearn.decomposition import TruncatedSVD svd = TruncatedSVD(n_components=2000, random_state=7) #압축할 component의 수 지정 X_train_lsa = svd.fit_transform(X_train_tfidf) X_test_lsa = svd.transform(X_test_tfidf) print('LSA Converted X shape:', X_train_lsa.. 차원축소 (1) 6.1 차원의 저주와 차원 축소의 이유 차원의 저주: 낮은 차원에서는 발생하지 않던 문제가 차원이 커지면서 발생하는 것 해결방법 데이터를 충분히 늘리는 것 BOW로 표현한 문서의 특성 수를 줄임 6.2 PCA를 이용한 차원 축소 PCA(Principal Component Analysis): 주성분 분석, 데이터의 분산을 최대한 보존하는 새로운 축을 찾아 변환함으로써 차원을 축소하고자 하는 방법 from sklearn.datasets import fetch_20newsgroups #20개의 토픽 중 선택하고자 하는 토픽을 리스트로 생성 categories = ['alt.atheism', 'talk.religion.misc', 'comp.graphics', 'sci.space'] #학습 데이터셋을 가져옴 n.. 이전 1 2 3 4 5 6 다음