728x90

전체 글 92

1. 자연어 처리(NLP, NLU, NLG) - 수집, 정제, tokenization

# 자연어(Natural Language)란 무엇일까. 위키피디아에 따르면 사람들이 일상생활에 쓰는 언어를 인공적으로 만들어진 언어와 구분하여 쓰는 말이라고 되어있다. # 그렇다면 NLP(Natural Language Processing) 은 무엇일까. NLP 에는 크게 NLU 와 NLG 로 이루어져 있다. NLU : 자연어를 컴퓨터가 이해할 수 있는 값으로 바꾸는 과정 NLG : 컴퓨터가 이해한 값을 사람이 이해할 수 있도록 바꾸는 과정 내가 공부하는 자연어 처리는 딥러닝을 기반으로 한다. 자연어 처리 과정은 다음과 같다. 자연어 처리에서 흔히 아는 것 중 하나는 "감정 분석" 이다. 문제 정의 단계에서는 무엇을 할 것인지에 대해서 정하는 단계인데 '나는 감정 분석을 구현해보겠다.' 라고 생각한다면 그..

[프로그래머스] level1 - 모의고사 : 파이썬(Python) 풀이

문제 프로그래머스 level1 모의고사 문제 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 코드 def solution(answers): answerss = []; answer = [] a = [1,2,3,4,5]; count_a = 0; a_a = 0 b = [2,1,2,3,2,4,2,5]; count_b = 0; b_b = 0 c = [3,3,1,1,2,2,4,4,5,5]; count_c = 0; c_c = 0 for i in range(len(answers)): if(a[a_a] == answers[i..

코딩코딩 2020.12.24

파이썬 - Pandas 기초 정리(DataFrame - 3) : inner join / outer join

이제 정말 유용하게 사용되는 Groupby 에 대해 알아볼 차례이다. 이 게시물은 이전 게시물들과 이어진다. (타이타닉 데이터 사용) # groupby df.groupby('Pclass').groups --------------------------------- {1: Int64Index([ 2, 4, 7, 12, 24, 28, 31, 32, 35, 36, ... 854, 857, 858, 863, 868, 872, 873, 880, 888, 890], dtype='int64', name='PassengerId', length=216), 2: Int64Index([ 10, 16, 18, 21, 22, 34, 42, 44, 54, 57, ... 849, 855, 862, 865, 866, 867, 875,..

파이썬 - Pandas 기초 정리(DataFrame - 2)

이전 게시물에 이어서 학습을 진행한다. 데이터를 분석하여 예측을 하기 위해서는 예측하는 데이터와 어떤 컬럼이 관계가 깊은지 알아야 한다. 이런 경우에 알아보는 것 중 하나가 "상관계수" 이다. 상관계수는 -1 ~ 1 사이의 숫자이다. 예를 들어 A 컬럼과 B 컬럼의 상관계수를 알아봤을 때 1에 가깝다면 A가 증가할 때 B 가 증가하는 형태를 이룬다고 볼 수 있고, -1 에 가깝다면 A가 증가할 때 B는 감소하는 추세를 보인다고 볼 수 있다. 만약 0에 가깝다면 A 와 B는 별로 관계가 없다는 것을 깨달을 수 있다. 1. 상관계수 알아보기 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline 상..

파이썬 - Pandas 기초 정리(DataFrame - 1)

Pandas 모듈에서 가장 많이 사용되는 것이 DataFrame 이라 해도 과언이 아니다. 저번 게시물에서는 Series(1차원)을 다루었지만 이번에는 DataFrame(2차원)을 다룬다. DataFrame 2차원(row, column) 으로 구성되어 있음 일반적인 데이터(csv 등)가 이런 형식으로 되어 있음 1. DataFrame 만들기 일반적으로 DataFrame 은 key 와 value 로 이루어져 있다. data = {10:['a', 'e', 'f'], 20:['b', 'o', 'q'], 30:['c', 'z', 's']} data_frame = pd.DataFrame(data, index=np.arange(1,4)) data_frame --------------------------------..

파이썬 - Pandas 기초 정리(Series)

파이썬을 사용했을 때 데이터 분석에 빠질 수 없는 부분이 Pandas 모듈이다. 외부 파일을 읽어 분석하는데 주요한 기능들이 많이 저장되어 있다. import pandas as pd 모듈을 불러올 때 "pd" 를 가장 많이 사용하기 때문에 위와 같이 선언한다. 1. Series 기초 1차원 배열을 나타내며, numpy의 ndarray 를 기반으로 함. 0개 이상의 데이터를 가질 수 있다. index 는 0 부터 시작. # 데이터 입력하기 pd.Series([1,2,3,4,5]) --------------------------------- 0 1 1 2 2 3 3 4 4 5 dtype: int64 데이터 [1,2,3,4,5] 라는 1차원 배열을 선언하였더니, 각각의 index 가 같이 출력되는 모습을 볼 ..

파이썬 - Numpy 기초 정리(2)

이전 게시물에서 언급하였듯이 numpy 모듈은 연산하는데에도 장점이 많다. 연산에 대표적으로 더하기(add), 빼기(subtract), 곱하기(multiply), 나누기(divide) 가 있는데, numpy 연산은 ndarray 끼리 가능하기 때문에 일반 list 라면 np.array 를 선언해주어야 한다. 또한, 각각 차원이 같고 모양(shape)이 같은 배열끼리만 연산이 가능하다. # 연산에 필요한 배열 선언 a = np.random.randint(100, size=(3,3)) b = np.random.randint(100, size=(3,3)) print(a) print(b) ----------------------------------------- [[62 77 37] [27 52 30] [ 8 ..

[프로그래머스] level1 - 같은 숫자는 싫어 : 파이썬(Python) 풀이

문제 프로그래머스 level1 같은 숫자는 싫어 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 코드 def solution(arr): n = 0; answer = [] while(n < len(arr)-1): if(arr[n] == arr[n+1]): if(n == len(arr)-2): answer.append(arr[n]) n += 1 else: n += 1 else: answer.append(arr[n]) n += 1 if(n == len(arr)-1): answer.appe..

코딩코딩 2020.12.17

[프로그래머스] level1 - 2016년 : 파이썬(Python) 풀이

문제 프로그래머스 level1 2016년 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 코드 import datetime def solution(a, b): week = {0:"MON", 1:"TUE", 2:"WED",3:"THU", 4:"FRI", 5:"SAT", 6:"SUN"} return week[datetime.date(2016,a,b).weekday()] 코드풀이 문제는 간단하다. a, b 를 입력받아서 2016년 a 월 b 일이 무슨 요일인지 출력하면 되는 ..

코딩코딩 2020.12.16

파이썬 - Numpy 기초 정리(1)

데이터 사이언스 분야에서 쉽게 접하는 것이 바로 Numpy 이다. 대체로 다차원 배열(ndarray)을 다룰 때 사용하는 모듈이기도 하다. Numpy 를 깊게 배울 필요는 없지만 이런 기능이 있다고 알아둔다면 나중에 필요한 기능이 생각날 때 떠오를 수 있을 것이다. Numpy 는 list 보다 빠르고 적은 메모리를 사용하여 좀 더 유리하다. 그리고 수학적인 계산(선형대수학, 통계 등)을 위한 함수가 많이 있어 상황에 맞게 유용하게 사용할 수 있다. 1. 다차원 배열 계산 그림과 같은 행렬이 있다고 가정하자. 각 배열의 원소마다 +1 씩 더하고 싶다면 어떤 코드를 작성해야 할까? num = [[1,2,3], [4,5,6], [7,8,9]] for i in range(len(num)): for j in ra..