목차 1. 한글 텍스트 처리 - 네이버 영화 평점 감성 분석 2. 텍스트 분석 실습 - 캐글 mercari price suggestion challenge 1. 한글 텍스트 처리 - 네이버 영화 평점 감성 분석 KoNLPy 소개 파이썬의 대표적인 한글 형태소 패키지 **형태소 분석 : 말뭉치를 형태소 어근 단위로 쪼개고 각 형태소에 품사 태깅을 부착하는 작업 ** 한글 형태소 엔진 -sns 분석에 적합한 twitter 클래스 이용 twitter 객체의 morphs() 메서드를 이요하면 입력 인자로 들어온 문장을 형태소 단어 형태로 토큰화해 list 객체로 반환함. *항상! 테스트 세트를 이용해 예측할 때는 학습할 때 적용한 TfidfVectorizer를 그대로 사용해야함. 그래야 학습시 설정된 Tfidf..
문서 유사도 문서와 문서 간의 유사도 비교는 일반적으로 코사인 유사도(Cosine Similarity)를 사용함. ** 코사인 유사도 : 벡터와 벡터 간의 유사도를 비교할 때 벡터의 크기보다는 벡터의 상호 방향성이 얼마나 유사한지에 기반함. → 두 벡터의 사잇각을 구해서 얼마나 유사한지 수치로 적용 두 벡터 사잇각 A * B = ||A||||B||cosθ 따라서, 유사도 cosθ는 두 벡터의 내적을 총 벡터 크기의 합으로 나눈 것 (내적 결과를 총 벡터 크기로 정규화한 것) **코사인 유사도가 문서의 유사도 비교에 가장 많이 사용되는 이유 : 문서를 피처 벡터화 변환하면 차원이 매우 많은 희소 행렬이 되기 쉬움. 희소 행렬 기반에서 문서와 문서 벡터 간의 크기에 기반한 유사도 지표(ex.유클리드)는 정확..
문서 군집화 소개와 실습(Opinion Review 데이터 세트) 문서 군집화 : 비슷한 텍스트 구성의 문서를 군집화 하는 것 ↔ 사전에 결정 카테고리 값을 가진 학습 데이터가 필요한 텍스트 분류 기반의 문서분류와 다르게, 문서 군집화는 학습 데이터 세트가 필요없는 비지도학습 (군집화) 기반으로 동작함. +TfidfVectorizer는 Lemmatization 같은 어근 변환을 직접 지원하지는 않지만, tokenizer 인자에 커스텀 어근 변환 함수를 적용해 어근 변환을 수행할 수 있음. 벡터화 수행해주고, k-평균 이용해서 군집화 해줌. → cluster_label(0, 1, 2..) 별로 filename 확인하면 어떻게 군집화 되어있는지 볼 수 있음. → 군집화된 결과 보면, 군집개수가 많게 설정 되..
토픽 모델링 - 20 뉴스그룹 토픽 모델링 : 문서 집합에 숨어 있는 주제를 찾아내는 것. 숨겨진 주제를 효과적으로 표현할 수 있는 중심 단어를 함축적으로 추출함. -LSA, LDA(Count 기반의 벡터화만 사용) from sklearn.datasets import fetch_20newsgroups from sklearn.feature_extraction.text import CountVectorizer from sklearn.decomposition import LatentDirichletAllocation # 모터사이클, 야구, 그래픽스, 윈도우즈, 중동, 기독교, 의학, 우주 주제를 추출. cats = ['rec.motorcycles', 'rec.sport.baseball', 'comp.graph..
감성 분석 : 문서의 주관적인 감성/의견/감정/기분 등을 파악하기 위한 방법으로 소셜미디어, 여론조사, 온라인 리뷰, 피드백 등 다양한 분야에서 활용되고 있음. : 문서 내 텍스트가 나타내는 여러가지 주관적인 단어와 문맥을 기반으로 감성 수치를 계산하는 방법 이용. : 긍정 감성 지수와 부정 감성 지수로 구성되며 이들 지수를 합산해 긍정감성 또는 부정감성을 결정함. 지도학습의 방식 : 학습 데이터와 타깃레이블 값을 기반으로 감성분석 학습을 진행한 뒤 이를 기반으로 다른 데이터의 감성 분석을 예측하는 방법으로 일반적인 텍스트 기반의 분류와 거의 동일. 비지도 학습의 방식 ‘Lexicon’이라는 일종의 감성 어휘사전 이용, 감성 분석을 위한 용어와 문맥에 대한 다양한 정보를 가지고 있으며, 이를 이용해 문서..
텍스트 분류 실습(20 뉴스그룹 분류) 텍스트를 피처 벡터화로 변환하면 일반적으로 희소행렬 형태가 되고, 이러한 희소 행렬에 분류를 효과적으로 잘 처리할 수 있는 알고리즘은 로지스틱 회귀, 선형 서포트 벡터 머신, 나이브 베이즈 등임. ** subset 파라미터 이용하면 학습 데이터 세트와 테스트 데이터 세트를 분리해 내려받을 수 있음. from sklearn.datasets import fetch_20newsgroups #subset = 'train'으로 학습용 데이터만 추출, remove=('headers', 'footers', 'quotes')로 내용만 추출 fetch_20newsgroups(subset='train', remove=('headers', 'footers', 'quotes'), ran..