텍스트 분석과 자연어 처리

서효정·2022년 7월 21일
0

TIL

목록 보기
1/3
post-thumbnail

자연어 처리(NLP)

자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일
기계에게 인간의 언어를 이해시키는 인공지능의 한 분야

자연어 처리를 활용한 일

음성인식, 내용요약, 번역
사용자의 감정분석, 질의 응답 시스템

머신러닝 활용 자연어 분류 과정

1. 데이터 정제 및 전처리
텍스트를 정제하여 신호와 소음 구분, 이상치로 인한 오버피팅 방지

2. 텍스트 데이터 전처리

3. 데이터 나누기
train_test_split

4. 텍스트 데이터 벡터화
BOW, TF-IDF
학습세트 X_train, y_train > 학습 fit(X_train, y_train)
예측세트 X_test, y_test > 예측 predict(X_test)
평가 evaluate(y_test, y_predict)

데이터 전처리 과정

정규표현식(Regular Expression: re)
: 특정한 규칙을 가진 문자열의 집합
<정규표현식 참고>

토큰화(Tokenization)
: 문자열을 토큰으로 나누는 것

  • 토큰: 문자열 분석을 위한 문자열 단위
  • nltk 모듈

정제(Cleaning), 정규화(Normalization)

  • 정제: corpus로부터 노이즈 제거
  • 정규화: 단어들의 표현방법을 통일시킴 (ex. 대소문자 변경)

어간추출(Stemming), 표제어표기법(Lemmatization)

  • 어간추출:단어 형식을 의미가 있거나 무의미한 줄기로 축소 (원형잃음)
    ex) '보다', '보았다', '볼까', '봤었다' => '보다' 로 처리
  • 표제어표기법: 단어 형식을 언어학적으로 유효한 의미로 축소 (원형보존)

불용어(Stopword)
: 전처리 기준을 빈도수 기준으로 하면 조사, 접미사와 같이 의미가 없지만 빈도수는 높은 단어들을 일컫는 말

  • NLTK, SpaCy, Gensim 라이브러리

한국어 자연어처리 라이브러리

KoNLPy

  • 형태소 토큰화
  • Hannanum, Kkmam Komoran, Mecab, Open Korean Text

soynlp

  • 단어추출, 토크나이저, 품사판별, 전처리

워드 임베딩

원핫인코딩(One-Hot Encoding)

  • 텍스트 데이터, 범주형 데이터 > 수치형 데이터
  • 해당하는 데이터는 1로, 나머지는 0으로 처리

BOW(Bag of Words)

  • 단어의 순서고려 X
  • 단어들의 출연빈도에 따른 텍스트 데이터 수치화

N-gram 언어모델(N-gram Language Model)

  • 모든 단어가 아닌 일부 단어만 고려
  • n: 단어의 수

문서 단어 행렬(DTM: Document-Term Matrix)

  • 다수의 문서에 등장하는 각 단어들의 빈도를 행렬로 표현

TF(단어빈도, Term Frequency)

  • TF : 특정 단어가 문서 내에 등장하는 빈도, 높을수록 중요
  • DF : 특정 단어가 등장한 문서의 수
  • IDF : 역문서 빈도 (DF의 역수)
  • TF-IDF : TF * IDF,
    여러문서로 이루어진 문서군에서 어떤 단어가 특정문서 내에서 얼마나 중요한 것인지 나타내는 통계적 수치
    높을수록 중요

scikit-learn feature_extraction

feature_extraction.DictVectorizer()
: 특성-값 매핑 목록 벡터로 변환
feature_extraction.CountVectorizer()
: 텍스트 문서 모음 토큰 수의 행렬로 변환
feature_extraction.HashingVectorizer()
: 텍스트 문서 모음 토큰 발생 매트릭스로 변환
feature_extraction.TfidfTransformer()
: 카운트 행렬 정규화된 tf/tf-idf 표현으로 변환
feature_extraction.TfidfVectorizer()
: 문서 모음 TF-IDF 매트릭스로 변환

profile
Data Analyst

0개의 댓글