본문 바로가기
TOP BOTTOM
ML/자연어처리

자연어 분석(NLP)

by mola23 2021. 7. 22.

자연어 분석(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 모델 지원
- 한국어 등 다양한 언어 지원
 

 

댓글