soynlp 형태소 분석기는 비지도학습 형태소 분석기이다.
즉, 다른 형태소 분석기(은전한닢,꼬꼬마 등)와는 달리 데이터의 패턴을 모델 스스로 학습을 한다.
오픈소스 패키지는 다음에서 사용하였다.
https://github.com/lovit/soynlp
soynlp를 사용하기에 앞서 전처리 된 데이터가 필요하다. 이 데이터는 네이버 영화 리뷰 말뭉치를 이용하였다.
준비가 완료되었다. 그런데 soynlp의 작동 원리는 무엇인가?
특징으로는,
데이터 패턴을 스스로 학습하기 때문에 하나의 문장 혹은 문서에서보다는 규모가 있으면서
동질적인 문서집합에서 잘 작동한다.
작동 원리는 데이터의 통계량을 확인해 점수표로 나타내고 그에 따라 작동한다.
이 단어 점수는 응집 확률(Cohesion Probability)과 브랜칭 엔트로피(Branching Entropy)에 따라 부여된다.
구체적으로 말하자면
1. 주어진 문자열이 유기적으로 연결 되어 자주 나타난다 (응집 확률이 높다)
2. 특정 단어 앞뒤로 다양한 조사, 어미 혹은 다른 단어가 등장하는 경우가 많다. (브랜칭 엔트로피가 높다.)
=> 예를 들면 '꿀잼' 앞에 '영화','너무', '정말' 등 문자열이 나타나고 뒤에 'ㅋㅋ','ㅎㅎ','!!' 등이
많이 나타날수록 브랜칭 엔트로피가 높은 것이다.
이제 학습해 보겠다.
학습코드
다음 코드를 실행하면 단어 점수표가 model_fname 경로에 저장 될 것이다.
이제 점수표에 따라 형태소를 분석해보자
정상적으로 작동되는 것을 볼 수 있다.
+여기서 LTokenizer 클래스는 입력 문장의 왼쪽부터 문자 단위로 슬라이딩해 가면서 단어 점수가 높은 문자열을 우선으로 형태소로 취급해 분리한다.
'Tensorflow 2 NLP(자연어처리) > 형태소 분석기' 카테고리의 다른 글
[2-5] soynlp의 띄어쓰기 교정 모듈 (0) | 2021.11.12 |
---|---|
[2-3] 형태소 분석기(ex 은전한닢)에서 주의해야 할 점 (0) | 2021.11.12 |
[2-2] Khaiii 사용법 (0) | 2021.11.12 |
[2-1] KoNLPy 사용법 (0) | 2021.11.12 |