반응형

인공지능/자연어 처리 147

한국어 데이터 전처리 - 한국어 코퍼스 전처리 Python 실습

한국어 코퍼스 전처리 실습 Introduction Chapter 2. 한국어 데이터 전처리 강의의 한국어 코퍼스 전처리 실습 강의입니다. 일반적인 한국어 코퍼스 처리 과정인 (1) 코퍼스 수집, (2) 정제(Cleaning) 및 정규화(Normalization), (3) 토큰화(Tokenization)을 이해할 수 있도록 간단한 전처리 과정을 실습합니다. 1. 코퍼스 수집 한국어 코퍼스 전처리 실습을 위해, 뉴스 기사를 크롤링 해보겠습니다. 일반적으로 크롤링 코드를 작성하려면 많은 요소들을 고려해야하지만, 본 실습에서는 url 정보만 입력해주면 텍스트를 추출해주는 Newspaper3k 라이브러리를 사용하도록 하겠습니다. !pip install newspaper3k newspaper 라이브러리는 매우 많은..

한국어 데이터 전처리 - 한국어 형태소 분석 (KoNLPy, Mecab활용)

목표 - 다양한 한국어 형태소 분석기를 포함하는 KoNLPy를 활용하여 한국어 형태소 분석 과정을 이해할 수 있다. 일본어도 한국어와 같이 교착어의 특성을 가진다! 어떤 특성이 가장 잘 맞을지 고르면 된다. 작업에 맞는 품사 분류를 고르면 된다. 정제과정 속에서의 부작용, 규칙 기반을 통한 분리에서 오류가 나기 때문이다.

한국어 데이터 전처리 - 서브워드 토큰화 (BPE 활용)

목표 - 자연어처리에서 많이 사용되는 서브워드 토큰화 방식 및 BPE 알고리즘에 대해 알 수 있다. 문장 토큰화 - 다양성이 너무 늘어난다. 문자 토큰화 - 하나의 짧은 문장을 만드는데도 추론이 엄청나게 많아지게 되고, 토큰끼리의 관계가 없다. 하나의 단어가 작은 의미의 단어 여러개로 분리하기! 신조어에 대응 가능! 예외 상황이 너무 많을 수 있다! 빈도수가 높다 - lo, we,er 등이 몇 번씩 나오냐, 빈도수 높은 것 통합하기 이렇게 되면 이 과정도 엄청 오래걸리겠는데....? 그 다음엔 low겠네 사전이 점점 늘어나는데....? 처음에 분류하는 시간이 쪼금 걸려보이는데.... 적절한 알고리즘 횟수 정하는 것이 중요! 이게 좀 더 합리적인 것 같기도 하고...?

한국어 데이터 전처리 - 토큰화 Tokenization

목표 - 자연어 코퍼스를 최소 의미 단위인 토큰 단위로 나누는 토큰화 작업을 이해할 수 있다. 띄어쓰기 단위로 간단하게 토큰화할 수 있다. 내가 문장 하나를 기계가 이해할 수 있는 수치화 하는 것 문장 하나를 주는 것 보다 단어 단위로 주면서 순서까지 주면 이해하기가 더 쉽다. 텍스트를 단어 수준으로 이해할 수 있게 해 준다. 식당과 메뉴를 연관 지어 이해할 수도 있다. 단어 단위로 나누지 않는다면 '압구정에 어떤 식당이 있나요?'를 이해하지 못할 것이다. 글자 단위로 설정하면 모델의 이해력을 오히려 제한할 수 있다. 글자에는 의미가 없기 때문! 적당한 토큰 단위가 필요하다. 4가지가 있다. 문장 분류! 교착어 - 언어와 접사를 통해 언어가 이루어짐 신조어가 생긴다! - 사전에 없으면 처리를 못한다, 사..

한국어 데이터 전처리 - 정제(Cleaning) 및 정규화(Normalization)

목표 - 수집한 자연어 코퍼스를 정제하는 과정 및 정규화 과정에 대해 이해할 수 있다. 정규화 - 대문자 -> 소문자, 다양한 이모지 통일 등 노이즈 - 판단 필요하다! -> 완벽하게 없애는 것은 힘들기 때문에 합의점이 필요하다. 분포가 너무 적은 것들은 제거도 한다. 쓰임이 없는 단어, 비효율적인 단어들 모델의 응답시간도 단축 가능하다. 정보량이 많지 않다. -> 무언가를 분류하는데 도움이 되지 않는다. 없다면 pip nltk로 설치도 필요하다. 대명사, 관사들이 들어있다. 내가 필요하다고 생각하다면 리스트에서 제거해주면 된다. 단어가 많이 줄어든 것을 볼 수 있다. 조사는 붙어있는데 어떻게 제거할까? 특수 문자중에서도 웃음과 같은 것은 긍정으로 볼 수 있지 않나...? 빈도에 따라 중요성도 생각해 볼..

한국어 데이터 전처리 - 자연어 코퍼스 수집

강의 목표 : 웹 상에 공개된 한국어 자연어 코퍼스들을 소개하고 활용하는 방법들을 이해할 수 있다. 내가 필요한 데이터의 종류를 잘 찾아야 한다. 어느 정도의 코퍼스를 수집해야 할까? 무한히 많은 코퍼스가 항상 좋은 것도 아니다. 번역 모델 - 모델 구조에 2만개의 학습 데이터를 넣었을 때 잘 된다는 논문을 보고 2만개라고 정할 수 있다. 레이블 - 데이터의 패턴 모델이 커지면 커질수록 데이터 필요 커짐 쉬운 작업에 큰 모델은 필요 없다! 데이터에 비해 모델이 너무 크다! 모델이 크려면 학습 데이터도 많아야 한다. 23년 현재의 어뷰징 컨텐츠를 거르고 싶은데 20년도 어뷰징 관련 데이터라면 지금 어뷰징은 못 잡을 확률이 크다. 데이터 분석 과정이 필수다. 중립적인 의견은 표출하지 않아 편향적인 데이터가 ..

자연어 처리 살펴보기 - Google colab 환경에서 Huggingface 기초 실습

Huggingface Tutorial Introduction Chapter 1. 자연어처리 살펴보기 강의의 google colab 환경에서 Huggingface 기초 실습 강의입니다. 자연어처리 실습을 위한 google colab 환경을 소개하고, 자연어처리 분야의 주요 모듈인 Huggingface의 사용법을 익히기 위해, Tokenizer 및 모델 실습을 진행합니다. Hugging Face, Inc.는 기계 학습을 사용하여 애플리케이션을 구축하기 위한 도구를 개발하는 미국 회사입니다. 자연어 처리 애플리케이션용으로 구축된 Transformers 라이브러리와 사용자가 기계 학습 모델 및 데이터 세트를 공유할 수 있는 플랫폼으로 가장 유명합니다. 우리는 이 라이브러리를 통해 오늘날 사용 가능한 대부분의 크..

자연어 처리 살펴보기 - 프레임워크 소개

목표 - 자연어 처리를 진행하면서 주로 사용하는 자연어 처리 프레임워크들에 대해 이해할 수 있다. 패키지들간의 의존성 때문에 오류가 많이 발생한다. -> 관리해주지 않으면 계속 오류가 날 것이다. 배타적인 환경을 구성할 수 있으나 다른 컴퓨터에서 진행할 땐 환경을 똑같이 구성해줘야 한다. 아나콘다보다 복잡한 경우가 많아서 재현성이 필요한 회사에서 많이 사용된다. Kaggle에서도 가능하다. TensorFlow를 통해 파이썬의 속도보다 더 빠르게 활용 가능하다. 저는 케라스를 활용해 본 적은 없네요

자연어 처리 진행 순서 2 - 모델링, 모델 학습 및 평가

목표 - 자연어 처리 Task를 수행하는 절차 중 모델링, 모델 학습 및 평가 과정에 대해 이해할 수 있다. 기계번역 - 한국어 소스 -> 영어소스 = 영어 토큰으로 변환 최대 확률을 가지는 토큰을 가져온다! 문장 구조 상, 의미 상 가장 높은 확률을 가지는 토큰을 선택한다. 어순이 바른 것이 높은 확률을 가진다. SOTA = 그 분야에서 제일 적합한 모델 상황에 따른 결정들이 많이 다르다! 내가 사용할 수 있는 리소스의 한계를 알아두기 모델 평가 시점도 중요하다! 모델 학습이 끝난 후 평가를 진행하면 재학습을 처음부터 다시해야 하는 경우가 있을 수 있다. validation 데이터 셋을 사용하여 학습을 잘 체크한다! 오버 피팅에 대한 값은 validation과 train의 오차를 통해 확인 8/2로 나..

자연어 처리 진행 순서 1 - 데이터 수집 및 전처리

강의 목표 - 자연어 처리 Task를 수행하는 절차 중 데이터 수집, EDA 및 전처리에 해당하는 데이터 준비 과정에 대해 이해할 수 있다. 실제 세계의 분포와 같은 데이터를 사용해야 한다. 다양한 빈도를 잘 포함해야 한다! 성별에 대한 데이터를 반반 씩 잘 수집해야 한다. 특정 환경에서만 작동하는 데이터일 경우가 있고, 오래된 데이터일 경우도 있다. 데이터를 더 추가하거나 필터를 한번 더 설정하여 필요한 데이터만 사용하는 등 작업이 필요하다. 장점 - 양이 엄청나다 단점 - 보급편향 -> 극단의 데이터만 있다. (중립적인 사람들은 말을 하지 않는다.) 데이터 분석이 필요하다. 라벨링을 해줘야 한다. 추가 작업 필요! 데이터 분포를 확인 후 데이터 수집을 추가로 진행할 수 있다. 학습에선 리소스가 많이 ..

728x90
728x90