Tutorial_0723_after

단어 벡터화 ⚖️

띄어쓰기나 맞춤법에 따라 다른 의미 -> 그래서 텍스트 전처리가 필요!

[ 텍스트 데이터 정제 및 전처리] 🏸

(1) 데이터 정제 및 전처리

  • 기계가 텍스트를 이해할 수 있도록 텍스트를 정제

  • 신호와 소음을 구분

  • 아웃라이어데이터로 인한 오버피팅을 방지

    • HTML Tag, 특수문자, 이모티콘

    • 정규표현식

    • 불용어 (stopword)

      ex) 조사, 접미사 -나, 너, 은, 는, 이, 가, 하다, 합니다 등
      
      • 일반적으로 코퍼스에서 자주 나타나는 단어로, 학습이나 예측 프로세스에 실제로 기여하지 않는 단어들.
      • 영어는 불용어 Dataset 잘 되어 있지만 한국어에 쓸만한 건 없다.
    • 어간추출 (stemming)

      ex) 새로운, 새로울 -> 새롭다
          먹었다, 먹을, 먹을지도 모르는 -> 먹다
      
      • 단어를 축약형으로 바꿔준다. 의미가 통하도록 축약하여 어간을 추출한다.
    • 음소표기법 (lemmatizing)

      • 어간추출을 했을 때 의미가 부딪힐 위험이 있는 동음이의어 등의 단어들을 처리하는 방법
      • 품사 정보가 보존된 형태의 기본형으로 변환

정규화(normalization) 토큰화(tokenization) 어근화(stemming) 어구추출(phrase extraction)


[ 텍스트 데이터 벡터화 ] 🍡

머신러닝 알고리즘은, 0과 1밖에 모르는 기계에게 인간의 언어를 알려주기 위한 절차이다. 컴퓨터는 숫자만 인식할 수 있기 때문에 수치로 바꾸어 바이너리 코드로 처리해주어야 한다.

(1) 텍스트 데이터, 범주형 데이터 => 수치형데이터

- 머신러닝이나 딥러닝 알고리즘은 수치로된 데이터만 이해

(2) One Hot Vector

  • 텍스트 데이터나 범주형 데이터를 수치형 데이터로 바꾸어 주어야 한다. 벡터에서 해당되는 하나의 데이터만 1로 변경해 주고, 나머지는 0으로 채워준다. 이 행렬을 Random Forests와 Decision Tree에 넣어준다.

(3) BOW (bag of words)

  • 가장 간단하지만 효과적이라 널리쓰인다.
  • 구조에 상관없이 단어의 출현횟수만 센다.

  • 단어는 같지만 문장 구조나 순서가 달라 뜻이 완전히 달라지는 문장들을 완전히 동일하게 반환한다는 단점이 있다. 이를 보완하기 위해 n-gram을 사용하여 의미가 보존되도록 n개의 토큰을 사용한다.

  • n-gram : uni-gram, bi-gram, tri-gram 등으로 구분. (묶어주는 토큰의 개수에 따라). bi-gram (1,2)나 tri-gram(2,3) 등을 사용하면 토큰 개수를 섞어서 사용할 수 있다.

(4) TF-IDF (Term frequency Inverse document frequency)

TF (단어 빈도, term frequency)

: 특정한 단어가 문서 내에서 얼마나 자주 등장하는지를 나타내는 값

이 값이 높을 수록 문서에서 중요한 단어라고 생각할 수 있지만 단어 자체가 문서군 내에서 자주 사용되는 경우 이것은 그 단어가 흔하게 등장한다는 것을 의미

DF (문서 빈도, document frequency)

: 문서군 내에서 자주 사용됨

IDF (역문서 빈도, inverse document frequency)

: 값의 역수

  • 이를테면 전체 청원에서 '초등학교'라는 키워드는 자주 등장하지 않지만, 보육과 관련된 특정 청원에서는 이 단어가 자주 등장한다.
  • TF-IDF는 TF와 IDF를 곱한 값이다.

(4) Word2Vec

  • 딥러닝 기반 알고리즘.
  • 유사한 벡터를 근처에 배치하기 때문에, 추천 시스템에도 많이 쓰인다.
  • CBOW (continuous bag-of-words), Skip-Gram
    • CBOW : 전체 텍스트로 하나의 단어를 예측하기 때문에, 작은 데이터셋일 수록 유리하다.
    • Skip-Gram : 타겟 단어들로부터 원본 단어를 역으로 예측하는 것으로, CBOW와는 반대로 컨텍스트-타겟 쌍을 새로운 발견으로 처리하고 큰 규모의 데이터셋일수록 유리하다.

vector size가 매우 크로 sparse하므로 neural net 성능이 잘 나오지 X


[ 텍스트 데이터 시각화] 💎

  • 워드클라우드
  • 청와대 국민청원 데이터
  • IMDB 영화뷰 데이터
  • 단어 수 혹은 문장길이, 특수문자, 불용어 갯수 등을 시각화
  • 작가별 품사 사용에 대한 시각화
  • 작가별 단어개수 시각화
(1) Word2Vec으로 벡터화하고, 일부 데이터를 차원축소 기법으로 줄여서 표현
  • 비슷한 단어끼리 비슷한 위치에 분포
  • 조사와 불용어가 섞여 있어 데이터 정제 필요

    (2) 작가별 품사 사용, 단어 개수, 소설에 자주 등장하는 단어


[ 자연어 처리로 할 수 있는 일 ] 👉

  • 자동 요약, 맞춤법 수정, 스팸메일 검출, 분류, 자동답변, 고객센터, 챗봇, 기계번역, 추천, 감정분석 등
  • 자연어 처리에서 활용하기
    • Classification : 스팸메일 분류
    • Regression : 리뷰 평점 예측
    • Clustering : 비슷한 메일끼리 모으기
    • Dimensionality reduction : 차원 축소 기법으로 시각화

results matching ""

    No results matching ""