Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 2022 AI 온라인 실무 교육
- 데이터분석가
- 소프트맥스함수
- AI 데이터 분석 트랙
- RFM
- 코딩테스트
- 데이터분석
- 코드업100제
- 코드업 기초100제
- 캐글데이터분석
- 고객세그먼트
- 멋쟁이사자처럼
- 파이썬
- Onehot인코딩
- 기초100제
- Python
- 머신러닝
- 데이터마케팅분석
- 시그모이드함수
- 데이터 분석
- OneHotEncoding
- 앨리스
- 코드업
- ai 스쿨 7기
- ai school
- 멋쟁이사자처럼 ai school 7기
- 고객데이터분석
- 멋사 ai
- RFM분석
- 딥러닝
Archives
- Today
- Total
초봉5센티미터
TIL 38. 딥러닝 - 자연어처리 (NLP) 3 본문
728x90
시퀀스 데이터(sequence data)란?
- 시퀀스 데이터는 연관된 연속의 데이터로 순서가 있는 자료
- 시계열 자료나 영상, 텍스트 자료가 대표적이다.
- 실제 사용하는 데이터들 중에는 시퀀스 데이터가 대부분을 차지(음성인식, 자연어, 주가 등)
- 연속된 데이터이므로 순서가 매우 중요하게 작용하며, 과거의 영향을 받기 때문에 과거 정보의 맥락을 고려하는 새로운 모델이 필요하게 되었다. (CNN → RNN)
NLP Preprocessing란?
- 단어, 문장, 문서의 vector를 모델의 입력으로 넣어주기 위해 데이터 전처리를 수행한다.
- EDA - 데이터를 불러온 후 문장 또는 문서들을 눈으로 확인하며 특수문자, 불용어 그리고 문장 구조에 대한 감을 잡는다.
- 문제의 목적과 분석자의 재량에 따라 불용어를 설정하고 리스트에 저장한다.
- 불용어 이외의 특수 문자들을 제거한다.
- 정규표현식(re)을 사용하면 한글과 영어 소문자를 제외한 모든 글자들을 쉽게 제거할 수 있다. - 형태소 분석을 통해 문장을 형태소 단위의 *토큰**으로 분리한다.
- 설정한 불용어들을 결과로 반환해주는 형태소 분석기를 사용할 수 있다. - 형태소 단위의 토큰들을 기반으로 리스트에 저장된 불용어를 제거한다.
형태소 분석(Stemming)
- 단어나 문장의 언어적 속성을 파악
- 보통 품사의 태깅(PoS) 을 통해 이루어지며 한국어 형태소 분석을 위해 *Konlpy** 패키지를 활용할 수 있다.
- 형태소 단위로 의미있는 단어를 가져오고, 품사를 태깅하여 형용사나 명사 등을 추출하고 싶을 때 사용한다.
Python에서 사용 가능한 형태소 분석기
- Mecab: 굉장히 속도가 빠르면서도 좋은 분석 결과를 보여준다.
- Komoran: 댓글과 같이 정제되지 않은 글에 대해서 먼저 사용해보면 좋다.(오탈자를 어느정도 고려해준다.)
- Kkma: 분석 시간이 오래걸리기 때문에 잘 이용하지 않게 된다.
- Okt: 품사 태깅 결과를 Noun, Verb등 알아보기 쉽게 반환해준다.
- khaiii: 카카오에서 가장 최근에 공개한 분석기, 성능이 좋다고 알려져 있으며 다양한 실험이 필요하다.
Vectorization 이란?
- NLP를 컴퓨터가 이해할 수 있게 수치로 바꾸는 작업
- vocabulary란 ? : 벡터로 변환된 고유의 토큰들이 모인 집합
- vocabulary가 크면 클수록 학습이 오래 걸린다.
- vocabulary란 ? : 벡터로 변환된 고유의 토큰들이 모인 집합
- 토큰들을 벡터화하기 이전에 형태소 분석기를 사용하여 문장을 원하는 토큰들로 분리한다.
벡터화 과정
- Tokenizer 인스턴스를 생성
- fit_on_texts와 word_index를 사용하여 key value로 이루어진 딕셔너리를 생성
- texts_to_sequences를 이용하여 text 문장을 숫자로 이루어진 리스트로 변경
- 마지막으로 pad_sequences를 이용하여 리스트의 길이를 통일화
Padding
- 문장의 길이를 맞춰주기 위해 부족한 길이만큼 0을 채우는 것
- 문장 1의 길이와 2의 길이가 서로 다를 때 뒤쪽에 0을 padding해주어 같은 길이로 맞춰줄 수 있다.
- 가변 길이의 입력을 받는 모형들이 존재하지만 문장의 길이를 동일하게 맞춰줄 필요가 있다
RNN의 유형
입력 개수와 출력 개수에 따른 유형
- One to one : simpleRNN
- One ot many : 하나의 이미지를 문장으로! ex) sitting cat
- Many to one : 단어 시퀀스에 대해서 하나의 출력 ex) 감정 분류, 주가 등락을 통한 회사 파산 여부
- Many to many : 입력 시퀀스가 다른 시간 단계에서 비디오 분류 가능
- Many to man : 여러개의 단어 입력, 여러 개의 단어로 구성된 문장 -> 명사, 동사, 형용사 등으로 구분 반환하는 번역기
'교육 > 멋쟁이사자처럼 AI School 7기' 카테고리의 다른 글
TIL 40. 비즈니스 데이터 분석 (0) | 2022.12.19 |
---|---|
TIL 39. 딥러닝 - 자연어처리 (NLP) 4 (0) | 2022.12.17 |
TIL 37. 딥러닝 - 자연어처리 (NLP) 2 (0) | 2022.12.13 |
TIL 36. 딥러닝 - 자연어처리 (NLP) (0) | 2022.12.12 |
TIL 35. 딥러닝 - CNN(3) (0) | 2022.12.08 |
Comments