전체 글
-
Selenium으로 크롤링하기PROGRAMMING/Python 2021. 5. 11. 14:37
크롤링은 크게 두가지 방법을 사용해서 행할 수 있다. + 둘 다 쓸 수도 있다. BeautifulSoup 모듈을 이용하는 방법 (정적 크롤링) Selenium 모듈을 이용하는 방법 (동적 크롤링) 기본적으로는 정적 크롤링이 HTML DOM parsing을 통해 (특히 웹 프로그래밍을 해본 사람이라면) 리소스를 얻을 수 있기 때문에 더 쉽다. 하지만 순수 HTML이 아닌 JS로 이루어진 웹 페이지라면 BeautifulSoup만으로는 크롤링이 어렵다. 이 때 사용할 수 있는 동적 크롤링인 Selenium 모듈에 대한 사용법을 알아보자. Selenium 설치 및 환경 구축 1. Selenium 모듈을 설치한다. pip install selenium 2. Chrome 정보를 확인한 뒤, 여기에서 ChromeDr..
-
Web Crawling & Scraping 개념BIG DATA & AI 2021. 5. 3. 18:54
스크래핑 스크래핑(Scraping)이란 웹사이트에 있는 특정 정보를 추출하는 기술을 의미합니다. 스크래핑을 이용하면 웹사이트의 정보를 쉽게 수집할 수 있습니다. 웹에 공개된 정보는 대부분 HTML 형식입니다. 이를 가져와서 데이터베이스에 저장하려면 데이터 가공이 필요합니다. 광고 등의 불필요한 정보를 제거하고, 필요한 정보만 가져오려면 사이트의 구조를 분석해야 합니다. 따라서 스크래핑이라는 기술은 웹에서 데이터를 추출하는 것뿐만 아니라 그러한 구조를 분석하는 것도 포함됩니다. 또한 최근해는 로그인 후 유용한 정보에 접근할 수 있는 사이트도 많습니다. 이 경우 단순히 URL을 알고 있는 것만으로는 유용한 정보에 접근할 수 없습니다. 따라서 제대로 스크래핑하려면 로그인해서 필요한 웹 페이지에 접근하는 기술도..
-
심심할 때 읽으면 재밌는 프로그래밍 명언들PROGRAMMING 2021. 5. 1. 16:17
"Talk is cheap, show me the code." (말은 쉽지, 코드를 보여 줘.) - Linus Torvalds "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다.) - Martin Fowler www.junauza.com/2010/12/top-50-programming-quotes-of-all-time.html Top 50 Programming Quotes of All Time I hope you have enjoyed ..
-
머신러닝과 일반 소프트웨어 비교 (Machine Learning VS General Software)BIG DATA & AI/Machine Learning 2021. 5. 1. 16:09
머신러닝 - Machine Learning! 👾 간단한 머신러닝 알고리즘의 경우 일반 소프트웨어와 비교했을 때 거의 차이가 없는 것처럼 보이지만, 사실은 완전히 다른 구조를 갖고 있다. 우리가 쉽게 접할 수 있는 일반적인 소프트웨어는 언제나 똑같은 과정(알고리즘)을 통해 똑같은 결과를 낸다. 즉 1+1=2라는 일종의 계획된 "계산"을 한다. 하지만 머신러닝 기반 소프트웨어는 데이터와 알고리즘에 따라 다른 결과를 "추론"하는 일을 한다. 즉 이미 알고있는 것으로부터 논리적 결론을 도출한다. 이를 도식화하면 다음과 같다. 우리가 많이 사용하는 스마트폰 잠금 화면을 예로 들어보자. 비밀번호 PIN CODE의 경우 general SW로 적용할 수 있다. 그래서 사용자가 설정한 비밀번호를 저장하여, 이를 입력과 ..
-
Deep Learning 관련 TMI들BIG DATA & AI/Machine Learning 2021. 4. 29. 16:59
그냥, deep learning 공부하기엔 지루하지 않은가? 아니다! 난 아직 열정이 너무 넘쳐서 공부를 계속 할 거다! ... 라면 뒤로 가기를 누르시고, 쉬어가는 차원에서 deep learning 관련하여 정리해 본 TMI들을 공유하겠다. TMI#1. tensorflow 수학에서 1차원 배열은 벡터(vector), 2차원 배열은 행렬(matrix)이라고 부른다. 또 벡터와 행렬을 일반화한 것을 텐서(tensor)라고 한다. Google의 딥러닝 프레임워크 원탑인 tensorflow의 이름이 여기서 유래했으며, 그 뜻은 텐서(tensor)가 신경망을 타고 흐른다(flow)는 뜻이 되겠다. Reference: Deep Learning from Scratch (사이토 고키, Oreilly, 2017)
-
대학원 진학 고민GRADUATE SCHOOL 2021. 4. 29. 10:54
개발자의 삶 (보다 직장인의 삶 비중이 높았지만) 을 3년 3개월 정도 마치고, 4년차에 접어들었다. 올해부터 자연어 처리 & 데이터 분석 관련 프로젝트를 맡게 되었는데 이 이렇게 재밌을 수가 없다. 일이 재밌다니, 나도 내가 소름돋지만 공부할수록 내가 성장하는 게 느껴지고, 내가 고등학교 때부터 막연하게 꾸던 꿈에 (NAVER...💚 Google...💘) 가까워지는 것을 느꼈다. 그리고 공부할수록 느껴지는 점은, AI분야에서는 석-박사 학위가 필수적이라는 것이다. 이게 단순히 학벌주의가 아니라, AI분야 업무를 하기 위해서는 일단 전공기초지식이 필요하다. 기본 수학적 지식, 확률과 통계, 선형대수학 등.. 복잡한 AI 모델링에 대한 이해를 위해 이런 background가 필요하고, 현재 연구가 활발하게..
-
Python Programming : datetime ⇿ string 변환PROGRAMMING/Python 2021. 4. 28. 12:06
Python에는 datetime이라는 유용한 모듈이 있다. 이는 시계열 데이터를 다룰 때 감초같은 녀석이라 사용법을 잘 익혀둬야 한다. 나는 beginner니까 천천히 익혀보려고 하는데(^^) DB 업데이트 과정 중에서 최근 date 이후의 데이터만 가져오는 작업이 있었다. 여기에서는 datetime 객체를 나만의 string format으로 변환해야 하는데, {datetime_object}.strftime(format) 함수를 활용하면 된다. 반대로 string -> datetime으로 변환할 때에는 datetime.strptime(date_string, format) 함수를 활용한다. 자주 쓰는 옵션: %Y : 4자리 수 년도 / %y : 2자리 수 년도 %m : 2자리수 월 / %b : 월 영어로(..