NLP 의미 분석 및 감정 분석: Word2vec & VADER 활용
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

NLP - 의미 분석과 감정 분석

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인공지능, 머신러닝

대상자

  • 소프트웨어 개발자데이터 과학자
  • 중간~고급 수준 (벡터 연산, NLP 모델 이해 필요)

핵심 요약

  • Word2vecCBOWskip-gram 두 방식으로 텍스트의 의미 유사도를 수치화하여 표현함.
  • spaCyen_core_web_lg 모델은 300차원 벡터를 제공하며, nlp().vector로 문서 및 단어 벡터를 추출 가능.
  • VADER감정 분석에 특화된 도구로, nltk에서 제공하며 대소문자, 강조 기호를 고려해 감정 점수 계산.

섹션별 세부 요약

1. Word2vec의 기본 개념

  • CBOW는 주변 문맥으로 중심 단어를 예측, skip-gram은 중심 단어로 문맥을 예측하는 반대 방식.
  • 단어 벡터는 300차원으로 표현되며, 100~1000 차원 범위에서 훈련 가능.
  • en_core_web_lg 모델은 word2vec 벡터 포함, sm 모델은 포함하지 않음.

2. spaCy를 통한 벡터 활용

  • DocSpan 객체는 토큰 벡터의 평균으로 생성 가능 (예: nlp('The quick brown fox...').vector).
  • token.similarity()코사인 유사도를 기반으로 단어 간 유사도 계산.
  • nlp.vocab.vectors.shape로 벡터 차원 확인 가능.

3. 벡터 연산 및 예제

  • king - man + woman = queen과 같은 벡터 산술로 성별/직책 관련 관계 유추 가능.
  • scipy.spatial.distance.cosine을 이용한 유사도 계산 예제 제공.

4. VADER 감정 분석 도구

  • VADER사전 기반 감정 분석으로, nltk에서 제공.
  • 강한 감정 표현(LOVE!!!, WORST)을 고려해 점수 계산.
  • 사기 언어는 감지 불가능 (예: "I love this movie, but it's the worst!").

결론

  • Word2vecspaCyen_core_web_lg 모델을 활용해 빠르게 구현 가능.
  • 감정 분석은 VADER비지도 학습 기반으로 처리, nltk에서 직접 사용.
  • 대규모 텍스트 처리 시 사전 훈련된 벡터 모델 사용을 권장.