자연어 처리(NLP) (1)
2023. 9. 20. 15:00ㆍML&DL/NLP
1. 자연어처리
1) 자연어
- 우리가 일상 생활에서 사용하는 인간의 언어
2) 자연어 처리 (natural language processing)
- 자연어 텍스트를 컴퓨터가 학습할 수 있도록 변환하는 작업
2. 토큰화 (Tokenization)
1) 토큰화
- 주어진 Corpus(단어뭉치)에서 토큰(Token)이라 불리는 단위로 나누는 작업
- 주어진 문장에서 의미부여가 가능한 단어를 찾아내기
2) 토큰화에서 고려해야 할 사항
- 구두점, 특수 문자 단순 제외 금지
- 줄임말과 단어 내 띄어쓰기가 있는 경우 ex) New York
- 구두점, 특수무자를 모두 제거하는 작업만으로는 토큰화 불가능
3) 토큰화 방법
- 파이썬 NLTK 라이브러리 사용
- 문장 토큰화
- 토큰의 단위가 문장일 경우 문장 분류라고도 함
4) 한국어 토큰화
- KSS(문장 토큰화), Konlpy(형태소 토큰화) 주로 사용
- 한국어의 토큰화는 다른 언어보다 어려운 편
- 형태소 단위로 토큰화를 수행해야 함
3. 텍스트 전처리
1)정제
- 갖고 있는 코퍼스로부터 노이즈 데이터 제거
2)정규화
- 표현이 다른 단어들을 통합 ex) 공부를, 공부가,공부는
3)정제, 정규화 방안
- 규칙이 있거나 동일 의미 단어들 통합
- 대,소문자 통합
- 불필요한 단어 제거(특수문자)
- 빈도가 적은 단어 제거
4) 어간 및 표제어 추출
어간 추출
- 정해진 규칙을 보고 단어의 어미를 자르는 작업
표제어 추출
- 단어들로부터 표제어(기본 사전형 단어)를 찾는 작업 ex) am, are, is => be
라이브러리별로 추출 규칙이 조금씩 다름
추출된 단어는 사전에 존재하지 않을 수 있음
5) 불용어(Stopword)
- 큰 의미가 없는 단어 토큰
- 문장에서는 자주 등장하지만 의미를 분석하는데 별 필요 없는 것 ex) 은,는,이,가
6) 정수 및 원핫 인코딩
- 컴퓨터는 숫자를 더 효율적으로 처리할 수 있기때문에 인코딩을 통해 텍스트를 숫자로 바꿔주는 작업 필요
- 정수 인 코딩
- 각 단어별로 고유 정수를 부여하는 방법으로 인코딩함
- ex) 사과, 바나나 수박 => 0,1,2
- 원핫 인코딩
- 표현하고 싶은 인덱스에 1을, 다른 인덱스에는 0을 부여함
- ex) 사과, 바나나 수박 => [1,0,0],[0,1,0],[0,0,1]
- 단어가 3개이기 때문에 차원도 3 ( dim=3)
'ML&DL > NLP' 카테고리의 다른 글
[NLP] 데이터 전처리 - 정제 / 정규화 (0) | 2023.09.27 |
---|---|
[NLP] 데이터 전처리 - 영어/ 한국어 토큰화 실습 (0) | 2023.09.21 |
[NLP] 데이터 전처리 - 한국어 토큰화 (0) | 2023.09.21 |
[NLP] Python 한글 맞춤법 검사 라이브러리 (0) | 2023.09.21 |
[NLP] BERT로 영화 리뷰 분류하기 (0) | 2023.09.20 |