주피터 노트북(Jupyter Notebook)으로 간단하게 프로그램을 돌릴 때, 평상시에는 문제가 없지만 용량이 큰 것을 돌리기 위해서 C가 아니라 다른 드라이브로 돌려야 되는 경우가 종종 있습니다. 이럴 때에는 드라이브를 변경해야 하는데요 주피터의 드라이브를 변경하는 법을 포스팅 하도록 하겠습니다. 주피터 노트북 환경설정 생성 우선 드라이브를 변경하기 위해서는 주피터 환경설정 파일을 만들어야 합니다. (kogpt) C:\Users\user>jupyter notebook --generate-config Writing default config to: C:\Users\user\.jupyter\jupyter_notebook_config.py 위와 같이 jupyter notebook --generate-con..
자바(Java)로만 엘라스틱서치(Elastic Search)에 대해서 다뤄봤는데 이번에는 파이썬(Python)으로 엘라스틱 서치를 다뤄보도록 하겠습니다. 데이터는 추후 주가 분석을 등을 하기 위해서, 삼성전자의 주식 데이터를 저장해보는 것으로 해보겠습니다. 삼성전자 주식 데이터 야후의 Finance라는 사이트에 가시면, 종목을 입력할 수 있고 삼성전자의 종목(005930.KS)[1]를 입력하면 위와 같이 삼성전자 종목 정보로 넘어갑니다. 화면의 붉은색 네모박스로 체크한 곳을 보면, Download라고 되어 있는데 이 곳을 클릭하면, 삼성전자의 Historical Prices 데이터를 받을 수 있습니다. 귀찮은 분들을 위해서 아래의 파일을 받으셔도 됩니다. 삼성전자 주가 데이터 직접 위 사이트에서 받으시거..
텐서(Tensor)라고 하면 텐서플로우를 떠올리기 쉽지만, 사실 딥러닝에서는 데이터를 처리하기 위한 데이터의 형태라고 이해하면 된다. 0차원의 데이터는 보통 스칼라(Scalar)라고 하는데 파이토치에서는 0-Tensor(랭크 0)이며, 스칼라 데이터의 나열인 벡터는 1-Tensor(랭크 1), 행렬은 2-Tensor(랭크 2)이다. 텐서는 파이썬의 대표적인 라이브러리인 넘파이(numpy)와 유사하고 넘파이와 데이터를 쉽게 서로 변환 할 수도 있다. 위 내용들을 좀 더 쉽게 설명하자면, 우리가 프로그램으로 사용하는 변수들을 딥러닝으로 처리하기 위해서는 변환을 해야 하는데 그 단위가 바로 텐서라고 생각하면 된다. 텐서 데이터타입 [1] 데이터 타입 dtype CPU tensor GPU tensor 32-bi..
데이터 분석을 해야 하거나 할 줄 아는 사람이라면 처음에 데이터의 형태를 파악해야 할텐데 히스토그램(Histogram)은 데이터의 분포도를 볼 때 매우 유용한 통계 시각화 기법이다. 원래 통계 기법은 R이 상징적인 언어였으나 최근에는 데이터 분석을 하는 사람들이 굳이 R로 하지 않고 파이썬에서 하는 경우가 많아졌다. 히스토그램용 데이터 가져오기 (housing dataset) import os import tarfile import urllib.request as urllib import pandas as pd data_url = "https://raw.githubusercontent.com/ageron/handson-ml2/master/datasets/housing/housing.tgz" data_pa..
엑셀을 쉽게 읽는 방법으로 판다스(Pandas)를 활용하는 방법도 있지만, OpenPyXL을 사용하여 엑셀을 디테일하게 컨트롤 할 수 있다. 테스트에 사용한 엑셀 키움증권과 카카오에 있는 FAQ 내용을 몇개 가져와서 2개의 sheet를 만든 구조이며 컬럼은 질문과 답변으로 되어 있는 구조이다. 모든 데이터 읽어오기 import openpyxl as xl wb = xl.load_workbook('C:/Project/steel/faq.xlsx') for sheet_nm in wb.sheetnames: print('*' * 100) print('시트명:', sheet_nm) sheet = wb[sheet_nm] for row_data in sheet.iter_rows(min_row=1):# min_row는 시..
챗봇을 만드는 방법은 상당히 많이 있으나 가장 고전적이면서 가장 많이 활용되고, 기업들이 가장 많이 활용하고 있는 Rule-Based 챗봇을 만들어보도록 한다. 사실 룰기반 챗봇은 다른 말로 표현하는 것이 워낙 많기도 하다. 기업에서 상용적으로 사용하는 Rule-Based는 대표적으로 Intent(의도)와 Entity(개체)를 관리해서 하는 경우가 많고 이들도 큰 틀로 Rule-Based라 할 수 있다. Rule-Based 설계하기 Rule-Based가 뭔지 모르는 분들에게 간단하게 설명을 한다면 규칙을 직접 설계해서 어떤 말이 만들어진 규칙에 해당한다면 Answer를 하는 것이다. 여기서 설명할 Rule-Based는 너무나 방대한 챗봇을 만드는 것이 아니라 간단하게 만들어볼 것이며 Entity와 Int..
파이썬은 데이터 분석에 매우 강력한 기능을 제공하고 있고, 나이브베이즈와 같은 머신러닝은 sklearn(sk런 혹은 사이킷 런이라고 말함)에서 다양한 라이브러리를 제공한다. 나이브베이즈에 대해서 제대로 모르는 분들이 계시다면, 우선 필자가 작성했던 나이브베이즈 포스팅을 보면 이해가 될 것이다. 쉽고 강력한 머신러닝, 나이브 베이즈 분류 (Naive Bayes Classification) 쉽고 강력한 머신러닝, 나이브 베이즈 분류 (Naive Bayes Classification) ※ 베이즈 정리를 모르는 분들은 나이브 베이즈를 알기에 앞서 베이즈 정리에 대해서 먼저 이해해야 한다. 확률의 함정을 간파, 베이즈 정리(Bayes' Theorem) 확률의 함정을 간파, 베이즈 정리(Bayes' T needja..
기존에 작성했던 아나콘다 설치 방법이 변경돼서 빠르게 재포스팅을 하고자 한다. 변경된 아나콘다 내 기억이 정확한지는 모르겠지만, 기존에 아나콘다는 선택하는 것이 많지 않았다. 마치 완벽한 오픈소스처럼 보였고 상업 라이센스가 존재하지 않는 것마냥 보였던 것으로 기억한다. 그러나 엘라스틱도 그렇고 아나콘다 역시나 최근 들어서 라이센스가 다양화 되었기 때문에 함부로 설치하면 안될 것으로 보인다. https://www.anaconda.com/products/individual 아나콘다의 제품은 현재, 개인, 팀에디션, 엔터프라이즈 에디션, 프로페셔널 서비스로 나뉘며 무료로 쓰는 제품은 individual(개인) 제품을 선택하면 된다. 위 링크는 개인 제품 링크이니 들어가서 다운로드 받으면 된다. 본인의 OS와 ..
케라스(Keras)와 텐서플로우(Tensorflow)로 구현한 시퀀스투시퀀스(Seq2Seq) 모델로 챗봇을 구현하고 있는데 예전 tensorflow에서는 Java에서 tensorflow를 지원해서 호출하였지만 현재 tensorflow 2.0은 Java에서 호출이 지원되지 않는다. 이를 해결하기 위해 자바에서 모델을 호출하는 방식이 아닌 python에서 자체적으로 웹서버를 띄우기로 하였고, Flask 라이브러리를 사용하였다. 라이브러리설치와 선언 > pip install flask-restful (python) E:\Project\universe\source-python>pip install flask-restful Collecting flask-restful Downloading Flask_RESTful..
프로그램을 짜게 되면, 참(True) 혹은 거짓(False)과 같은 값을 자주 활용하게 됩니다. 이러한 값 혹은 형태를 불리언(Boolean) 혹은 불(Bool)이라고 합니다. 참과 거짓 값을 IF 조건절에 활용하게 되면, 프로그램을 분기처리할 수 있습니다. IF조건은 For 반복문과 함께 가장 많이 활용이 되며, 이 2가지만 알아도 간단한 프로그래밍은 문제없이 만들 수 있습니다. 사실 프로그램이라 하면, IF조건과 For문의 심화과정(?)이라고 생각해도 제 개인적인 생각으로는 크게 다르지 않는 것 같네요. Bool 형 예제 12345678910111213141516171819202122>>> apple = True; # 사과가 있다>>> orange = False; # 오렌지는 없다>>> orangeF..
본 포스팅은 개발자가 아닌 비개발자분들도 포함하여 진행되는 강의입니다. 그러다보니 개발자분들은 너무 쉬운것을 왜 저렇게 많이 설명하지?라는 생각을 가질 수 있는 점 미리 양해 바랍니다. 현재 파이썬을 다루는 사람들을 보면 개발자분들도 물론 많지만 데이터 분석이나 통계 등을 하기 위해서 다루는 분들 그리고 최근에는 텐서플로우같은 머신러닝, 딥러닝등을 다루기 위해서 배우는 분들도 있기 때문에 최대한 자세히 쉽게 다루고자 노력하겠습니다. For 문을 이용한 반복문 처리 왠만한 프로그램 언어(C, C++, Java, Python 등등)에는 대부분 For라는 반복문을 제공합니다. 우리가 흔히 프로그램은 2가지만 알아도 왠만큼 다 만들 수 있다라고 합니다. 그 중에 하나는 제어문(If ~ else)이고, 그리고 오..
다른 컴퓨터에서는 에러가 발생하지 않았지만, 회사에 있는 컴퓨터에서 파이썬에 konlpy(파이썬 한국어 형태소 분석기)를 호출하기 위해 필요한 jpype라는 라이브러리를 설치하는 도중에 "Microsoft Visual C++ 14.0 is required" 에러가 발생했습니다. 해결 방법이 다양하게 있는 것으로 보이나(stackoverflow나 주변에 있는 사람들이 말한 내용들을 토대로 하면..) 제 경우에는 별도의 추가 설치를 하는 것으로 해결이 됐습니다. 문제를 쉽게 해결하려는 노력보다 이럴땐 정공법을 택해서 가는 것이 더 나아 보입니다. maven 하나로 모든 것이 끝나버리는 자바 개발자로서 파이썬의 이런 자질구레한 상황들로 개발이 지연될 때는 좀 짜증나긴 합니다. 물론 자바 개발도 세팅하면 농담으..