#자연어처리
162022.12.28
인플루언서 
887프로그래머
참여 콘텐츠 11
3
Python 자연어 처리 머신 러닝, 딥 러닝 알아보기

Python 자연어 처리 머신러닝 딥러닝 © johnschno, 출처 Unsplash 오늘은 파이썬의 머신러닝과 딥러닝을 알아보도록 하겠습니다. 머신러닝에 딥러닝이 포함되어 있으며 가볍게 표현하면 규칙을 잡아서 해당 규칙을 분석하여 어떠한 결과를 도출해서 모델을 만드는 것이라고 보시면 됩니다! 서두는 가볍게 이 정도까지만 각설하고 간단하게 검증 하는 과정에 대한 이론과 간단한 용어들에 대해서 정리해보겠습니다! 모델을 만드는 과정 © kellysikkema, 출처 Unsplash 데이터를 분류하는 작업을 가장 먼저 해야하는데 데이터는 작게는 2가지 크게는 3가지로 분류하게 됩니다. 트레이닝 데이터 검증 데이터 / 테스트 데이터로 머신러닝의 재료를 만들어 줍니다. 모델은 일단 트레이닝 데이터를 활용하여 기본적인 훈련을 진행시키고 검증 데이터를 활용하여 튜닝여부를 판단하게 됩니다. 튜닝을 하는 이유는 성능을 더 올리기 위해서 하는 행동입니다. 하지만 이렇게 모델을 만들어도 완벽한 결과를 만들 수 는 없습니다. 그래도 꼭 튜닝은 해줘야합니다 튜닝을 하게 되는 이유는 크게 회귀와 분류에 의해서 발생하는 문제를 고치기 위한 행동이라고 보시면 됩니다. 튜닝을 해야하는 이유인 문제의 종류 연속된 범위의 결과를 예측하는 결과의 문제 회귀 어떠한 문제에서 결과를 선택하는 과정의 문제 분류 나는 위의 두 가지 문제에 대해서 차차 학습할 예정이고 보통은 ...

2022.12.28
2
Python 자연어 처리 백터의 유사도 샘플 경험해보기

Python 자연어 처리 샘플 데이터 테스트 © clemhlrdt, 출처 Unsplash 05-01 코사인 유사도(Cosine Similarity) BoW에 기반한 단어 표현 방법인 DTM, TF-IDF, 또는 뒤에서 배우게 될 Word2Vec 등과 같이 단어를 수치화할 수 있는 방법을 이해했다면 이러한 표현 방법에 대해서 … wikidocs.net 해당 자료를 근거하여 캐글의 데이터셋을 이용해보자! 내용 중 하단에 캐글 영화 데이터셋 중 movie_metadat (무비메타데이터)셋을 활용하는 과정 입니다. 내용을 보면 TF-IDF 방식으로 수치도를 구현하고 코사인 유사도 분석을 하는 프로그램을 소개합니다! 데이터 셋 다운로드 The Movies Dataset Metadata on over 45,000 movies. 26 million ratings from over 270,000 users. www.kaggle.com 해당 사이트에서는 이 외에도 각종 데이터셋을 제공받을 수 있습니다. 데이터 세트도 있고 이미 공부가된 모델들도 있습니다. 강의 내용을 보면 해당 영화 데이터 셋을 사용하여 특정 영화의 유사한 영화들을 뽑아내는데 한번 테스트 해보자! 코드 이해하기 Python 자연어 처리 코드를 이해해보겠습니다. 코드 부분만 복사해서 간단하게 테스트가 가능합니다. 중요한 부분들은 다시 한번 되짚어 보자! import pandas as ...

2022.12.27
5
Python 자연어 처리 백터의 유사도 (코사인, 유클리드, 자카드)

Python 자연어 처리 백터의 유사도 (코사인, 유클리드, 자카드) © cdr6934, 출처 Unsplash 오랜만에 파이썬 자연어관련 블로그 포스팅을 합니다. 포스팅에 앞 서 모두들 크리스마스는 재미있게 보내셨는지요. 저는 아내와 재미있는 시간을 보냈습니다. 내년 소원도 같이 빌고 즐겁게 시간을 보냈어요 슝슝 벌써 12월의 마지막 주라니 말도 안돼 2022년 정말 즐거운 한 해 였는데 기분 좋은 일이 더 많은 한 해였습니다. 오늘 하루도 회사에서 새로운 다짐을 하고 있어요! 본격적으로 백터의 유사도란? 우리는 이전 포스팅에서 수치화 유사도에 대해서 배웠습니다 Bow TF-IDF Word2Vec이 대표적인 수치화 방법이 였습니다. 오늘은 수치화된 결과를 백터 유사도를 활용한 방법론에 대해서 알아보는 시간이 될 것 같습니다. 간략하게 정리하면 수치화된 결과를 토대로 문서의 유사도를 분석하는 방법입니다! 대표적은 코사인 그 외 유클리드, 자카드가 있습니다! 그럼 하나하나 체크해보겠습니다! Python 코사인 유사도 문서의 단어나 문장을 수치화 한 갚을 토대로 구하는 방법이며 Numpy - norm (놈)을 활용하여 간단하게 테스트가 가능합니다! 공식은 위와 같다고 합니다! 자연어 처리 코사인 유사도는 위와 같이 두 데이터를 비교하여 각도를 기준으로 -1 0 1이 표현됩니다. 당연히 1에 가까울 수록 유사하다는 뜻이며 서로 직각을 이루면...

2022.12.26
2
Python 자연어 처리 BoW DTM TF-IDF

Python 자연어 처리 단어 표현 방법 © deepmind, 출처 Unsplash 오늘은 파이썬을 활용한 단어 표현 방법에 대해서 알아보려고합니다. 그 전에 먼저 가볍게 언어 모델이 무엇인지에 대해서 이해하고 그 다음 단어 표현 방법 카운트 기반으로 한 표현 기법인 BoW DTM TF-IDF를 이해해보자! 언어 모델 언어 모델이란 문장에 확률을 할당하는 모델을 의미한다. 방법으로 통계를 이용하는 방법이 존재하며 우리가 잘 아는 GPT, BERT 는 신경망을 이용한 방법입니다! 뭐 결국은 우리도 GPT, BERT로 Python 자연어 처리를 활용해보겠지만 그래도 차근차근 개념이해를 해볼게요! 통계를 활용한 방법 (언어모델) 기게번역, 오타교정, 음성인식을 활용한 더 나은 문장을 선택 하게 하는게 바로 언어 모델 입니다! 즉, 유사도가 높은 문장을 찾아서 선택해주게 하는 것! 대표적인 모델의 종류 SLM 전체 문장을 단어를 기반으로 조건, 문장, 카운트 기법이 적용된 가장 대표적인 모델 N-gram SLM을 기반으로 하지만 일부 단어만 처리하도록 하는 모델 수학 조건부확률을 활용하는 기법이라고 생각하면 될거 같다 강의 내용에 있어서 ( 솔직히 너무 모르겠다 어렵!) PPL - 모델이라기 보다는 비교하여 더 나은 정보를 평가 판단하기 위한 기술이 아닐까 ! 펄플렉서티 생성된 2개의 모델을 비교하기 위해서 모델읠 수치화 하는 방식 카운트 ...

2022.12.19
6
Python 자연어 처리 데이터 분리 작업

Python 자연어 처리 데이터 분리 © douglasamarelo, 출처 Unsplash 원래라면 바로 라이브러리를 실습하려 했는데 계속 이해를 하려고 공부를 하다보니 차근차근 같이 짚고 넘어가는게 좋은 것 같네요. 오늘은 파이썬의 자연어처리 데이터를 분리하는 단계에 대해서 이해해보겠습니다. 실제로 해당 과정은 학습용 자료와 시험용 자료를 만드는 과정이라고 생각하시면 됩니다! 급하지 않게 차근차근 알아보겠습니다! 데이터 분리 란? 교육을 위한 학습 데이터를 적당히 분류하는 작업입니다. 지도학습과 데이터 셋 분류 작업 지도학습이란? 지도학습은 문제지를 활용한 훈련 데이터 셋이라고 생각하면됩니다. 이해를 하자면 우리가 학원을 다니면 학원 선생님이 문제지와 답안지를 가지고 있는데 그와 동일하다고 생각하면 됩니다. 문제와 답을 연결된 학원선생님 전용 문제지를 의미한다고 생각해주세요. 그래서 실제로 지도학습용 데이터는 문제(data) = 답(label)을 연결해둔 데이터를 토대로 교육하는 방법입니다! 지도학습용 데이터와 지도학습 개념? 위에서 설명한것과 동일하게 지도학습용 데이터란 데이터 = 레이블의 연결된 데이터 입니다! 작업 1) 우리가 만들고 있는 데이터를 문제지 = 정답 을 연결해서 구성합니다. 그럼 우리는 문제지, 정답 이라는 2개로 나누어서 연결이된 데이터 셋이 구성완료 작업 2) 여기서 지도학습에는 시험용 학습지가 필요합니다. ...

2022.12.18
9
Python 자연어 처리 인코딩 종류와 이해

파이썬 자연어 인코딩 종류와 이해 © mbaumi, 출처 Unsplash 오늘은 파이썬 자연어 처리를 위한 사전 작업인 인코딩에 대해서 알아보겠습니다. 역시 가볍게 개념만 이해하고 가시는 것을 추천합니다. 우리는 결국 워드임베딩 기술을 활용할 것이기 때문입니다. 워드임베딩이 결국 파이썬 자연어 처리 모델을 만드는 역할을 하기 때문입니다. 다시 한번 말씀드리지만 우리가 토크나이저를 만드는게 아니니깐요! 그래도 가볍게 인코딩 종류와 이해를 해보겠습니다. 오늘도 부랴부랴 이해하고 넘어가봅시다! 정수 인코딩 이란? 컴퓨터는 문자보다 수를 더 잘 처리하는데 그것을 위해 자연어처리에 활용 가능합니다. 기본적으로 정수 인코딩 방식은 빈도수를 기준으로 처리합니다. 단 제외해야하는 케이스 단어의 길이가 현저하게 낮을 경우 제외 처리한다 (즉, 불용어 처리) 하지만 단어의 길이가 모두 낮다고 처리하면 안돼는 것을 이전 내용에 같이 알아봤죠 빈도 수가 높은 데이터 순으로 처리하며 해당 빈도수가 현저하게 작아서 데이터 순으로 처리를 제외한 케이스라면 Out-Of-Vocabuly 처리를 한다 (즉, OOV 처리) 그럼 이해를 위해서 코드로 직접 실습하자! nltk, keras 두 가지 패키지를 활용하여 실습할 것 이며 보시면 아시다시피 직접 딕셔너리를 구성할 수도 있습니다! 사용자 정의 정수 인코딩 단, nltk는 토크나이저를 위해서 쓴다 토크나이저 패키지...

2022.12.14
4
Python 자연어 처리 정규식활용 텍스트 전처리

파이썬 정규식을 활용한 자연어 텍스트 전처리 © GDJ, 출처 Pixabay 지금 까지 공부하고 있는 텍스트 전처리 관련 내용은 실제로 가장 처음에 말씀드렸던 워드 임베딩과 트랜스포머 토크나이저를 배우기 이전에 사전 시직 이라고 생각하시면 됩니다. 음 간단하게 말하면 파이썬 자연어 교육을 처리하여 만들어둔게 트랜스포머 의 오토토크나이저이며 해당 데이터 전처리방법은 GPT를 기반으로하여 우리가 알법한 회사에서 토크나이저 모델은 구성해두었습니다! 예를 들어 skt/kogpt2, kakao/kogpt 등이 있습니다! 즉, 사전 지식을 조금이라도 교육하는 과정이니 지겹더라도 같이 배워보겠습니다. 정규식 사용해보기 re Python의 정규식 처리 패키지명은 re 입니다. re패키지의 여러가지 메서드를 활용해서 정규 패턴을 처리할 수 있습니다. 뭐 기본적인 사용방법은 개발자라면 알 고 있을거라 생각하겠습니다. (실제로 검색해서 기본적인 패턴을 구성하는 부분은 더 자세히 나와 있으니 각 메서드가 어떠한 역할을 하는지만 가볍게 알아보도록 하겠습니다.) .compile() - 정규식 패턴이 동일하거나 동일한 패턴이 다수인 경우 사전에 정규식을 지정하는 것! .search() - 정규식 패턴을 활용하여 검색 .match() - 정규식 패턴으로 매칭이 이루어지는 지 검토 .split() - 정규식 패턴 기준으로 자르기 .findall() - 정규식 패턴...

2022.12.12
7
Python 자연어 처리 모델용 데이터 텍스트 전처리

파이썬 자연어 모델 데이터 전처리 정제/정규/어간/표제어/불용어 © martinadams, 출처 Unsplash 오늘 알아볼 과정의 순서는 토크나이저를 하기 이전에 하여도 좋고 토크나이저 이후에 만들어도 괜찮습니다. 하지만 이번 내용중 일부는 토큰화 이후에 처리를 하는 내용도 포함되어 있습니다. 토크나이저 이전에 할지 이후에 할지는 자신이 Python 자연어 처리를 만드는 목적과 그리고 어떠한 과정에서 작업을 하고 있는지를 체크하고 그에 맞는 상황에서 처리를 하는 것이 무엇보다 중요합니다. 그럼 오늘은 패키지를 활용하여 위에서 설명한 정제/정규/어간/표제어/불용어 처리를 실습해보겠습니다! 개인적으로 정말 어려워요 이해하려고 노력 하는 중 이에요! 정제화? 정규화 정제화란? 갖고 있는 코퍼스(말뭉치)에서 불필요한 부분을 제거하는 것을 일컫는다. 갖고 있느 코퍼스 란 우리가 모델을 만들기 위해서 구성한 데이터 셋을 의미합니다 정규화란? 표현 방법이 다른 여러가지 단어들을 통합하는 것을 일컫는다. " 두 개의 정의가 애매할 수 있지만 간단하게 생각하면 단순하게 우리에게 필요한 데이터를 만들기 위해서 데이터를 최소화 하는 과정이라고 생각하면 됩니다 겹치는 부분 또는 분석해도 의미가 없는 데이터를 없애기 위한 과정이라고 생각하면 편합니다. " 정제화 정규화를 위해서 불 필요 데이터를 제거하는 기법 해당 내용은 Python이라는 언어에만 한정인...

2022.12.09
4
Python 자연어 처리 토큰화 텍스트 전처리

Word2Vec 작업을 위한 테스트 데이터를 만들자 © geralt, 출처 Pixabay 하루마다 내가 세종대왕님이 만든 한글을 만드는 일을 해야하는 건가? 세종대왕님이 만드신 한글이 정말 이렇게 심도 깊고 어렵구나 합니다. 전 세계에 있는 언어를 연구하는 사람들에게 존경을 표합니다. 오늘은 Python 자연어 처리를 위해서 먼저 처리해야하는 텍스트 전처리 작업 중 토큰화 작업에 대해서 공부를 시작하고 이해해보겠습니다! 텍스트 전처리 테스트 데이터를 구성하기 위한 가장 첫 단추 우리가 Python 또는 다른 언어에서 자연어 처리를 위해서는 테스트 데이터를 만들어야합니다. 그 과정에서 해당 데이터를 우리에게 필요한 데이터화를 하기 위한 가장 첫 작업이 바로 텍스트 전처리라고 합니다. 우리는 해당 과정에서 토크나이저 토큰화를 합니다. 텍스트 전처리 -> 토큰화 + 정제화 + 정규화 등등 각종 작업을 통해서 우리에게 필요한 데이터를 만드는 것 입니다. '문서 저장하기\n2022.01.11.\n로그인플러스 공식 블로그 - 로그인을 안전하게! \n인공지능 AI의 핵심 기능 자연어 처리 NLP 알아보기\n자연어(natural language)란 프로그래밍 언어와 같이 사람이 인공적으로 만든 언어가 아닌, 자연계에 존재할... 컴퓨터가 자연어를 사람처럼 완벽히 이해하지는 못하고 있습니다. 예를 들어 “좋아 죽겠어!”라고...\n12' 우리는 자연...

2022.12.09
2
Python 자연어 처리 워드 임베딩 Word2Vec 대하여

파이썬 자연어 처리 워드임베딩 Word2Vec © stenslens, 출처 Unsplash 이제 본격적으로 챗바퀴를 굴려봅시다! 트랜스포머와 관련된 것을 먼저 포스팅했어야 순서가 맞을텐데 공부를 하다보니 아직 해당 부분이 너무너무 이해가 안돼서 기록을 하지 못했습니다! 그래서 실전 연습하는 단계를 통해서 알아볼 수 있는 워드임베딩 부터 먼저 소개해드리며 같이 공부하려고 합니다! 자연어 처리하는 라이브러리 중 Word2Vec을 기준으로 이해하고 실습을 해보고자 합니다. Python 자연어 처리 라이브러리 Word2Vec이 채택한 기법에 대해서 알아보자 워드 임베딩 컴퓨터가 이해할 수 있는 수자로 변환하는 것을 일컫는다. 현재 가장 많이 채택하여 사용하는 방법이라고 합니다. 관련된 라이브러리로는 LSA, Word2Vec, FastText, Glove 등이 있다고 합니다. (위키디피아 내용) 3가지 표현 방식에 대한 이해 희소 표현 원-핫 벡터 방식으로 단어에 인덱스를 1, 0 컴퓨터가 인지하는 수치로 만들어 주는 표현식 해당 방시의 단점은 단어가 많아지면 그 만큼 벡터의 필요공간이 높아진다! 밀집 표현 사용자가 차원을 정희할 수 있다. 즉, 공간을 사용자가 정의함으로 실수로 표현이하는 방식 워드 임베딩 밀집 벡터의 형태로 표현 하는 방법으로 임베딩 백터라 불린다. 해당 방식이 word2Vec 라이브러리가 기반으로 가지는 방법입니다! Wo...

2022.12.07
4
Python 활용한 자연어 처리 시작에 앞서 GPT란?

파이썬을 활용한 자연어 처리 Generative Pre-trained Transformer 란? © geralt, 출처 Pixabay 오늘부터는 자연어 처리에 대해서 알아보고자 합니다. 솔직히 어떻게 해야할지 막막한 상황이긴합니다. 자료는 많은데 제가 해본 분야가 아니기에 관련 라이브러리들을 직접 접하면서 하나하내 배워가야할 것으로 판단됩니다. GPT란? Open AI가 만들어 공개한 모델? 현재는 GPT3 까지 공개되었으며 이제 곧 GPT4와 관련된 이야기들이 솔솔 나오고 있다고 합니다 전체 명칭에 포함된 트랜스포머에 대해서 알아야지 좋은 것 같긴합니다. (해당 부분에 대해서는 가볍게 읽어보고 포스팅을 하고자 합니다) 일단 제가 참고하여 공부하고자하는 문서들은 참고자료에 미리 기록해두겠습니다. GPT를 활용해서 해보고자 하는거 일단 제가 해보고자 하는 건 검색사이트에 특정 검색어를 입력하여 관련된 단어들을 추출하여 단어들을 추출하고자 합니다. GPT란 OPEN AI가 공개한 오픈소스 기반 자연어 처리 기반의 예측 도구라고 합니다. 해당 모델을 활용하여 다른 모델을 추출하고 그것을 활용하여 내가 원하는 결과물을 얻는 것이 핵심일 거 같습니다! 솔직히 제가 이렇게 작성을 하면서도 아직 뭐가 뭔지 모르겠지만 네이버에 선물이라는 내용을 검색하여 모은 데이터를 이용하여 추출된 데이터에서 많은 키워드가 무엇인지 뽑아낸 정보입니다. (솔직히 해...

2022.12.07