Kiwi 형태소 분석기
정의
Kiwipiepy는 한국어 형태소 분석기인 Kiwi(Korean Intelligent Word Identifier)의 Python 모듈입니다. C++로 작성되었고 다른 패키지에 의존성이 없으므로 C++ 컴파일이 가능한 환경이라면 어디에서나 Kiwipiepy를 사용 가능합니다.
출처: <https://bab2min.github.io/kiwipiepy/v0.8.0/kr/>
설치법
python pip install kiwipiepy
특징
- 멀티스레딩 지원
- 단순 analyze는 단일 스레드를 지원하기에 코드를 직접 짜야한다.
- 코퍼스로부터 미등록 단어 추출 가능
- extract_word(reader, min_cnt= , max_word_len= , min_score= )
- reader -> 호출 가능한(callable) 객체여야 한다?
- min_cnt -> 추출할 단어가 입력 텍스트 내에서 최소 몇 번 이상 등장할지
- max_word_len -> 추출할 단어의 최대 길이
- min_score -> 추출할 단어의 최소 점수
- extract_word(reader, min_cnt= , max_word_len= , min_score= )
- 사용자 사전 추가 기능
- add_user_word(word, tag="NNP", score=0)
- 사용자 정의 사전은 UTF-8로 인코딩된 텍스트 파일이어야한다
- 형식 -> 단어1 [탭문자] 품사태그 [탭문자] 단어점수
- 단어점수는 생략시 0점이다
- 형식 -> 단어1 [탭문자] 품사태그 [탭문자] 단어점수
- 형태소 분석
- 점수제 방식으로 지원
- 사용자 사전에서 단어별 태깅의 수를 크게주냐 적게 주냐의 차이로 우선순위 선정 가능
- 점수제 방식으로 지원
Soynlp
정의
한국어 분석을 위한 pure python code 입니다. 학습데이터를 이용하지 않으면서 데이터에 존재하는 단어를 찾거나, 문장을 단어열로 분해, 혹은 품사 판별을 할 수 있는 비지도학습 접근법을 지향합니다.
출처: <https://github.com/lovit/soynlp>
설치법
python pip install soynlp
특징
- Noun Extracter
- _compounds_components
- 복합명사를 구성하는 단일명사 추출기
- LRGraph
- 명사의 양옆 정보를 get_l, get_r 형식으로 가지고 있다
- _compounds_components
- Word Extracter
- OOV(Out Of Vocabulary) 문제를 해결하기 위한 기능
- https://github.com/lovit/soynlp/blob/master/tutorials/wordextractor_lecture.ipynb
- Branching Entropy
- 단어의 양 옆(한국어에서는 주로 오른쪽)의 정보를 통해 어떤 단어일지에 대한 불확실성을 줄여가는 것
- Accesor Variety
- 단어 다음에 나올 수 있는 가지 수를 계산
- Branching Entropy의 하위 개념
- Cohesion Score
- open class(명사, 동사, 형용사, 부사)에서 새로운 단어가 생기기에 그 품사들을 바탕으로 분석을 진행하는 특징을 이용.
- 위의 두 가지 기법을 이용해서 수식을 통해 계산해서 점수를 부여
- OOV(Out Of Vocabulary) 문제를 해결하기 위한 기능
- Tokenizer
- Ltokenizer
- 한국어에선 왼쪽만 인식을 잘하면 오른쪽(ex. 조사)는 알아서 딸려온다
- WordExtracter로 단어에 점수를 부여하여 계산
- MaxScoreTokenizer
- 띄어쓰기가 제대로 이루어지지 않은 문장에서 활용
- RegexTokenizer
- 규칙기반으로 토크나이징
- 언어가 바뀌는 부분을 단어로 인식(영어, 숫자 혼합)
- POS Tagger
- 단어 사전을 통해 품사 태깅
- Vectorizer
- doc_to_bow, BOW 등으로 변환 가능
- 단, vectorizer.vocabulary_에 들어있지 않은 단어는 벡터화 불가
- Normalizer
- 텍스트 정규화 가능
- Point Wise Mutual Information(PMI)
- 이는 (words, context) (input, output) 간의 상관관계를 측정하는 방법이다.
- https://github.com/lovit/soynlp/blob/master/tutorials/pmi_usage.ipynb
- Ltokenizer
반응형
'Study > NLP' 카테고리의 다른 글
자연어 처리의 꽃! - 워드 투 벡터(Word2Vec) (0) | 2020.08.10 |
---|---|
BERT를 이용한 한국어 자연어처리 (0) | 2020.08.02 |
개체명 인식 학습 기법 (0) | 2020.07.17 |
01. 텍스트 전처리 - 원-핫 인코딩 (0) | 2020.03.14 |
01. 텍스트 전처리 - 정수 인코딩 (0) | 2020.03.13 |
댓글