본문 바로가기
Study (Data Science)/NLP

벡터화 발전과정 2 - soynlp (비지도학습 한국어 형태소 분석기)

by 콜라찡 2023. 2. 20.

Soynlp 

- 품사 태깅, 형태소 분석 등을 지원하는 한국어 형태소 분석기.

- 비지도 학습으로 데이터에 자주 등장하는 단어들을 형태소로 분석함.

- 내부에 단어사전 같은

단어 점수표를 만들어 동작하며 . 이 점수는 응집 확률(cohesion probability)  브랜칭 엔트로피(branching entropy) 를 활용함.

- 학습은 txt string (말뭉치, 진짜뭉치)을 DoublespaceLineCorpus로 띄어쓰기 두개 기준으로 떼어내 문서단위로 구분하고, 이를 WordExtractor로 단어를 추출하여 .train 시키면, 단어점수표가 만들어짐.

 

단어점수표 구조

응집 확률 (cohesion probability)

  • 내부 문자열(subword)가 "얼마나 응집"하여 "자주" 등장하는가의 척도.
  • 문자열을 문자 단위로 분리하여 내부 문자열을 만드는 과정에서, 왼쪽부터 순서대로 문자를 추가하면서 각 문자열이 주어졌을 때 그다음 문자가 나올 확률을 계산하여 누적 곱을 한 값.
  • 값이 높을수록 전체 코퍼스에서 이 문자열 시퀀스는 하나의 단어로 등장할 가능성이 높음

길이 7의 문자 시퀀스에 대해 각 내부 문자열의 스코어를 구하는 과정 (from. aiffel lms)

브랜칭 엔트로피(branching entropy)

  • 주어진 문자 시퀀스에서 다음 문자 예측을 위해 헷갈리는 정도. (헷갈리는 정도 = 엔트로피값)
  • 하나의 완성된 단어에 가까워질 수록 문맥으로 인해 정확히 예측할 수 있게 되므로, 브랜칭 엔트로피값은 점차 줄어듬.

 

이런 단어점수표를 근간으로, soynlp는 여러가지 토크나이저를 제공하고 있음.

토크나이저 종류

LTokenizer (L토큰 기준)

  • 띄어쓰기 단위로 잘 나뉜 문장에 적합
  • 한국어는 영어와 달리 black로 split을 하지는 않지만, 띄어쓰기 단위가 L토큰 + R토큰 (국제사회와 = 국제사회, 와)의 형식이 많기 때문에, 그 중 앞에있는 L토큰을 찾아내는 방식임.

MaxScoreTokenizer (최대점수 기준)

  • 띄어쓰기 안된 문장에 적합
  • 점수가 높은 글자 시퀀스를 순차적으로 찾아내는 토크나이저.

for you!

728x90

댓글