[NLP]자연어 처리

지윤곽·2021년 1월 14일
0

NLP

목록 보기
1/6

'온라인 행동정보로 상품 추천' 프로젝트에 '검색어'를 feature로 추가하기 위해서 워드 임베딩을 해야했다. 다음은 워드 임베딩에 이르기까지의 과정이다.

1. 데이터 추출

기존에 진행했던 것과 같이 구매로 이어진 세션에서 검색어가 있는 경우만 추출
데이터 수 : 22239->12627

2. 데이터 정제

한글만 남기고 모두 삭제 55개의 세션 삭제됨 (12627->12572)

3. 전처리 + Tokenization

https://wikidocs.net/92961 #다양한 한국어 전처리 패키지

SOYNLP

  • 품사 태깅, 단어 토큰화 등을 지원하는 단어 토크나이저
  • 비지도 학습으로 단어 토큰화를 한다는 특징
  • 신조어 처리 가능 #브랜드명이나 상품명이 많은 검색어 데이터에 잘맞음
!pip install soynlp
  • SOYNLP 학습과정
  1. 응집확률
    이 값이 높을수록 전체 코퍼스에서 이 문자열 조합은 하나의 단어로 등장할 가능성이 높음
word_score_table["반포한강"].cohesion_forward 
#0.19841268168224552
word_score_table["반포한강공원"].cohesion_forward
#0.37891487632839754
  1. 브랜칭 엔트로피
    브랜칭 엔트로피의 값은 하나의 완성된 단어에 가까워질수록 문맥으로 인해 점점 정확히 예측할 수 있게 되면서 점점 줄어드는 양상을 보임
word_score_table["디스플레"].right_branching_entropy
#-0.0  #다음에 '이'가 올것이 분명하기 때문
word_score_table["디스플레이"].right_branching_entropy
#3.1400392861792916  
#단어가 완성되면 값이 증가하는 이유는 '디스플레이'란 단어 다음에 
#조사나 다른 단어가 올 경우가 무수하기 때문
  1. SOYNLP의 L tokenizer
  • 한국어의 어절 토큰은 주로 L 토큰 + R 토큰의 형식 ex) 공원+에, 공부+하는
  • L 토크나이저는 L 토큰 + R 토큰으로 나누되, 분리 기준을 점수가 가장 높은 L 토큰을 찾아내는 원리

4. Word Embedding

https://wikidocs.net/69141 #이 사이트의 코드를 보고 skip_gram 구현함

profile
아는게 힘이다

0개의 댓글