일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- KONLPY
- 임베딩
- 원-핫 인코딩
- 클러스터링
- 카운트 벡터
- 양방향 RNN
- 완전연결층
- 생성모델
- 프로그래머스
- 시계열 분석
- 텍스트 마이닝
- 풀링층
- RNN
- 과적합
- 이미지 분류
- 순환 신경망
- 자연어 전처리
- 딥러닝
- 합성곱층
- 망각 게이트
- 합성곱 신경망
- 코딩테스트
- COLAB
- 코랩
- 출력층
- 성능 최적화
- NLTK
- 입력층
- cnn
- 전이학습
Archives
- Today
- Total
Colab으로 하루에 하나씩 딥러닝
자연어 전처리_1.자연어 처리 본문
728x90
자연어 처리
- 우리가 일상생활에서 사용하는 언어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 과정
- 언어에 대한 이해도가 필요함
- 언어 종류가 다르고 그 형태가 다양하기 때문
- ex) 영어는 명확한 띄어쓰기가 있지만 중국어는 띄어쓰기가 없기 때문에 단어 단위의 임베딩이 어려움
1. 자연어 처리 관련 용어
- 말뭉치(corpus)
- 모델을 학습시키기 위한 데이터
- 자연어 연구를 위해 특정한 목적에서 표본을 추출한 집합
- 토큰(token)
- 자연어 처리를 위해 작은 단위로 나눈 단위
- 토큰화(tokenization)
- 텍스트를 문장이나 단어로 분리하는 것
- 토큰화 단계를 마치면 텍스트가 단어 단위로 분리 됨
- 불용어(stop words)
- 문장 내에서 많이 등장하는 단어
- 분석과 관계 없지만 등장 빈도로 인하여 성능에 부정적인 영향을 미치기 때문에 사전에 제거해 주어야 함
- ex) a, the, she, he
- 어간추출(stemming)
- 단어를 기본 형태로 만드는 작업
- worked, working, works 가 있을 때 기본 단어인 ‘work’로 통일하는 것
- 품사 태깅(part-of-speech tagging)
- 주어진 문장에서 품사를 식별하기 위해 붙여 주는 태그(식별 정보)
2. NLTK
- 교육용으로 개발된 자연어 처리 및 문서 분석용 파이썬 라이브러리
- 주요기능
- 말뭉치
- 토큰 생성
- 형태소 분석
- 품사 태깅
### 문장 토큰화
import nltk
nltk.download('punkt') # 문장을 단어로 쪼개기 위한 자원 내려받기
text = nltk.word_tokenize("Is it possible distinguishing cats and dogs")
text### 태깅에 필요한 자원 내려받기
nltk.download('averaged_perceptron_tagger')
### 태깅에 필요한 자원 내려받기
nltk.download('averaged_perceptron_tagger')
### 품사 태깅
nltk.pos_tag(text)
- 품사 의미
- VBZ: 동사, 동명사 또는 현재 분사
- PRP: 인칭 대명사(PP)
- JJ: 형용사
- VBG: 동사, 동명사 또는 현재 분사
- NNS: 명사, 복수형
- CC: 등위 접속사
### 단어 단위로 분리
nltk.word_tokenize(string2)
3. KoNLPy
- 한국어 처리를 위한 파이썬 라이브러리
- 꼬꼬마(Kkma), 코모란(Komoran), 한나눔(Hannanum), 트위터(Twitter), 멕켑(Mecab) 분석기를 설치하고 사용함
- 로컬에서 사용할 때에는 Orcale JDK,JPype1를 설치해야하지만 colab을 사용하기 때문에 설치 없이 진행
- 주요기능
- 형태서 분석
- 품사 태깅
### 라이브러리 호출 및 문장을 형태로 변환
from konlpy.tag import Komoran
komoran = Komoran()
print(komoran.morphs('딥러닝이 쉽나요? 어렵나요?')) # 텍스트를 형태소로 변환
### 품사 태깅
print(komoran.pos('소파 위에 있는 것이 고양이인가요? 강아지인가요?')) # 텍스트에서 품사를 태깅하여 변환
출처: 서지영, 『딥러닝 텐서플로 교과서』, 길벗(2022)
'딥러닝_개념' 카테고리의 다른 글
자연어 전처리_3.임베딩_1) 희소 표현 기반 임베딩(원-핫 인코딩) (0) | 2022.12.12 |
---|---|
자연어 전처리_2.전처리_4) 정규화 (1) | 2022.12.10 |
자연어 전처리_2.전처리_3) 어간 추출 / 표제어 추출 (0) | 2022.12.09 |
자연어 전처리_2.전처리_2) 불용어 제거 (0) | 2022.12.09 |
자연어 전처리_2.전처리_1) 토큰화 (2) | 2022.12.08 |