2015년 7월 31일 금요일

구글 지도 API를 활용한 지명 주소와 위/경도 주소 변환

구글 지도 API를 활용해서 지명 주소와 위/경도 주소 변환 예제를 기록한다. * 참조 : https://developers.google.com/maps/documentation/geocoding/intro * 무료 제약사항 : 24시간 동안 2500건, 초당 5건 질의 가능 미리 key 값을 구글 개발 콘솔에서 발급 받는다. (위 참조 링크 확인) In [1]: # 예제키 key = '&key=AIzaSyxxxxiABIfkNsA1237xA_xdb2xyszBfHUI' In [2]: # 필요한 라이브러리 로딩 import urllib import...

2015년 7월 30일 목요일

행정구역 단위 총인구 변화 조사 ( 2013년 ~ 2014년 )

"지역 별로 인구 증가가 어떨까?"라는 주제는 가지고, 통계자료를 구하고, 시각화하는 과정을 소개한다. 1. KOSIS에서 행정구역(시군구)별 최근 기간(2013 ~ 2014년) 자료를 수집한다. * 인코딩 문제로 맥북에서 작업 할때는 언어를 영어로 출력해서 작업하거나, 출력 화면 테이블을 클립보드에 복사해서, Numbers 같은 툴에서 작업하면 된다. 필자는 Numbers에서 2014년 인구에서 2013년 인구의 차이를 미리 구했다. 2. 인구 변화를 표현할 지도 자료를 구한다. *...

2015년 7월 29일 수요일

자연어 처리를 위한 준비 과정와 간단한 응용사례 소개

학습 방식으로 빠른 성능을 보이는 MeCab 형태소 분석기를 구성하고, 자연어처리(NLTK)를 활용한 간략한 응용 예제를 소개한다. MeCab 형태소 분석기 구성하기  1. MeCab Korean 설치  - 한국어의 특성에 대한 가중치 부분 수정된 버전  - https://bitbucket.org/eunjeon/mecab-ko/downloads/ 2. MeCab Korean Dicationay 설치  - 한국어 말뭉치로 학습되어진 모델(사전)  -...

2015년 7월 27일 월요일

전체 사망자 대비 성별/연령별 자살 사망자 비율

국가통계포털(KOSIS)를 뒤적거리다 움찔한 자료가 있어서 오려 봅니다. (현재 기준으로 가장 최신 자료) * 2013년 연령별 사망자 수 * 2013년 연령별 전체 사망자 대비 자살 사망자 비율 평소 청소년 자살과, 고령화로 인한 노년층 자살을 많이 다루지만, 비율로 보면 사회에 집입하고 자리를 잡아가는 계층 전반에 걸쳐 있는 것을 추정해 볼 수 있다. 특히 "25세 ~ 30세"에 사망한 여성분들의 자살 비중이 50%가 넘었다.  최근 TV에...

2015년 7월 24일 금요일

Spark summit 2015의 Netflix 개선 사례 모의 구현하기

HOT cluster computing framework 인 SPARK에 대한 사용 경험을 바탕으로, 최근 spark summit 2015에 소개된 Netflix 개선 사례 모의 구현을 목표로 지속 갱신할 문서를 만든다. 필자가 참고한 architecture 문서는 다음과 같다. https://spark-summit.org/2015/events/spark-and-spark-streaming-at-netflix/ 빅(BIG)한 message event들이 발생하는 Neflix, LinkIn에서...

집단지성 위키백과(Wikipedia) API 활용하기

세계인의 집단지성으로 만들어지는 위키백과 사전의 데이터 조회 API에 대해서 간략히 다룬다. 참고 : https://wikipedia.readthedocs.org/en/latest/code.html 예제로 필자의 현재 위/경도 정보를 통해서, 반경 10km에 등록된 "의미군"을 찾고, 관련 내용을 조회해 보겠다. ( "의미군" : 위키백과 속성으로는 "Title"과 매칭된다.) 1. 현재 위/경도 정보는 구글 지도에 들어가면 바로 조회된다. 오른쪽 하단에 내 위치를 클릭하고, 주소...

100% 데이터 오너쉽 오픈소스 웹 분석 툴 PIWIK 소개

웹분석(Web Analytics)하면 대략 GA(Google Analytics)를 많이 떠올린다. GA의 사용 편의성과 기능은 매우 뛰어나고, 구글의 서포트와 함께 지속적으로 개선 중이다. 아카데미를 통한 교육에도 매우 적극적이다. 다만, 일정 이상의 트래픽에 대해서는 제약(유료라이센스필요)이 있으니 도입할때 주의하자. 영화 매트릭스에 보면, 에이전트들의 무자비한 강력함도 매트릭스 안에서 제한된다라는 문구가 있다. 관련해서,  - 100%의 데이터 오너쉽 그리고 무료  -...

2015년 7월 22일 수요일

아이파이썬(IPython) 노트북에서 깔끔한 플롯 그리는 방법

판다곰(Pandas)과 한몸 같은 2D 플롯 라이브러리 matplotlib만 있으면, 데이터의 의미를 전달하기에 충분하다. 하지만, 인터렉티브하고 깔끔한 플롯이 필요하다면, Bokeh가 당신을 도와 줄 것이다. Bokeh : http://bokeh.pydata.org/en/latest/ 페이지를 참고 해서, 간략한 테스트를 진행해 본다. In [1]: # 아이파이썬 노트북 관련 모듈을 로딩하고, from bokeh.io import output_notebook,...

아이파이썬(IPython) 노트북에서 플롯(Plot)에 한글 폰트 사용하는 방법

플롯 영역에서의 한글 문제는 어플리케이션을 가리지 않고, 다양하게 발생하지만, 최근에 발생하는 이슈는 대략 폰트 관련된 부분이 많다. 필자는 R Studio, PIWIK과 같은 툴 에서도 한글이 깨지는 문제를 발견 했고, 모두 한글 폰트를 지정하는 방법으로 해결했다. 폰트는 OS 시스템에서 제공되는 기본 폰트 영역을 변경하거나, 각 어플리케이션에서 지정(추가/변경) 가능한 기능을 찾아서 해결하자. 이번 글은 표제와 같이, 리눅스 기반의 2D 플롯 라이브러리인 Matplotlib에서...

2015년 7월 21일 화요일

판다곰(pandas)으로 주식 시세 확인 및 이동평균선 구하기

분석 라이브러리인 판다스(Pandas)를 통해서 주식 시세를 확인 하고,이동평균선(7일) 구하는 과정을 요약합니다. 작성하는 시점에 판다스(Pandas)의 원격 데이터 수집 모듈이 독립을 하였기에, 먼저 관련 내용을 정리해 봅니다. 판다곰 문서 중에서, http://pandas.pydata.org/pandas-docs/stable/remote_data.html 관리 차원에서 분리하는 것으로 보이고, 0.17+ 버전 부터는 pandas_datareader를 통해서...

PostgreSQL의 대형 속성 저장 기술 (TOAST) 요약

PostgreSQL의 데이터 용량 관리에 대해서, 최근에 작업한 80만건 정도의 웹크라울링 데이터의 작업 중에, 흥미로운 이야기가 있어서 소개 합니다. PostgreSQL 9.4 버전에서 메타(META)과 함께 HTML 페이지를 보관 할때, * DB 사이즈가 30G * 덤프(pg_dump)의 압축레벨 1로 압축 파일을 생성 했을때 사이즈가 22GB * 압축을 풀었을때 파일 사이즈가 90G 코끼리는 기본적으로 가변 타입에서 8k를 넘는 문자열을 압축해서 보관하고, 관련...

2015년 7월 17일 금요일

쉬는 자원을 활용하기 위한 파이톤 멀티프로세싱 요약

멀티프로세싱에 대해서, 데이터가 양적으로 빅(BIG) 해지면, 수행 성능의 차이를 비율로 바라보는 센스가 필요하다. 가령 10초 걸리는 일을 1초에 한다는 것은, 10년 걸리는 일을 1년에 한다는 멋진 일이다. 성능 문제의 대부분은 고가의 장비로 해결 가능하지만, 가난한 우리들은 있는 자원을 최대한 활용해야 한다. 최근 CPU 집약적인 많은 양의 원시 데이터를 파싱할때, 시간을 비약적으로 줄인 파이톤 멀티프로세싱을 소개한다. 쉬는 자원을 활용하기 위한 멀티프로세싱의...