# LDA

토픽 모델링(Topic Modeling)이란?
토픽 모델링(Topic Modeling)이란 텍스트 마이닝 기법 중에서 가장 많이 사용되는 방법이라고 할 수 있습니다. 저 역시 토픽 모델링을 활용하여 많은 논문을 게재하였으며, 텍스트 마이닝을 할 때 유용하게 사용하고 있습니다. 토픽 모델링은 주로 대량의 문서를 분석하기 위해 사용되는 방법으로, 분석에 사용되는 데이터가 상당히 중요하다고 할 수 있습니다. 1. LDA(Latent Dirichlet Aollocation) 1.1. 개요 LDA(Latent Dirichlet Aollocation)의 기본적인 가정은 문서에는 그 문서를 구성하는 여러 토픽이 존재하며, 각 토픽은 단어들의 집합으로 구성되었다는 것입니다. Latent(잠재적인)의 의미는 토픽이 글에서 명시적으로 확인되지 않기 때문에 붙여진 이름입니다. 그리고 Dirichlet Aollocation은 문서의 토픽 분포가 디리클레 분포를 따르기 때문인데 디리클레 분포란 연속 확률 분포 중 하나로 모든 값을
선형판별분석 Linear Discriminant Analysis (작성중)
시작하기 전에 분류기법 종류 확인하기 질적 반응변수를 예측하는데 사용될 수 있는 분류기는 아래와 같은 기법이 있다. 로지스틱 회귀(logistic regression) 선형판별분석(linear discriminant analysis) K-최근접이웃(k-nearest neighbor hood) 일반화가법모델(generalized additive model) 트리(tree) 랜덤포레스트(random forest) 부스팅(boosting) 서포트 벡터 머신(support vector machine) LDA LDA 분류기는 개별 클래스 내의 관측치들이 클래스 특정(클래스 별) 평균 벡터와 클래스 공통의 분산 $\sigma^{2}$을 갖는 정규분포를 따른다는 가정 하에 이 파라미터에 대한 추정값을 베이즈 분류기에 대입하여 얻는다. 즉, 개별 클래

주제 다양도(topic diversity)
LDA와 같은 주제분석을 할 때 평가를 위한 지표로 Perplexity, 주제 응집도, 주제 다양도 등이 있다. (관련 내용에 대한 이전 블로그 글) 주제 응집도는 주제를 구성하는 단어들이 서로 연관된 정도를 측정하는 것이 목적이다. 즉, 한 주제에 대해서 단어들이 얼마나 관계가 있느냐를 보는 것이다. 주제 다양도는 주제들끼리 얼마나 관련이 없는지를 측정한다. 여러개의 주제가 있다면 서로 다른 주제여야 주제 분석의 의미가 있다. 주제 다양도는 학계에 널리 알려진 지표는 아직 없지만 Dieng,Ruiz,&Blei(2019)가 논문에서 제안한 측정 방법이 있다. > 주제별 상위 25개에 포함되는 중복 제외 단어 수 / (주제 수 x 25) 예를 들어, 주제가 5개가 있다고 했을 때, 각 주제별로 상위 단어 25개씩 뽑는다면 총 1

주제 분석(Topic Analysis)
주제 분석의 방법 중 행렬 분해에 의한 방법과 확률 분포에 의한 방법이 있다. 그 중 행렬 분해애 의한 방법은 크게 LSA(Latent Semantic Analysis)와 NMF(Non-Negative Factorization)로 나눌 수 있다. LSA는 잠재 의미를 분석한다는 뜻으로 단어 문서 행렬을 여러 행렬의 곱으로 분해해서 잠재 의미를 추출하는 방식이다. 즉 단어 문서 행렬 $X$를 $ZW$의 형태로 분해해서 표현한다. $Z$는 말하자면 주제, $W$는 가중치이다. 보통 $Z$는 $X$보다 차원이 축소된 형태이다. ( $X : mn, Z : mk, W: k*n$) LSA에서 행렬을 분해하는 방식은 다양하나 그 중 SVD(Singular Value Decomposition)가 대표적이다. SVD는 $m*n$ 크기의 단어 문서 행렬 M을 $U\sum V^T$형태의 행렬의 곱으로 분해한다. TruncatedSVD 방식은 SVD에서 $U, \sum$, $V^T$에서 k개의

[2022 NLP 트렌드] EMNLP Accepted paper와 LDA를 활용한 토픽 모델링
들어가며... 얼마 전 EMNLP 홈페이지를 들어갔는데 Accepted paper 목록이 올라와 있는 것을 보았다 (링크 : https://2022.emnlp.org/) 트렌드에 예민한 딥러닝 분야를 연구하는 한 사람으로서, 현재 최신 연구 트렌드가 무엇인지는 항상 관심의 대상이 될 수밖에 없는데 문득 paper list를 바탕으로 토픽 모델링을 해보면 어떨까 궁금해졌다 사용한 데이터와 모델 사용한 데이터는 EMNLP 2022에 올라온 Accepted paper list다. 최신 트렌드를 확인하기 위해서 모델은 전통적으로 토픽 모델링에 주로 활용되고 있는 LDA (Latent Dirichlet Allocation)을 사용하기로 했다. 분석방법 전처리 우선 내가 사용하려고 하는 데이터는 전처리가 전혀 되어 있지 않은 Raw data 그 자체이므로 적절한 전처리가 필요했다. **데이터는 Accepted

PCA/LDA 응용
데이터소개 iris는 Setosa, Versicolour, Virginica의 3가지 종류의 꽃에 대해서 꽃잎(petal)과 꽃받침(sepal)의 길이(length)와 너비(width)를 나타낸 데이터이다. iris 데이터에서 특징을 이용해 꽃의 종류를 구별할 수 있다. 데이터분석 꽃의 종류을 구별 Setosa, Versicolour, Virginica 꽃의 특징을 구별 꽃받침의 길이와 넓이, 꽃잎의 길이와 넓이로 총 4가지 총 데이터의 개수와 dim dimension을 나타내는 d=4, 총 데이터의 개수는 n=150 아래와 같이 전체 데이터는 4 column데이터가 된다. 실습 실습을 위해 아래의 코드를 상단에 입력한다. iris 데이터를 불러온다. 데이터를 시각

파이썬 머신러닝 완벽 가이드 - 7. Dimension Reduction(1) (PCA, LDA)
Dimension Reduction 차원 축소 : 매우 많은 피처로 구성된 다차원 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것 다차원 데이터 세트의 문제점 차원이 증가할 수록 데이터 포인트 간의 거리가 기하급수적으로 멀어지고, 희소한Sparse 구조를 가져 예측 신뢰도가 떨어진다. 다중공선성 문제(독립변수 간의 상관관계가 높은 것)로 예측 성능 저하 회귀분석의 전제 가정 위배 : 독립변수간 상관관계는 높으면 안된다 차원 축소의 분류 피처(특성) 선택 : 특정 피처에 종속성이 강한 불필요 피처는 아예 제거 + 데이터 특징 잘 나타내는 주요 피처만 선택 피처(특성) 추출 : 기촌 피처를 저차원의 중요 피처로 압축하여 추출 ⇒ 기존 피처와 완전히 다른 새로운 값이 됨 단순 압축이 아닌, 피처를 합축적으로 더 잘 설명할 수 있는 또 다른 공간으로 매칭하여 추출하는 것
[CS224n #3] Topic Modeling - LSA/LDA/ BERTopic
0. Summary Topic modeling : corpus 집합에서 통계적 분석 방식을 사용해서 문서의 context를 담고 있는 유의미한 word를 뽑아내고 representation 만들기. DTM : Document-Term Matrix / 문서 단어 행렬 키워드로 보는 Method LSA : #유사도, #토픽 모델링 아이디어 시초 #SVD LDA : #확률분포, #문서별 토픽분포 추가 BERTopic : #SOTA, #clustering, #class-based TF-IDF, #BERT keypoint! 각 method별 한계와 극복 방법 + 최신엔 어떤 걸 쓰고 있나? > - LSA paper : [Landauer, T. K., Foltz, P. W., & Laham, D. (1998). An introduction to latent semantic analysis.

PCA & LDA
데이터셋에 대해 이야기 할 때, 차원이란 feature와 동의어입니다. 차원 축소의 기법인 PCA 와 LDA에 대해 공부하고, 두 방식의 공통점과 차이점에 대해 서술하세요. PCA(Principal Component Analysis:주요 구성 요소 분석) : feature값의 평균을 기점으로 Eigen value Decomposition(고윳값 분해)을 통해서 공분산 행렬, 고윳값, 고유 벡터를 구한 뒤 고유 벡터를 기준으로 한 축으로 볼 때 분산이 제일 넓게 투영된 것입니다. 이렇게 PCA를 하는 목적을 최적의 Feature를 선택한다고 해서 Feature Selection(특징 선택)이라 하거나 n개의 Feature를 n-1개 이하의 Feature로 감소시킨다고 하여 Feature Dimension Reduction(기능 차원 축소)이라고도 합니다. LDA(Linear Discriminant Analysis:선형 판별 분석) : 기본적으로 어떤 축이

EVD, SVD, PCA, LDA
사전 수학 개념들 기저? 백터공간 V에 대하여 임의의 벡터집합 S가 ① 서로 1차 독립이면서 ② 벡터공간 V를 생성하면 S는 V의 기저이다. 즉, 기저라 함은 특정 벡터 공간을 선형 생성하는 선형 독립인 벡터들로, S가 N 차원의 기저이면 N개의 벡터로 이루어져 있다. 이때 기저의 크기는 일반적으로 길이가 1인 단위벡터로 표시한다. (크기보다는 방향이 중요하기 때문이다.) 고유값, 고유벡터 행렬 A에 대해 다음 식을 만족한다고 가정하자. $$ Ax = λx $$ 이때, λ는 고유값으로 스칼라라고도 한다. 또한 이때 x를 고유벡터라고 한다.

Everything about PCA#3
오늘은 지난시간에 이어 LDA실습을 colab환경에서 진행해 보려 한다. Importing the libraries = Importing the dataset = Splitting the dataset into the Training set and Test set = Feature Scaling = 
Everything about PCA#2
지난시간에 이어서 모델의 성능향상을 위한 '차원축소'에 관하여 다루고있는데, 오늘은 LDA에 대하여 포스팅해보려 한다. 이둘의 차이점, 공통점을 알아보며 쉽게 이해해보도록 하자! PCA,LDA = 공통점 차원축소 기술로 사용됨. == 유의미한 feature추출에 능이. 패턴분류와 머신러닝 알고리즘의 전처리 과정에 사용됨. 더 낮은 차원적 공간에 데이터세트를 투영하는것을 목표로함. 차이점 위의그림처럼 PCA는 주성분 축들의 연관성을 검토, L

국민청원 데이터 수집 및 토픽 모델링
R을 사용하여 국민 청원 데이터를 수집 및 분석하는 작업을 진행해보았습니다. 과정은 > 1. 데이터 수집 > 2. 데이터 분석 두 과정으로 나누어서 기술하도록 하겠습니다! 제가 진행한 개인 프로젝트에 대한 소개 글로 수집 기술, 분석 기술에 대한 이론적인 정리나 자세한 설명까지는 담지 못하였습니다. 이러한 과정으로 진행하였고 이렇게 결과물을 뽑아낼 수 있구나 정도로 이해해주시면 감사하겠습니다. 혹시 궁금한 부분이 있다면 댓글 남겨주시면 확인하는 대로 답변 드리겠습니다! 1. 데이터 수집 > 1. 국민 청원 페이지 구조 확인 > 2. 페이지 규칙을 찾아서 해당 부분 반복 처리 > 3. 게시글로 이동할 수 있는 url link 수집 > 4. url link를 차례대로 순회하며 해
텍스트 벡터화
Word2Vec의 대중화 이전에, 텍스트의 분포를 활용하여 텍스트를 벡터화하는 아이디어를 들여다보자. 단어 빈도를 이용한 벡터화 (1) Bag of Words (2) Bag of Words 구현해보기 (3) DTM과 코사인 유사도 (4) DTM의 구현과 한계점 (5) TF-IDF (6) TF-IDF 구현하기 LSA와 LDA (1) LSA (2) LSA 실습 (3) LDA (4) LDA 실습 텍스트 분포를 이용한 비지도 학습 토크나이저 (1) 형태소 분석기와 단어 미등록 문제 (2) soynlp 텍스트를 벡터화하는 방법으로는 (1) 통계와 머신러닝 활용, (2) 인공 신경망을 활용하는 두가지 방법이 있다. 이번엔 전자의 방법으로 가보자 [BoW, DTM, TF-IDF 차이](https://m.blog.naver.com/PostView.naver?isHttpsRed

LDA 토픽 모델링으로 콘텐츠 리뷰를 분석하자
저는 얼마 전까지만 해도 리뷰 분석을 위해 LDA 토픽 모델링을 적극적으로 활용했습니다. 다른 분석들 보다도 어떤 주제에 대해 여론이 형성되었는지 확인하기 편리해서 특히 연구를 시작하는 단계에서 한번 해볼만한 분석이죠. 물론 토픽모델링 자체로도 하나의 연구가 될 수도 있고요! 이번에는 LDA 토픽 모델링으로 콘텐츠 리뷰를 분석해보겠습니다. 1. 데이터 전처리 우선 데이터를 수집해보겠습니다. 콘텐츠에 대한 의견이 담겨있는 많은 텍스트 데이터가 필요하겠죠. 저는 트위터를 선택했고, 넷플릭스 드라마 에 대한 트윗을 분석하기로 했습니다. 데이터는 아래처럼 수집되었습니다. 데이터를 보니 별다른 내용 없이 URL만 있는 경우가 많았는데요, 이런 경
Topic modeling(LSA, LDA)
Topic modeling의 두 가지 알고리즘을 구현해 보자. ▪ LSA(잠재의미 분석) >LSA(Latent Semantic Analysis)는 DTM이나 TF-IDF 행렬에 Truncated SVD를 사용하여 차원을 축소시키고, 단어들의 잠재 의미를 끌어낸다. ✅ 영어 버전 구현(fetch_20newsgroups dataset) ▪ LDA(잠재 디리클레 할당) >LDA(Latent Dirichlet Allocation)은 문서 집합에서 존재하는 토픽을 찾는 알고리즘으로, 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출한다. ✅ 영어 버전 구현(fetch_20newsgroups dataset) ✅ 한글 버전 구현(customed-data) > 1:1 문의내역 데이터를 dataset으로 설정하여 분석을 진행했다. ◾ Reference <a href
Latent Dirichlet Allocation, LDA
토픽 모델링 : 문서의 집합에서 토픽을 찾아내는 프로세스(문서의 주제를 알아내는 일) ★잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)은 토픽 모델링의 대표적인 알고리즘 > LDA : 토픽들의 혼합으로 구성되어져 있으며, 토픽들은 확률 분포에 기반하여 단어들을 생성한다고 가정한다. 데이터가 주어지면 LDA는 문서가 생성되는 과정을 역추적한다. [개요] LDA를 수행할 때 문서 집합에서 토픽이 몇 개가 존재할지 가정하는 것은 사용자가 해야 할 일 a-모델의 성능에 영향을 주는 / b-사용자가 직접 선택하는 매개변수 : 하이퍼 파라미터(머신 러닝 용어) → 하이퍼 파라미터의 선택은 여러 실험을 통해 얻은 값일 수도 있고 우선 시도해보는 값일 수도 있음 빈도수 기반의 표현 방법인 BoW의 행렬 DTM 또는 TF-IDF 행렬로 입력 ★단어의 순서는 신경 쓰지 않는다! 가정 : 문서가 작성 될 때 그 문서의 작성자는 이
차원축소
차원축소 많은 피처로 구성된 데이터세트의 경우, 상대적으로 적은 차원에서 학습된 모델보다 예측 신뢰도가 떨어진다. 또한 개별 피처간에 상관관계가 높을 가능성도 크다. 선형회귀와 같은 선형 모델에서는 입력 변수 간의 상관관계가 높을 경우 이로 인한 다중공선성 문제로 모델의 예측 성능이 저하된다. 다차원의 피처를 차원 축소해 더욱 직관적으로 데이터를 해석할 수 있다. 차원 축소를 통해 시각적으로 데이터를 압축해서 표현할 수 있다. >다중공선성 : 통계학의 회귀분석에서 독립변수들 간의 강한 상관관계가 나타나는 문제 회귀분석의 가정 (선형, 독립성, 등분산, 정규)에서 피처 간에 독립성을 만족하지 못할 경우 발생한다. 차원축소 방법 피처 선택 : 특정 피처에 종속성이 강한 불필요한 피처는 아예 제거하고 데이터 특징을 잘 나타내는 주요 피처만 선택하는 방법 피처 추출 : 기존 피처 단순 압축이 아닌, 피처를 함축적으로 더 잘

머신러닝 - LDA (Linear Discriminant Analysis)
1. LDA 이란? 선형판별분석(Linear Discriminant Analysis, LDA)는 Classification(분류모델)과 Dimensional Reduction(차원 축소)까지 동시에 사용하는 알고리즘이다. LDA는 입력 데이터 세트를 저차원 공간으로 투영(projection)해 차원을 축소하는 기법이며 지도학습에서 사용된다. (PCA는 비지도 학습에 사용된다) LDA는 아래와 같은 두 가지 성질을 가진 벡터를 찾는다. 데이터 포인트들을 투영시켰을 때 각 클래스에 속하는 투영들의 평균간의 거리의 합이 최대가 되게 하는 벡터. 다른 말로, 클래스 간(between-class)의 거리가 최대가 되게 하는 벡터. 데이터 포인트들을 투영시켰을 때 클래스 내의 투영들의 분산이 최소가 되게 하는 벡터. 다른 말로, 클래스 내(within-class)의 분산이 최소가 되게 하는 벡터. LDA는 클래스 내

FastText 와 LDA 이해하기
이번에 프로젝트를 마무리 함에 있어서 FastText 와 LDA에 대해 다시 한 번 정리하는 시간을 가져보고자 한다. LDA 탄생 계기 우선 LDA 즉 잠재 디리클레 할당에 대해서 이해 하기 위해서 토픽 모델링과 기존에 작성하였던 TF-IDF로 추천 시스템 구현하기를 읽어 보면 이해하기 쉽다. TF-IDF 추천시스템 구현하기 TF-IDF 에서 단점으로 말했던 것처럼 단어의 의미