Archive: 2020/1

NLP 실습 텍스트 분류(TF-IDF, CountVectorizer, Word2Vec) -02

모델링 소개 선형모델 로지스틱회귀 모델 입력 벡터를 word2vec과 tf-idf를 사용해본다. 랜던포레스트 TF-IDF를 활용한 모델 구현 모델의 입력값으로 TF-IDF 값을 갖는 벡터를 사용할 것이기 때문에 scikit-learn의 TfidfVectorizer를 사용할 것이다. 이를 위해서는 입력값이 텍스트로 이뤄진 데이터 형태이어야 한다.

NLP 실습 텍스트 분류 -01

영어 텍스트 분류 한국어는 띄어쓰기를 기준으로 모든 단어를 처리할 수 없으므로 상대적으로 전처리하기 쉬운 영어 텍스트를 가지고 먼저 감각을 키워보겠다. 데이터 이름 : Bag of Words Meets Bags of Popcorn 데이터 용도 : 텍스트 분류 학습을 목적으로 사용 데이터 권한 : MIT 데이터 출처 : https://www.kaggle.c

Scrapy 웹 크롤링 04 - 실습

Scrapy PracticeDaum 크롤링하기 다음 디지털 뉴스 페이지에서 현재 URL, 기사 타이틀에 걸려있는 href URL, 기사 페이지로 이동한 후 기사 제목, 기사 내용을 크롤링하는 것을 목표로 크롤러를 만들것 items.py 먼저, 크롤링 대상을 items를 활용하기 위해 items.py에 Field를 생성한다. 위에서 언급했던 사항뿐만 아니라

Scrapy 웹 크롤링 03 - Exports, Settings, pipeline

Exports 우리가 실행후 크롤링한 데이터를 저장하는 path를 실행할때마다 지정하거나 실행했는데, 일종의 template같이 미리 만들어 놓을 수 있는 기능이 Exports이다. Exports 참조 사이트 : https://docs.scrapy.org/en/latest/topics/feed-exports.html 1234# 아래 2가지 방법은 동일

Attention mechanism을 사용한 Seq2seq 구현

Vallina Seq2seq tf.function을 사용하기 위해 tensorflow 2.0.0-beta1버전을 설치한다. 한글 텍스트의 형태소분석을 위해 konlpy에서 Okt(Original Korean tag, Twitter에서 공개한 오픈소스 라이브러리)를 사용하기 위해 설치해준다. 12!pip install tensorflow==2.0.0-b

Attention 기법

Attention 기법Sequence-to-sequence 우선, Attention 기법이 가장 먼저 적용되었던 모델인 Sequence-to-sequence 모델을 살펴보면서 간략하게 conception적인 것을 살펴보겠다. 아래 그림의 왼쪽 부분은 Encoder 구조로 되어 있어, Input에 번역하고자 하는 문장을 단어 하나씩 받는 형태로 되어있다.

순환신경망(Vanilla RNN 및 LSTM 구현)

순환 신경망 구현 및 학습Vanilla RNN1!pip install tensorflow==2.0.0-beta1 1import tensorflow as tf tensorflow version 확인1print(tf.__version__) 하이퍼 파라미터 설정1234EPOCHS = 10# 우리가 분석할 때 10000개의 단어만 사용하겠다는 의미로 설정하였다.N

NLP 전처리

형태소 Tokenizing 라이브러리영어 Tokenizing 라이브러리 1) NLTK 파이썬에서 영어 텍스트 전처리 작업을 하는데 많 쓰이는 라이브러리로, 이 라이브러리는 50여 개가 넘는 말뭉치 리소를 활용해 영어 텍스트를 분석할 수 있게 제공 한다. 직관적으로 함수를 쉽게 사용할 수 있게 구성돼 있어 빠르게 텍스트 전처리를 할 수 있다. 또한 단어

Regression(04) - Ridge and Lasso

회귀 게수를 축소해야 하는 이유 먼저, 회귀 분석하기 좋은 데이터의 조건에 대해서 이야기 해 볼 것이다. X와 Y의 관계가 명확해야하며 선형성을 가지면 가장 좋을 것이다. 또한, 독립변수의 개수가 많다면 학습의 시간도 상대적으로 오래걸리며 과적합이 될 확률이 높다. 이러한 문제들이 발생되기 때문에 Y와의 상관성은 높아야 하지만 독립변수들끼리의 상관성은 적은

임베딩이란?

컴퓨터가 바라보는 문자 아래와 같이 문자는 컴퓨터가 해석할 때 그냥 기호일 뿐이다. 이렇게 encoding된 상태로 보게 되면 아래와 같은 문제점이 발생할 수 있다. 이 글자가 어떤 글자인지를 표시할 수 있고 그에 따른 특성을 갖게 하려면 우선 계산할 수 있게 숫자로 만들어 주어야 할 것이다. 그러한 방법 중 가장 단순한 방법이 One-hot enc

Regression(03) - 회귀진단

교호작용 성별, 결혼여부, 혹은 소속 정치단체 등과 같은 질적(qualitative) 또는 범주형(categorical)요인들이 회귀분석에서 종속(반응)변수의 변화를 설명하는 데 매우 유용한 독립(설명) 변수 역할을 할 때가 있다. 이런 질적 독립(설명)변수로 이용할 경우 이들은 지시변수(Indicator variable) 또는 가변수(dummy varia

NLP란?

자연어란? NLP란? NLP의 어려움 우리가 실생활에서 사용하는 언어는 복잡성, 애매함, 그리고 의존성을 지니고 있기 때문이다. 복잡성이란 예를 들어 필자가 좋아하는 게임인 배틀그라운드로 예를 들어 보겠다. 몇 주전 PUBG에서는 배틀그라운드의 신맵인 카라킨에 대해 반응을 보기 위해 각 배틀그라운드 커뮤니티 사이트에 대한 댓글을 분석한다고 가정해보자. 그

순환 신경망(RNN) - 순차 데이터의 이해

순차 데이터의 이해 우리가 순환 신경망을 사용하는 이유는 입력을 순차데이터로 받거나 출력을 순차데이터으로 내기 위해서이다. 일정한 시간차를 갖는 Time Series라면, x축이 특정 시간을 의미하는 Temporal Sequence와는 다르게 하나하나의 Step으로 간주한다. 일반적으로는 위에서 보는 것과 같이 Temporal Sequence를

DenseNet 구현 및 학습

DenseNetwork 구현 및 학습 필자는 구글 colab을 통해 학습시켰으며, @tf.function을 사용하기위해 tensorflow 2.0 버젼을 시용하였다. 1!pip install tensorflow==2.0.0-beta1 사용할 라이브러리 import 12import tensorflow as tfimport numpy as np 위에서

Residual Network 구현 및 학습

Residual Network GoogLeNet 이후에 나온 모델로 Residual 구조를 Skip connection 구조를 갖으며, pre-activation을 갖는 Residual unit을 먼저 만든 후에서 Resnet Unit을 연결하야 만들 ResnetLayer를 만들어 Residual Layer를 구현할 것이다. 그 후 전체적인 ResNet M

Scrapy 웹 크롤링 02 - Spider, Scrapy selectors, Items

Spider Spider의 종류 (참고로, 아래 3가지 종류의 Spider는 잘 사용되지 않는다.) CrawlSpider XMLFeedSpider CSVFeedSpider SitemapSpider 12# 여러사이트를 크롤링하기 위한 spider를 생성scrapy genspider many_site hub.scraping.com spider 폴더의

Scrapy 웹 크롤링 01 - 환경설정 및 기초

Scrapy VS Beautiful SoupBeautiful Soup Beautiful Soup는 웹 상의 정보를 빠르게 크롤링 하기위한 도구이며, 정적인 정보를 가져 올 수 있다. 즉, 해당 API(URL)에 요청했을때 바로 가져올수 있는 정보들만 가져올 수 있다. 시간이 좀 더 걸린 후에 나오는 정보들은 가져올 수 없다는 것이다. 진입 장벽이 매우 낮고

모형 성능 평가 지표

회귀(regression) 평가 지표 회귀의 평가를 위한 지표는 실제 값과 회귀 예측값의 차이 값을 기반으로 한 지표가 중심이다. 실제값과 예측값의 차이를 그냥 더하면 잔차의 합은 0이므로 지표로 쓸 수 없다. 이 때문에 잔차의 절대값 평균이나 제곱, 또는 제곱한 뒤 다시 루트를 씌운 평균값을 성능 지표로 사용한다. 평가 지표 수식 MAE(

Regression(02) - 다중선형회귀 및 다중공선성

다중 선형 회귀 다중회귀방정식에서 회귀계수에 대한 해석은 자주 혼동되는 것 중 하나이다. 단순회귀방정식은 직선을 표현하지만 다중회귀방정식은 평면(독립(설명)변수가 두개인 경우) 혹은 초평면(독립(설명)변수가 두개보다 많은 경우)을 표현한다. 위의 예에서 회귀계수의 해석은 다른 변수들이 고정되어 있을때 TV가 1단위 증가할 때 매출액은 0.046단위 증

NLP를 공부하는데 도움되는 사이트 모음

자연어 처리 관련 자료 자연어 처리에 대해 공부할 수 있게 도움이 될 만한 사이트 자연어 처리 강의 딥러닝을 이용한 자연어 처리:https://www.edwith.org/deepnlp 자연어 처리 오프라인 스터디 모임 DeepNLP(모두의연구소 자연어 처리 스터디):http://www.modulabs.co.kr/information 바벨피쉬(싸이그래머

Regression(01) - 회귀의 종류 및 회귀계수

회귀분석이란? 지도 학습은 두 가지 유형으로 나뉘는데, 바로 분류(classification)와 회귀(regression)이다. 이 두 가지 기법의 가장 큰 차이는 분류는 예측값이 카테고리와 같은 이산형 클래스 값이고, 회귀는 연속형 숫자 값이라는 것이다. 회귀(regression)은 현대 통계학을 떠받치고 있는 주요 기중 중 하나이다. 여러분이 회