앞 장에서는 '통계 기반 기법'으로 단어의 분산 표현을 얻었는데, 이번 chapter 3에서는 더 강력한 기법인 '추론 기반 기법'을 살펴보자. 추론 과정에 신경망을 이용하는데, 여기서 그 유명한 word2vec가 등장한다. 3.1 추론 기반 기법과 신경망 단어를 벡터로 표현하는 방법은 크게 '통계 기반 기법'과 '추론 기반 기법'이다. 두 기법 모두 분포 가설이 배경이고, 이번 절에서는 추론 기반 기법의 이점을 설명한다. 그 다음 word2vec 전처리를 위해 신경망으로 '단어'를 처리하는 예를 보자. 3.1.1 통계 기반 기법의 문제점 통계 기반 기법은 주변 단어의 빈도를 기초로 단어를 표현했다. 구체적으로는 단어의 동시발생 행렬을 만들고, 행렬에 SVD를 적용하여 밀집벡터(단어의 분산 표현)를 얻었..
분류 전체보기 검색 결과
2.1 자연어처리란 한국어와 영어 등 평소에 쓰는 말을 자연어(natural language)라고 한다. 자연어 처리(natural language processing)를 문자 그대로 해석하면 '자연어를 처리하는 분야'이고, 쉽게 말해 '우리의 말을 컴퓨터에게 이해시키는 기술이자 분야'이다. 우리의 말은 일상생활에서도 느끼지만, 의미나 형태가 유연하게 바뀔수도 있고 때론 같은 의미의 문장도 여러 형태로 표현되며 세월이 흐르면서 새로운 말이나 새로운 의미가 생겨나거나 사라질 수 있다. 이렇게 언어라는 것이 모호하고 중의적이기 때문에 컴퓨터에게 자연어를 이해시킨다는 것은 매우 어려운 일이기 때문에, 이러한 일들을 할 수 있다면 수많은 사람에게 도움을 줄 수 있다. 2.1.1 단어의 의미 우리의 말은 '문자'..
rpubs.com/verbena/santander www.kaggle.com/c/santander-product-recommendation/overview 사이트의 자료를 보고 정리했습니다. Santander Product Recommendation 소개 산탄데르 은행은 1857년 지방은행으로 출발해, 급성장 후 유럽과 북남미 등지에 1만4000여 지점과 1억명 이상의 고객을 보유한 자산규모 기준 세계 15위 은행이다. 현재 산탄데르 다양한 금융 상품을 판매하여 매출을 올리는데, 자사의 금융 상품을 사용 중인 고객을 대상으로 아직 고객이 사용하고 있지 않은 다른 금융 상품을 소개하여 만족도를 높임과 동시에 매출을 올리고 싶어 한다. 고객을 만족시킬 수 있는 가장 좋은 상품 추천 방법은 숙련된 직원이 고객..
조건에 맞는 데이터 선택하기(boolean indexing) x % 2 == 0을 사용해 데이터들을 boolean형태로 바꿔준다. even_mask라는 변수에 조건 대입 원래있던 변수인 x에 대괄호를 사용해 x[even_mask]를 사용하면 해당 조건에 True인 값들만 다시 ndarray 형태로 나타내준다. 변수를 생략하고 x[조건]을 사용해도 바로 나타낼 수 있다. 다중조건 사용해서 데이터 선택하기 앞서는 단일조건에 해당한 이야기이다. 다중조건을 사용할 경우가 많은데, numpy에서는 and, or, not같은 논리 연산자 사용이 불가능하다. 그래서 and - & , or - |(엔터키 위에 원화 shift)로 대체하여 사용할 수 있다. 마찬가지로 조건을 가로로 묶고(중요), 연산 기호를 사용하여 다..
기본 사칙연산하기(더하기, 빼기, 곱하기, 나누기) 기본적으로 numpy의 연산은 python에서 연산과 비슷한 개념을 갖고 있다. 단 주의해야할 점은 행렬의 갯수가 같아야 한다. m x n 의 데이터 형태면 연산할 데이터의 형태가 모두 같아야 한다. (broadcasting을 활용해 예외도 나올 수 있다. broadcasting은 다음에 알아보도록 하자) - np.add(x, y) -> 더하기 연산 : 이와 같은 내장함수 형태로 계산을 가능하고, x + y와 같이 연산해도 같은 값이 나온다. - np.substract(x, y) = x - y -> 빼기 연산 - np.multiply(x, y) = x * y -> 곱하기 연산 - np.divide(x, y) = x / y -> 나누기 연산 통계함수 활용..
원하는 데이터 값(들) 가져오기 인덱싱(원하는 요소 추출, 차원축소의 기능) 1차원 데이터에서 값 가져오기 numpy에서 인덱싱은 파이썬 리스트의 인덱싱과 비슷한 원리이다. [ ]를 사용하여 값을 추출해온고, 항상 첫 번째 값은 0부터 시작이다. - 변수명[n] -> n+1번째 값을 가져온다. - 변수명[-1] -> 마지막 값을 가져온다. - 변수명[n] = 값 -> 원하는 위치에 값을 저장하여 데이터를 바꿀 수도 있다. 2차원 데이터에서 값 가져오기 2차원 데이터는 행과 열이 있느 데이터이다. (수학에서 x, y 좌표평면과 비슷한 개념이고 선형대수의 행렬이랑 같은 개념이다) - 변수명[m, n] -> m+1번째 행, n+1번째 열을 가져온다. (마찬가지로 0부터 시작이여서 그렇다) - 변수명[m] ->..
최근댓글