자연어 처리

잠재의미분석 (LSA - Latent Semantic Analysis)

sihyeon3523 2024. 11. 3. 13:05

https://youtu.be/GVPTGq53H5I?feature=shared

 

pizza가 ramen 보다 hamburger랑 유사하다는걸 어떻게 알까? 

  • pizza
  • pizza hamburger cookie
  • hamburger
  • ramen
  • sushi
  • ramen sushi

Bag of words를 이용한다면 단어의 의미를 파악하지 못하고 단어 빈도수 기반이기에 서로 의미가 비슷하다는 걸 모른다.

Similarity(pizza, hamburger) = 0

Similarity(pizza, ramen) = 0

  pizza hamburger cookie ramen sushi
pizza 1 0 0 0 0
pizza hamburger cookie 1 1 1 0 0
hamburger 0 1 0 0 0
ramen 0 0 0 1 0
sushi 0 0 0 0 1
ramen sushi 0 0 0 1 1

 

TF-IDF 또한 마찬가지. pizza와 hamburger가 같은 단어를 가지고 있지 않기 때문에 유사도 = 0으로 나오게 된다.

TF-IDF와 Bag of words는 words 기반이지만, LSA 는 토픽 기반의 유사도를 측정한다.

 

LSA로 유사도 구하는 과정

word-document matrix = "A"

  pizza pizza hamburger cookie hamburger ramen sushi ramen sushi
(word) d1 d2 d3 d4 d5 d6
pizza 1 1 0 0 0 0
hamburger 0 1 1 0 0 0
cookie 0 1 0 0 0 0
ramen 0 0 0 1 0 0
sushi 0 0 0 0 1 0

 

A 를 특이값 분해를 통해 세개의 곱으로 나눠줄 수 있다. 

  • word matrix for topic 
  • Topic Strength (시그마 매트릭스)
  • Document matrix for topic (Vt)

세 개 중 Topic Strength와 Document matrix for topic 행렬에서 토픽 분류를 할 수 있는데,

Topic Strength 행렬은 토픽 중요도에 따라 내림차순으로 정렬이 되는데,,, t1, t2가 주요 토픽이다.

Ignore less than 1.7 토픽 2개만 남기고 나머지는 없앤다. 

https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-20-%ED%8A%B9%EC%9D%B4%EA%B0%92-%EB%B6%84%ED%95%B4Singular-Value-Decomposition

 

머신러닝 - 20. 특이값 분해(SVD)

이번 장에서는 특이값 분해(SVD)에 대해 알아보겠습니다. 고유값 분해에 대해 알고 있어야 특이값 분해를 이해할 수 있습니다. 고유값 분해를 잘 모르시는 분은 이전 장을 참고해주시기 바랍니다

bkshin.tistory.com

주요 토픽 2개를 가지고 (시그마, VT)를 곱해 계산하면 

  pizza pizza hamburger cookie hamburger      
  d1 d2 d3 d4 d5 d6
t1 0.57 1.57 0.57 0 0 0
t2 0 0 0 0.68 0.68 1.36