AI143 자연어처리 : 텍스트 전처리 : 정규표현식 정리 정규표현식, re 정리¶ 1. compile¶ 문자 안에 특정 문자나 패턴이 존재하는지 여부를 알려줌. 정규식객체 (re.RegexObject)를 return 하게 된다. In [52]: # 정규표현식 공부 import re """ # re.compile : 문자 안에 특정 문자나 패턴이 존재하는지 여부를 알려줌. + 정규식객체 (re.RegexObject)를 return 하게 된다. """ text = r"에러 1122 : 레퍼런스 오류\n 에러 1033: 아규먼트 오류" regex = re.compile("에러 1122") mo = regex.search(text) if mo != None: print(mo.group()) else: print('단어가 없습니다.') 에러 1122 compile에서 .. 2020. 3. 4. 자연어처리 : 텍스트 전처리 : 정제 및 정규화 : 어간 추출 및 표제어 추출 (stemming & Lemmatization) 정의 정제 및 정규화 작업 중 포함되는 stemming, Lemmatization, 어간 추출 및 표제어 추출이다. stemming, Lemmatization 의 목표는 겉보기에는 서로 다른 단어들이지만, 하나의 단어로 일반화시킬 수 있다면 하나의 단어로 일반화시켜서 문서 내의 단어 수를 줄이겠다는 것이 포인트다. 이러한 방법들은 단어의 빈도수를 기반으로 문제를 풀고자 하는 BoW(Bag of Words) 표현을 사용하는 자연어 처리 문제에서 주로 사용된다. 자연어 처리에서 전처리, 더 정확히는 정규화의 지향점은 언제나 갖고 있는 코퍼스로부터 복잡성을 줄이는 일이다. 형태소 정의 의미를 가진 가장 작은 단위 (morpheme) 1) 어간 (stem) 단어의 의미를 담고 있는 단어의 핵심 부분 2) 접사 .. 2020. 3. 4. 자연어처리 : 텍스트 전처리 : 정제 및 정규화 (Cleaning & Normalization) 정의 앞에서 corpus를 용도에 맞게 token으로 분류하는 것을 tokenization이라고 했다. tokenization이 이루어지기 전에, text data를 용도에 맞게 정제 및 정규화 (Cleaning & Normalization)하는 일이 항상 함께한다. 정제(cleaning) : 갖고 있는 코퍼스로부터 노이즈 데이터를 제거한다. token화 작업 전, 후로 계속 이루어진다. 보통 완벽하게 정제는 하지 못하며 일종의 합의점을 찾기도 한다. 정규화(normalization) : 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어준다. 1. 규칙에 기반한 표기가 다른 단어들의 통합 가령, USA = US 하나의 단어로 정규화해볼 수 있다. uh-huh = uhhuh는 형태는 다르지만 여전히.. 2020. 3. 4. 자연어처리 : 텍스트전처리 : 토큰화 (Tokenization) Text Preprocessing 자연어 처리에서는 우리가 쓸 수 있게 Tokenization, Cleaning, Normalization 하는 일을 하게 된다. 이 때, 주어진 corpus에서 token으로 나눈 작업은 tokenization이라 한다. 보통 의미있는 단위를 token으로 정의한다. 1. 단어 토큰화 (Word Tokenization) token의 기준을 word로 한 tokenization을 word tokenization이라 한다. 단어는 단어 단위 외에도 단어구, 의미를 갖는 문자열로도 간주된다. 보통 토큰화 작업은 단순히 구두점이나 특수문자를 전부 제거하는 정제(cleaning) 작업을 수행하는 것만으로 해결되지 않는다. 구두점이나 특수문자를 전부 제거하면 토큰이 의미를 잃어버리.. 2020. 3. 4. 자연어처리 : 기본적인 Workflow 1) 수집 (acquisition) model을 학습시키기 위해서는 data가 필요하다. 자연어 데이터를 말뭉치 또는 corpus 라고 부른다. Corpus는 조사나 연구 목적에 의해서 특정 도메인으로부터 수집된 텍스트 집합을 말한다. Corpus는 txt, csv, xml 등등 다양하다. 2) 점검 및 탐색 (Inspection and Exploration) data를 수집했다면 점검하고 탐색하는 단계이다. 여기서는 데이터의 구조, 노이즈 데이터, 머신러닝 적용을 위해서 어떻게 data를 정제해야하는지를 파악한다. 이 단계를 탐색적 데이터 분석 (Exploration Data Analysis, EDA) 단계다. 이는 독립변수, 종속변수, 변수 유형, 변수의 데이터타입 등을 점검하며 데이터의 특징과 내재.. 2020. 3. 4. 자연어처리 : FastText fastText의 기본 원리는 단어의 형태 적 구조가 단어의 의미에 대한 중요한 정보를 전달한다는 것입니다. 단어의 의미는 모든 개별 단어에 대해 고유 한 단어 포함을 훈련시키는 전통적인 단어 포함에 의해 고려되지 않습니다. 이는 단일 단어가 여러 형태의 형태를 가질 수있는 형태 학적으로 풍부한 언어 (독일어, 터키어)에서 특히 중요하며, 각 단어는 거의 발생하지 않으므로 좋은 단어 삽입을 학습하기가 어렵습니다. fastText는 각 단어를 하위 단어의 집계로 취급하여이 문제를 해결하려고합니다. 단순성과 언어 독립성을 위해 서브 워드는 단어의 문자 ngram으로 간주됩니다. 단어의 벡터는 단순히 구성 요소 char-ngram의 모든 벡터의 합으로 간주됩니다. 이 노트북에서 Word2Vec과 FastTex.. 2020. 3. 4. RL : Monte Carlo Tree Search (MCTS) 밑에는 알파고의 spec이다 Core Algorithm Deep Learning : Policy & Value MCTS : predict best condition CPU : 1000 operation / 1s simulation RL : find best action GPU : calculate state & predict next step Policy & Value : provide baseline of odds in expansion step 실제로 알파고는 ‘Policy Function’과 ‘Value Function’이라 불리는 2개의 신경망으로 구성되었는데, Policy Function이 다음 번 돌을 놓을 여러 경우의 수를 제시하면, Value Function은 그중 가장 적합한 한 가지 예.. 2020. 2. 25. 자연어처리 : NLTK NLTK (Natural Language ToolKit) NLTK 란? nltk는 파이썬 자연어 처리 패키지로 Classfication (분류) Tokenization (단어를 쪼개다) Stemming(형태소 분석) tagging (품사를 달다) parsing (어구를 나누다) semantic reasoning(의미론적 추리, 이 단어가 어떠한 의미를 가지고 있는지, 문장에서 중요한 의미인지) 이렇게 6가지를 구사할 수 있다. tokenize 자연어 문서를 분석하기 위해서는 우선 긴 문자열을 분석을 위한 작은 단위로 나누어야 한다. 이 문자열 단위를 토큰(token)이라고 하고 이렇게 문자열을 토큰으로 나누는 작업을 토큰 생성(tokenizing)이라고 한다. 영문의 경우에는 문장, 단어 등을 토큰으로 .. 2020. 2. 24. ML : Ensemble Learning : RandomForest 정의 2020/01/02 - [machine_learning/statistics] - Statistics : 6-6 : 확률분포 : 공분산과 상관계수 Statistics : 6-6 : 확률분포 : 공분산과 상관계수 공분산 (확률변수에서 적용) 정의 > 두 개의 확률변수 X, Y가 상호 어떤 관계를 가지며 변화하는가를 나타내주는 척도로서 (X-μx)(Y-μy).의 기댓값으로 정의된다. > Cov(X, Y) = E[(X-μx)(Y-μy)] = E(.. mambo-coding-note.tistory.com 공분산은 두 개의 class들이 서로 얼마나 상관관계가 있는지 치수로 보여준다. E[(X-μx)(X-μy)] 독립일 때는 서로 상관관계가 존재하지 않는다. Bagging을 복원추출하기 때문에 각각의 트리들을.. 2020. 2. 20. Statisics : Bias vs Variance Bias Bias는 "data들이 한 쪽에 치우쳐져 있는 정도"를 말한다. 쉽게 생각하면 딥러닝에서 X*W + b 에서 b가 bias이다. bias는 X*W를 공간적으로 보면 평행이동하는 것으로 해석할 수 있다. 즉, 평행이동을 한다는 것은 특정구간으로 치우쳐지게 만드는 것을 말한다. Variance Variance는 "data들이 퍼져있는 정도"를 말한다. 2020. 2. 20. ML : Ensemble Learning : Bagging Bootstrapping > Bootstrapping의 의미는 복원추출이다. 즉, sampling을 하고 다시 넣는다. 중복으로 뽑힐 수도 있다. > Bootstrapping 을 한다면 전체 데이터의 63%만 추출된다. Bagging 과정 > Bootstrapping으로 sample들을 추출한다면 전체 데이터의 63%만 포함되기 때문에 남은 data들을 활용. > 남은 data들을 validation처럼 활용하며, Error율을 계산한 후, Out-Of-Bag Error를 예측한다. Bias vs Variance 2020/02/20 - [machine_learning/statistics] - Statisics : Bias vs Variance Statisics : Bias vs Variance Bias .. 2020. 2. 20. ML : Ensemble Learning 정의 > ensemble 은 조화라는 의미를 가진다. > 여러가지의 base model, base learner, single learner 들로 이루어져 있다. > 이는 대수의 법칙 (큰 모집단에서 무작위로 뽑은 평균이 전체 모집단의 평균과 가까울 가능성이 높다는 통계와 확률분야의 기본 개념) 에 의해 많은 시행 (여러개의 learner)의 결과가 수학적으로 합리적인 결과를 가져온다. > 대수의 법칙에 의해 overfitting 된 다양한 learner 들을 만들면 전체의 모델의 성능이 증가할 수 있다. Model & 목표 Ensemble Learning의 기본적인 model은 성능이 좋지 않은 여러 개의 learner들을 붙여서 성능을 끌어올리는 것을 목표로 한다. 조건 - 1 (p는 0.5 이상) .. 2020. 2. 20. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음