전체 글
[파이토치로 배우는 자연어처리] 레스토랑 리뷰 감성 분류하기 - (2) 문장 토큰화와 Dataset
이 글은 한빛미디어의 '파이토치로 배우는 자연어처리' 글을 읽고 정리한 것입니다. 이어서, 전처리된 데이터셋을 가지고 본격적으로 분류 모델을 만들어볼 것이다. 전처리가 끝난 텍스트 데이터를 토큰화, 벡터화한 후 Dataset으로 만드는 과정을 코드로 작성해보자. 우리는 여기서 ReviewDataset, Vocabulary, ReviewVectorizer 클래스를 만들 것이다. ReviewDataset: csv 파일을 받아 데이터셋을 로드하고, 이 데이터셋을 바탕으로 ReviewVectorizer 객체를 만든다. ReviewVectorizer: 각각 리뷰와 별점 정보를 담고 있는 Vocabulary 객체 2개를 만들어 관리한다. Vocabulary: 객체는 매핑을 위해 텍스트를 처리하고 어휘 사전을 만드는..
2021년 9-10월 회고
아아를 포기하게 만드는 날씨다. 모두 감기 조심하세용 💨 6학기, 대신 휴학 지금 생각해보면 난 9월에는 항상 매단 지 오래 된 현수막의 끈처럼 축 쳐져있었던 것 같다. 봄과 여름을 열심히 달리고 쉬어야 할 타이밍을 매번 놓쳐서 2학기는 항상 힘들게 보냈다. 올해가 되어 드디어 한계에 다다른 것 같았다. 추욱 늘어져있는 상태를 넘어서, 예전에 뜨개질 하겠다고 사놓고 서랍에 아무렇게나 꽁박아놓은 털실같이 제대로 꼬여서 풀릴 기미가 보이질 않았다. 처음으로 휴학을 진지하게 고민했다. 하지만 14년을 안 쉬고 달려왔는데, 쉽게 휴학을 선택하지는 못했다. 그러다 모 지인과 새벽까지 대화를 나누다, 누구 눈치 보지 않고 쉬면서 하고 싶은 걸 할 수 있는 때는 지금뿐이라는 말을 듣고 휴학을 하기로 마음을 굳혔다. ..
[파이토치로 배우는 자연어처리] 레스토랑 리뷰 감성 분류하기 - (1)데이터 전처리
이 글은 한빛미디어의 '파이토치로 배우는 자연어처리' 글을 읽고 정리한 것입니다. 퍼셉트론과 지도 학습 훈련 방법을 사용해 옐프(Yelp) 의 레스토랑 리뷰가 긍정적인지 부정적인지 분류하는 작업을 해보자. 데이터를 로드하고 전처리하는 전체 코드는 여기서 확인할 수 있다. Dataset: 옐프 리뷰 데이터셋 이 실습에서는 2015년에 옐프가 주최한 레스토랑 등급 예측 대회에서 사용되었던 레스토랑 리뷰 데이터를 간소화한 뒤 훈련 샘플과 테스트 샘플로 분류해 둔 데이터셋 중 10%를 사용한다. 전체 데이터셋 중 일부만 사용하는 이유는 크게 2가지가 있다. 작은 데이터셋을 사용하면 훈련-테스트 반복이 빠르게 이루어져 실험 속도를 높일 수 있다. 전체 데이터를 사용할 때보다 모델의 정확도가 낮다. 낮은 정확도는 ..
[kaggle courses] Pandas - Renaming and Combining
https://www.kaggle.com/residentmario/renaming-and-combining 이름 바꾸기 - rename, rename_axis rename()은 인덱스나 열의 이름을 바꿀 때 사용한다. 아래의 예제처럼 dictionary 안에 key 값은 기존 이름, value 값은 바꾸고자 하는 이름을 넣어 columns 파라미터에 할당하면 된다. rename()은 다양한 방법의 입력 포맷을 지원하지만, 보통 dictionary를 사용하는 게 가장 편하다. reviews.rename(columns={'points':'score'}) 인덱스 이름을 바꾸는 방법은 열 이름을 바꾸는 방법처럼 dictionary에 기존 이름과 바꾸고자 하는 이름의 쌍을 만든 뒤 index 파라미터에 할당하면 ..
[kaggle courses] Pandas - Data Types and Missing Values
https://www.kaggle.com/residentmario/data-types-and-missing-values Dtypes - dtype, dtypes, astype DataFrame이나 Series의 각 column의 데이터 타입을 가리켜 dtype이라고 부른다. 특정 column의 타입을 가져오기 위해 dtype 속성을 사용할 수 있다. 예를 들어, reviews DataFrame의 price 열의 데이터 타입을 알고 싶다면, 아래와 같이 작성하면 된다. reviews.price.dtype # output: dtype('float64') DataFrame 전체 columns의 데이터 타입 또한 알 수 있다. reviews의 dtypes 속성을 찍어보면, DataFrame의 각 column의 ..
[kaggle courses] Pandas - Grouping and Sorting
https://www.kaggle.com/residentmario/grouping-and-sorting 그룹별 분석 - groupby, agg groupby()로 같은 값끼리 하나의 인덱스로 묶을 수 있다. reviews.groupby('points').points.count() points 80 397 81 692 ... 99 33 100 19 Name: points, Length: 21, dtype: int64 groupby()로 같은 포인트 값을 갖는 와인 리뷰끼리 그룹을 생성한 뒤, points column으로 묶고 count()로 각 그룹별 빈도수를 체크했다. 위 결과는 value_counts()와 동일한 결과이기도 하다. groupby()는 기준에 따라 같은 값을 갖는 레코드끼리 DataFra..
[kaggle courses] Pandas - Summary Functions and Maps
https://www.kaggle.com/residentmario/summary-functions-and-maps 0. 데이터의 개요 알아보기 Pandas는 데이터를 재구조화하여 보여주는 간단한 개요 함수들을 제공한다. describe() 메서드같은 경우는 주어진 열에 대해 높은 수준의 정보를 제공한다. describe()는 데이터의 타입마다 각기 다른 식의 개요를 보여준다. 여기서 사용하는 예시 DataFrame인 reviews는 아래와 같다. reviews.points.describe() count 129971.000000 mean 88.447138 ... 75% 91.000000 max 100.000000 Name: points, Length: 8, dtype: float64 위의 결과는 데이터 타..
[kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)
https://www.kaggle.com/residentmario/indexing-selecting-assigning 0. Python 기본 접근자 DataFrame의 각 column에 접근할 수 있는 방법은 여러가지가 있다. 그 중, 파이썬이 기본적으로 제공하는 2가지 방법에 대해서 먼저 알아보자. 첫번째 방법으로, DataFrame의 column index를 하나의 attribute로서 접근하는 방법이다. 이 방법으로 위의 DataFrame의 country column에 reviews.country 코드를 통해 접근할 수 있다. reviews.country 0 Italy 1 Portugal ... 129969 France 129970 France Name: country, Length: 129971,..
[kaggle courses] Pandas - Creating, Reading and Writing
0. Pandas 시작하기 천리길도 임포트부터 import pandas as pd 1. 데이터 생성하기 Pandas에는 DataFrame과 Series라는 핵심 객체들이 있다. DataFrame Dataframe은 특정 값을 담고 있는 개별 엔트리들의 배열을 포함한 테이블이다. 각 항목은 1개의 행, 1개의 열과 상응한다. pd.DataFrame() 구조체를 통해 DataFrame을 생성할 수 있다. 열 이름('Yes', 'No')을 key로, 엔트리 리스트를 value로 하는 딕셔너리를 통해 새 DataFrame을 정의할 수 있다. pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]}) 아래의 표는 위와 같은 코드를 입력했을 때의 결과다. Yes No 0 50 131 1 ..
GDSC(Google Developer Student Clubs) Lead 도전기
두 달을 미루다가 드디어 쓰는 GDSC Lead 지원, 합격 후기입니다 (꒪⌓꒪)! 이 글을 검색해서 보시게 될 분들은 GDSC Lead에 관심이 있거나, 지원서를 작성하고 계신 분들, 혹은 이미 같이 일하고 계신 분일 수도 있을 것 같네요 😲 제 글이 여러분들께 어떤 식으로든 도움이 되었으면 좋겠습니다. 💙 시작하기 전: Google Developer Student Clubs란? GDSC(Google Developer Student Clubs)는 Google Developer Community Program 중 하나로, 구글의 기술에 관심있는 대학생들을 위한 대학교 커뮤니티다. 2021년 하반기 기준 전세계 1500개 이상의 대학교에서 GDSC 활동을 하고 있으며, 한국에서는 21개의 대학교가 GDSC..