본문 바로가기

분류 전체보기8

Selenium과 BeautifulSoup을 활용한 네이버 인기 급상승 검색어 크롤링 및 시각화(matplotlib, wordcloud) 지난 포스팅에서 웹 크롤링을 위해 selenium과 BeautifulSoup을 설치했다. 이번엔 실제로 웹 크롤링을 간단하게 해보고 그 데이터를 시각화해 볼 것이다. 데이터를 분석할 때 통계 기술들을 활용하여 표본 데이터로 더 큰 규모의 데이터 패턴을 추측하기도 하고, 잘 알려진 비지도 모델을 활용해 데이터의 패턴을 찾기도 한다. 위와 같은 방법도 좋지만 데이터를 시각화해보는 것 역시 가치있는 정보를 제공해 줄 가능성이 있으며, 무엇보다 가시적인 결과는 전달하는 바가 명확하다. 오늘은 간단히 네이버에서 인기 검색어를 수집하고 그 빈도를 시각화 해볼 것이다. 1. 네이버 웹 페이지 네이버 메인 페이지의 급상승 검색어를 클릭하면 클릭 시점 기준으로 1위부터 20위까지 인기 검색어를 볼 수 있다. 메인 페이지.. 2020. 3. 19.
Mac OS 카탈리나(Catalina), 콘다(Conda)를 활용한 웹페이지 크롤링 환경 구축(Selenium, BeautifulSoup) 데이터를 분석하고 머신 러닝/딥러닝 모델을 학습할 때, 많은 연구자들이 활용하고 검증한 공인된 데이터 셋을 활용하는 상황이 가장 이상적이지만, 말 그대로 이상적인 경우에 가깝기 때문에 분석/모델링 도메인에 따라서 필요한 데이터 셋을 직접 수집해야하는 경우가 있다. 웹페이지 크롤링은 수많은 방법 중 하나로 본래 목적은 방대한 정보를 제공하는 서비스(e.g. 검색 엔진)들이 데이터를 최신 상태로 유지하기 위해 사용되었으나 뉴스 분석, 추천 시스템 등의 많은 양의 텍스트 데이터가 필요한 자연어 처리 영역에서도 사용된다. 크롤링을 쉽게 할 수 있는 많은 파이썬 기반 오픈소스 라이브러리들이 있다. 그 중 Selenium과 Beutifulsoup4을 활용한 웹페이지 크롤링 환경을 구축한다. 웹페이지 크롤링에서 Se.. 2020. 3. 14.
Mac OS 카탈리나(Catalina), 오류 22 - 유효하지 않은 변수 아카이브 유틸리티(Archive Utility) zip 압축파일 한글 깨짐 원인 친구가 영화 자막을 다운로드했는데 압축 해제가 안된다고 해서 나도 호기심이 생겨 그 원인을 찾아봤다. 압축해제를 했을 때 다음과 같은 오류가 생성되는 경우가 있다. 이 당황스러운 오류 메시지를 먼저 받은 사람들이 나와 친구 외에도 꽤 많은 사람들이 있었고, Mac OS 카탈리나 업그레이드 이후로 애플 커뮤니티에도 이 오류와 관련된 질문들이 포스팅되었다. 위와 같은 오류 메시지를 만나는 상황은 근본적인 문제는 아니지만, 2가지 정도가 있다. 윈도우에서 압축한 zip 파일을 Mac 환경으로 옮겨서 압축 해제했을 때 웹에서 다운로드한 zip 파일을 압축 해제했을 때 문제의 원인을 다루기 전에 이 문제의 해결 방법은 4가지 정도를 말할 수 있지만 모든 방법이 간단하고 허무하다. 한글 문자를 포함하지 않는 파일만.. 2020. 3. 13.
스위프트(Swift) 가이드 (2): Printing Constants and Variables, Comments, Semicolons, Integers, Integer Bounds, Int, UInt, Floating-Point Numbers Printing Constants and Variables 사용자가 선언한 상수(Constant)와 변수(Variable)은 print(_:separator:terminator:) 함수와 함께 출력을 할 수 있다. print(_:separator:terminator:) 함수는 하나 이상의 값을 적절한 출력 채널에 출력하는 global function이다. Xcode에서 print(_:separator:terminator:) 함수는 Xcode의 콘솔에 결과를 출력한다. separator와 terminator 파라미터는 기본 값(defualt value)를 갖기 때문에 이 함수를 출력 할때 생략해도 된다. print(_:separator:terminator:) 함수에서 terminator에 설정된 기본 값(.. 2020. 3. 10.
스위프트(Swift) 가이드 (1): The Basics, Constants and Variables, Type Annotations, Naming Constants and Variables The Basics Swift는앱 개발을 위한 새로운 프로그래밍 언어이다. Swift의 상당 부분은 C 나 Objective-C 개발 경험이 있다면 익숙할 것이다. Swift는 정수(Integer) 자료형을 위한 Int, 실수(floating-point) 자료형을 위한 Double 과 Float, 참/거짓(Boolean values) 자료형을 위한 Bool, 텍스트 데이터를 위한 String 등 C와 Objective-C에서 제공하는 자료형을 제공한다. 또한, Swift는 Array, Set 그리고 Dictionary 라는 3개의 주요 Collection 타입을 제공한다. C 언어와 같이 Swift는 값을 이름을 정의하여 값을 저장하거나 참조할 수 있는 변수들을 제공한다. Swift는 또한 값을 변경할 .. 2020. 3. 10.
스위프트(Swift) 공식 문서 : The Swift Programming language (Swift 5.2 beta) 애플 공식 사이트에서도 소개하는 Swift는 Apple의 iOS, macOS, watchOS, tvOS의 앱 개발을 위한 프로그래밍 언어이다. 앱을 개발하기 위해 크로스 플랫폼을 지원하는 기술들로 애플 앱을 개발하기 위해 반드시는 아니지만, 공식적으로 애플이 지원하는 언어이기 때문에 애플이 망하지 않는 한 Swift 언어의 수명도 애플과 함께 할 것이다. 많은 개발 언어들이 전반적인 트렌드 혹은 특정 언어가 사용되는 도메인의 트렌드에 따라서 다른 주기의 라이프 사이클을 갖는다는 점에서 Swift는 애플과 운명을 함께한다는 것만으로 매력적인 언어라고 판단된다. 더하여, 2014년을 시작으로 2020년인 지금 벌써 Swift v5 관련 문서들이 배포되고 많은 강의들에 반영되고 있다는 점과 애플이 2015년 .. 2020. 3. 9.
Mac OS 카탈리나(Catalina), 콘다(Conda)를 활용한 텐서플로우(tensorflow), 겐심(gensim) 라이브러리 환경 구축 이전에 Anaconda3을 설치하고 오늘은 Tensorflow, Keras, Gensim 라이브러리 환경을 구축한다. tensorflow2 부터 패키지 이름으로 CPU와 GPU를 구분하지 않는다. Mac의 경우엔 패키지 이름으로 CPU와 GPU를 구분하던 tensorflow1.* 에서도 GPU 모드를 사용할 수 없었다. GPU모드를 사용하기 위해서는 CUDA를 지원하는 그래픽 카드여야 하는데 이는 NVIDIA의 기술로 맥북 프로는 Radeon 계열의 분리형 그래픽 카드 또는 Intel의 내장 그래픽 카드이기 때문에 사용할 수 없다. 아쉽긴 하지만 Radeon과 NVIDIA의 주타겟 영역이 다르다고 생각하면 될 것 같다. tensorflow 공식 웹페이지에서는 pip와 virtualenv를 활용한 방법을 .. 2020. 2. 18.
Mac OS 카탈리나(Catalina), 아나콘다(Anaconda-2010.10) 설치 Mac OS 버전이 카탈리나로 넘어가면서, 기존 환경이 Relocated Item으로 옮겨져 별도의 설정 변경이 필요했다. 일부 설정 변경으로도 가능하다고 하지만, 아나콘다 내의 하드코딩된 파일 경로 등이 예상치 못한 문제를 야기시킬 수도 있다는 글을 보고 오랜만에 초심으로 돌아가 다시 설치하기로 했다. 아나콘다를 설치하는 방법은 pip3, brew, graphic installer를 이용한 방법 등 다양하지만, 이번에는 command line installer를 활용해 설치했다. 설치 과정은 간단하다. Installing on Mac OS for Catalina 1. ‘Command Line Installer’를 다운로드한다. 2. 다운로드 후, ~/Downloads/설치파일 확인한다. 3. shasu.. 2020. 2. 15.