[TIL] Count-based Representation

lena_log·2022년 3월 2일
0

Codestates Section4

목록 보기
5/12
post-thumbnail

자연어

사람들이 일상적으로 쓰는 언어

  • 자연어가 아닌 것
    • 에스페란토어, 코딩 언어

자연어 처리 Task

  1. 자연어 이해
  • 분류: 뉴스기사분류, 감성분석
  • 자연어 추론
  • 기계독해, 질의 응답
  • 품사 태깅, 개체명 인식 등
  • 추출 요약
  1. 자연어 생성
  • 텍스트 생성(특정 도메인의 텍스트 생성)
  • 뉴스 기사 생성하기, 가사 생성하기
  1. NLU & NLG
  • 기계번역
  • 생성요약: 해성 문서를 요약하는 요약문을 생성
  • 챗봇
    • 특정 테스크를 처리하기위한 챗봇(TOD)
      ex) 식당예약챗봇, 상담 응대 챗봇
    • 정해지지 않은 주제를 다루는 일반대화 챗봇(OOD)

벡터화

컴퓨터 자연어 이해 못함 => 벡터로 바꿔주는 과정

  1. 등장 횟수 기반 단어표현
    : 단어가 문서(혹은 문장)에 등장하는 횟수를 기반으로 벡터화하는 방법
  • bag-of-words
  • tf, tf-idf
  1. 분포기반 단어 표현
    : 타겟 단어 주변에 있는 단어를 기반으로 벡터화 하는 방법
  • word2vec
  • fastText

텍스트 전처리

  • 내장 매서드 사용(lower, replace)
  • 정규 표현식(stop words)처리
  • 불용어 처리
  • 통계적 트리밍
  • 어간추출, 표제어 추출

?전처리는 왜 할까요?

  1. 차원의 저주!
    : 특성의 개수가 선형적으로 늘어날 때 동일한 설명력을 가지기 위해 필요한 인스턴스의 수는 지수적으로 증가한다 즉, 동일한 개수의 인스턴스를 가지는 데이터 셋의 차원이 늘어날 수록 설명력이 떨어진다

  2. 대소문자 통일
    대소문자로 통일하여 같은 범주로 맞춰준다

  3. 정규표현식(Regex)

  • 구두점, 특수문자 등 필요없는 문자가 말뭉치에 있을 경우 토큰화가 이루어지지 않음
  1. SpaCy로 쉽게 처리
    : 문서 구성요소를 다양한 구조에 나누어 저장하지 않고 요소를 색인화 하여 검색 정보를 간단히 저장하는 라이브러리

  2. 불용어 처리
    제품 리뷰를 이해하는데 있어 도움이 되지 않는 의미가 없는 단어들(the, and, i등등)

  3. 통계적 트리밍
    :불용어 처리와 같이 직접 단어를 추가하여 제거하지 않고 말뭉치 내에서 너무 많거나 적은 토큰을 제거

  4. 어간추출

  • 어간이란
    : 단어의 의미가 포함된 부분으로 접사등이 제거된 형태로 어근이나 단어의 원형과 같지 않을수 있음

어간추출은 ing, ed, s등과 같은 단어의 앞/뒷부분을 단순히 제거

  1. 표제어 추출
    : 사전형 단어 형태인 Lemma로 변환됨
  • 명사의 복수형은 단수형으로 동사는 모두 타동사로 변환

등장 횟수 기반의 단어 표현

: 단어가 특정 문서(혹은 문장)에 들어있는 횟수를 바탕으로 해당문서를 벡터화 함

  1. Bag of words(BoW): TF(term frequency)
    : 문서 혹은 문장에서 문법이나 단어의 순서 등은 무시하고 단어드르이 빈도만 고려하여 벡터화
    sklearn의 CounterVectorizer를 사용하면 TF방식으로 문서를 벡터화 함

  2. Bag of words(BoW): TF-IDF(term frequency-inverse document frequency)

  • 다른 문서에 적게 등장하는 단어에 가중치를 두는 방법
    파라미터 있는거 확인하기(sh트1)
profile
안녕하세요. 기억보다 기록을 믿는 레나입니다!

0개의 댓글