자연어 분석(NLP; Natural Language Processing)
eg) bert
1. 과정
1) 토큰화(Tokenization)
: 문자열에서 단어로 분리시키는 단계
2) 불용어 제거(Stopword elimination)
: 전치사, 관사, ㅋㅋㅋ 등 문장이나 문서의 특징을 표현하는데 불필요한 단서를 삭제하는 단계
3) 어간 추출(Stemming)
: 단어의 기본 형태를 추출하는 단계(원형화)
eg) 먹자. 먹을까. 먹었다. 먹습니다. -> 먹다
- 형태소 분석기
4) 문서 표현(Representation)
: 주어진 문서나 문장을 하나의 벡터로 표현하는 단계
- 단어들을 모두 인덱싱하고 주어진 문서에 존재하는 단어듸 빈도수를 사용하여 문서를 표현
+ 사전 (Dictionary)
: 단어 + 인덱스
- 단어 자체를 사용한 문서 표현은 비효율적
과정 | ||
1 | 토큰화(Tokenization) | - 띄어쓰기나 개행을 기준으로 단어 분리 - 문장 부호(., - 등)를 기준으로 분리 |
2 | 불용어 제거(Stopword elimination) | 불필요한 단어 제거 - 모든 단어 소문자화 - 불용어 사전을 이용하여 불용어 삭제 - 전체 말뭉치에서 n번 이상 등장하지 않는 단어 삭제(중요하지 않은 단어) |
3 | 어간 추출(Stemming) | 단어를 기본형으로 추출 (표현형 때문에 다른 언어로 인덱싱되지 않도록 처리) |
4 | 문서 표현(Representation) | 문서(Text)를 Vector로 변환 - 벡터를 통해 단어/문서 간의 유사도 구할 수 있음 (유클리디안 거리, 코사인 유사도 등) |
2. 자연어 처리를 위한 Python Library
<자연어 처리를 위한 Python Library> | ||
KoNLPy(Korean NLP in Python) 코엔엘파이 |
한국어 자연어 처리를 위한 대표적 라이브러리 - 자연어 처리, 텍스트에서 의미 있는 정보를 분석 추출하는 기술 - Komoran, Mecam 등 형태소 분석기 내장 |
- tensorflow 등의 강력한 라이브러리 이후로 빅데이터 분야에서 분석 도구로 활용됨 - 범용 프로그래밍 언어로 만들어짐 - JAVA VM 환경에서 작동 |
NLTK(Natural Language Toolkit) | 영어 자연어 처리를 위한 대표적 라이브러리 | - 편한 UI 환경과 WordNet, 강력한 NLP 라이브러리들 제공 |
Genism | 주로 Topic modeling, Corpus 및 Word Embedding 모델 지원 - 한국어 등 다양한 언어 지원 |
'ML > 자연어처리' 카테고리의 다른 글
자연어처리(NLP) 과정 (0) | 2021.11.29 |
---|---|
[konlpy] 에러TypeError: No matching overloads found for kr.lucypark.okt.OktInterface.tokenize(float,java.lang.Boolean,java.lang.Boolean) (0) | 2021.11.15 |
[Python] KoNLPy 설치(Jupyter notebook) (0) | 2021.07.22 |
댓글