반응형
반응형
MS 비주얼 스튜디오 코드(Visual Studio Code) 아나콘다와 함께 제공

http://m.seminartoday.net/news/articleView.html?idxno=11961

 파이썬 사용자에게 유용한 편집 및 디버깅 경험을 제공하며, 아나콘다 사용자를 위한 특별 기능도 제공

아나콘다 5.1 다운 페이지 캡처(사진:아나콘다 웹, 편집:본지)

엔터프라이즈 프로그래머에서부터 데이터 과학자에 이르기까지 파이썬(Python)은 소프트웨어 개발을 위한 가장 대중적인 동적 언어 중 하나이다.

가장 인기 있는 파이썬 데이터 플랫폼인 아나콘다(Anaconda)는 전 세계 600 만 사용자에게 Windows, Mac 또는 Linux에서 능률적인 파이썬 환경을 제공하고 있다. 마이크로소프트는 15일(현지시각)부터 Anaconda 배포판에 MS의 무료 및 크로스 플랫폼 코드 편집기인 비주얼 스튜디오 코드(Visual Studio Code)가 포함돼 제공된다고 밝혔다.

비주얼 스튜디오 코드에 대한 마이크로 소프트 파이썬 확장 페이지 캡처

이제 비주얼 스튜디오 코드는 아나콘다와 동시에 설치될 수 있으며, 파이썬 사용자에게 유용한 편집 및 디버깅 경험을 제공하며, 아나콘다 사용자를 위한 특별 기능도 제공한다. 이것은 VS 코드 용 공식 파이썬 확장판 출시와 애저 머신러닝 스튜디오(Azure Machine Learning Studio) 및 SQL Server에서의 파이썬에 대한 강력한 지원 및 Azure Notebooks에 이은 MS가 파이썬 커뮤니티에 지속적으로 투자한 또 다른 예로 파이썬 개발자가 어디서나 어떤 플랫폼에서든 빌드 할 수 있도록 지원하는 것이다.

한편 비주얼 스튜디오 코드 용 Microsoft Python Extension은 GitHub 에서 적극적으로 개발되었으며 현재 VS Code Marketplace에서 가장 많이 다운로드 된 확장 프로그램으로, 현재 6 백만 회 이상 다운로드 되고 4.7 / 5.0 등급으로 제공되고 있다. (Anaconda 5.1 다운받기)

...


반응형
반응형

오픈소스 개발자 축제, ‘파이콘 한국 2017’을 돌아보며

http://www.bloter.net/archives/291567



파이콘은 축제다

개발자 콘퍼런스에서 표면적으로 얻을 수 있는 건 물론 ‘개발에 대한 지식’이지만 지식은 구글 검색, 블로그, 스택오버플로우에서 충분히 얻을 수 있다. 컨퍼런스의 슬라이드와 동영상이 공개되니 ‘지식’은 꼭 참여하지 않더라도 얻을 수 있다. 컨퍼런스에서 얻을 수 있는 가장 큰 것은 나 외에도 파이썬과 개발을 좋아하고 즐겁게 사용하고 있는 사람들과 함께한다는 느낌을 받을 수 있다는 점 아닐까. 자신이 좋아하는 것들에 관해서 이야기하는 것을 통해 사람들과 소통할 수 있다는 점도 그렇다. 파이콘에서 이야기를 나눈 한 스피커 분은 한국에 파이썬 하는 사람이 이렇게 많은지 몰랐다며 즐거운 축제 분위기라 너무나 즐거운 행사였다고 했다. 그런 느낌을 많은 분이 받았으면 좋겠다. 다 같이 하는 느낌, 축제에서 즐겁게 이야기하는 느낌 말이다.


파이콘은 돈을 내고 세션을 듣고 집에 가는 행사가 아니다. 누구나 주제를 제안하고 만나서 이야기할 수 있는 열린 공간, 누구나 제안해서 5분짜리 이야기를 할 수 있는 라이트닝 토크는 물론 기념품 가방의 내용물을 채우는 작업도 참석자 모두가 할 수 있도록 모두가 준비해서 함께 만들어나가는 행사가 파이콘이다. 파이콘 한국은 준비하는 사람들이 100% 자발적인 노력을 통해 준비하기 때문에 완성도가 조금 부족한 부분이 있을지 몰라도 더 즐거운 행사가 되지 않았나 싶다.


위에 언급한 프로그램들처럼 파이콘 한국 준비위원회는 파이콘 한국을 더 의미 있는 행사로 만들기 위한 새로운 시도를 계속 하고 있다. 이런 새로운 시도가 파이콘 한국이 자발적인 노력만으로 계속될 수 있는 원동력이라고 생각한다. 새로운 것을 시도하지 않고 해마다 같은 행사를 같은 프로그램으로 한다면 준비하는 사람들이 준비하는 의미와 재미가 없어지지 않을까. 지금까지 한국에서 많은 좋은 커뮤니티 컨퍼런스가 생기고 또 없어지기도 했다. 그 컨퍼런스들은 왜 없어졌을까? 파이콘 한국은 어떻게 이렇게 빠르게 규모와 완성도 면에서 성장할 수 있었고 이런 추세는 언제까지 계속될 수 있을까? 명확한 답이 없는 이 질문을 끊임없이 해가면서 내년에도 파이콘 한국은 계속될 것이다.




...

반응형
반응형
예제로 배우는 파이썬 - Selenium 사용하기 

1. Selenium 소개

Selenium은 웹 브라우져를 컨트롤하여 웹 UI 를 Automation 하는 도구 중의 하나이다. Selenium은 Selenium Server와 Selenium Client가 있는데, 로컬 컴퓨터의 웹 브라우져를 컨트롤하기 위해서는 Selenium Client 를 사용한다 (여기서는 Selenium 3 사용). Selenium Client는 WebDriver라는 공통 인터페이스(Common interface)와 각 브라우져 타입별(IE, Chrome, FireFox 등)로 하나씩 있는 Browser Driver로 구성되어 있다.

2. Selenium 설치

Selenium을 설치하기 위해서는 먼저 아래와 같이 pip 을 사용하여 Selenium Client 모듈을 설치한다.

pip install selenium

다음으로 사용할 브라우저별 Selenium 드라이버를 설치한다. 드라이버가 설치된 후, 해당 드라이버의 경로를 실행 PATH에 넣어 준다. 아래는 대표적인 브라우저별 설치 링크이다. 특별한 이유가 없다면 Selenium이 가장 잘 동작하는 Firefox를 사용하는 것이 좋다.

3. Selenium 사용법

Selenium을 사용하기 위해서는 먼저 selenium.webdriver 모듈을 import 한 후, webdriver.Firefox() 를 호출하여 브라우져를 실행시킨다. 만약 크롬을 사용할 경우 webdriver.Chrome()을 호출하고, Edge를 사용할 경우 webdriver.Edge()을 호출한다.

브라우져를 띄운 상태에서 특정 웹사이트로 이동하기 위해서는 아래와 같이 browser 객체의 get() 메서드를 사용한다.

1
2
3
4
5
6
from selenium import webdriver
 
browser = webdriver.Firefox()
# browser = webdriver.Chrome()
 
browser.get("http://python.org"

Selenium은 웹페이지 내의 특정 요소(들)을 찾는 많은 메서드들을 제공하고 있는데, 이들은 보통 한 요소를 리턴하는 find_element_*() 혹은 복수 요소를 리턴하는 find_elements_*() 메서드로 구분된다. 자주 사용되는 몇가지 검색 메서드를 예를 들면, 특정 태그 id 로 검색하는 find_element_by_id(), 특정 태그 name 속성으로 검색하는 find_element_by_name(), CSS 클래스명으로 검색하는 find_element_by_class_name(), CSS selector를 사용해 검색하는 find_element_by_css_selector() 등이 있는데, 예상되는 결과가 복수이면 find_element_* 대신 find_elements_* 를 사용한다.

검색 결과 리턴되는 객체는 FirefoxWebElement 와 같이 *WebElement 타입의 객체가 되는데, 리턴된 요소는 WebElement 타입 타입의 속성이나 메서드를 사용하여 데이타를 얻거나 특정 행위를 할 수 있다. 예를 들어, WebElement의 text는 요소 내의 문자열을 리턴하고, tag_name 은 해당 요소의 태크명 (예: a, span) 을 리턴하며, clear() 메서드를 호출하면 text 입력 영역을 초기화하고, click() 메서드를 호출하면 해당 요소를 클릭한다.

아래 예제는 python.org 웹사이트를 방문해서 상단 메인 메뉴 문자열을 출력하고, PyPI 메뉴를 클릭한 후 5초 후에 브라우저를 종료하는 예이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from selenium import webdriver
import time
 
browser = webdriver.Firefox()
browser.get("http://python.org")
 
menus = browser.find_elements_by_css_selector('#top ul.menu li')
 
pypi = None
for m in menus:
    if m.text == "PyPI":
        pypi = m
    print(m.text)
 
pypi.click()  # 클릭
 
time.sleep(5) # 5초 대기
browser.quit() # 브라우저 종료








...


반응형
반응형

MOOC: Python (파이썬 강좌)

  • 게시자: TeamLab
  • 동영상 71개
  • 조회수 172,959회
  • 업데이트: 3일 전

K-MOOC 파이썬
가천대학교 TEAMLAB에서 운영하는 파이썬 입문용 강좌입니다.
키워드 - 파이썬 Python 입문 강의 강좌 MOOC


https://www.youtube.com/playlist?list=PLBHVuYlKEkUJvRVv9_je9j3BpHwGHSZHz





K-MOOC: 데이터 과학을 위한 파이썬 입문 강좌
http://www.kmooc.kr/courses/course-v1...

본 강의는 교육부의 "K-MOOC 강좌개발지원 사업"의 일환으로 가천대학교 ACE 사업단에 의해 제작되었습니다. 본 강의는 가천대학교 ACE 사업단의 데이터 과학 시리즈 MOOC의 일환으로 제작됩니다. 본 과정은 아래와 같이 구성됩니다.

강의 개요
강좌명: Gachon CS50 - 데이터 과학을 위한 파이썬 입문
강의자명: 가천대학교 산업경영공학과 최성철 교수 (sc82.choi@gachon.ac.kr, Director of TeamLab)
Facebook: Gachon CS50
강의자료: Docs.com
Email: teamlab.gachon@gmail.com

강의 구성
1주차: 프로그래밍과 파이썬
2주차: 메모리와 변수 (Memory & Variable)
3주차: 화면 입출력과 리스트 다루기 (Console & List Data Type)
4주차: 제어문과 반복문 (Condition & Loop)
5주차: 함수와 파이썬 코드 작성연습
6주차: 파이썬 문자열 다루기 (String)
7주차: 파이썬 자료 구조 (Data Structure)
8주차: 파이썬같은 코드 작성하기 (Pythonic Code)
9주차: 파이썬 객체 지향 프로그래밍 (Objective-Oriented Programming)
10주차: 모듈과 패키지 (Module & Packages)
11주차: 예외 처리 (Exception Handling)
12주차: 파일 다루기와 CSV (File Handling and Comma Separate Values)
13주차: Web Scraping
14주차: XML과 JSON (eXtensible Markup Languages and JSON)
15주차: What is NEXT?

참고자료
- 점프 투 파이썬, 박응용 지음 , 2014
- 헬로 파이썬 프로그래밍, 워렌 산데,카터 산데 지음 / 김승범, 박준표 옮김 , 2014
- 파이썬 바이블3, 이강성 지음, 2013
하용호, 스타트업 데이터를 어떻게 봐라봐야 할까 , 2014
강철, [PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼 , 2014
정민영, [2D4] Python에서의 동시성_병렬성, 2014
최성철, 산업공학과를 위한 프로그래밍 입문 Part 1(w/파이썬) , 2014
최성철, 산업공학과를 위한 프로그래밍 입문 Part 2(w/파이썬) , 2014
최성철, 산업공학과를 위한 프로그래밍 입문 Code(w/파이썬) , 2014


...


반응형
반응형

[Chatbot] Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용 chatbot


도입 

AI Chatbot 소개 

Chatbot Ecosystem 

Closed vs Open Domain 

Rule Based vs AI 

Chat IF Flow and Story Slot 

AI기반의 학습을 위한 Data 구성 방법 

Data를 구하는 법 / Train을 위한 Word Representation 

Data의 구성 / Data Augmentation(Intent, NER) 

자연어처리 위한 AI 적용 방안 

Intent (Char-CNN) / QnA (Seq2Seq) 

Named Entity Recognition (Bi-LSTM CRF) / Ontology (Graph DB) 

Chatbot Service를 위한 Architecture 구성 

Chatbot Architecture 

NLP Architecture 

Web Service Architecture 

Bot builder / Chatbot API 

Test Codes for Chatbot 

실무에서 발생하는 문제와 해결 Tips 

Ensemble and voting / Trigger / Synonym(N-Gram) 

Tone Generator / Parallel processing / Response Speed 

마무리 


[설명 코드] 

Text Augmentation / Slot Bot / QA Bot / Graph DB / Response Generator 




...

반응형
반응형
[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전

[PYCON KOREA 2017] Python 입문자의 Data Science(Kaggle) 도전

  1. 1. Python 입문자의 Data Science(Kaggle) 도전 박미정
  2. 2. 나는 누구에요?
  3. 3. 나는 누구에요? 아이오라는 스타트업에서 스위처를 만들고 개발팀을 리드하고 있어요
  4. 4. 누구를 위한 발표인가? 저처럼, Python과 데이터 분석을 이제 막 시도하시려는 분들을 위한 발표에요
  5. 5. 발표의 목적은? 발표를 듣고 집으로 돌아가셔서, 데이터 분석이 뭔지 아직도 감은 잘 안오지만 튜토리얼 문제를 시도하면서 공부를 시작하도록 돕는 것
  6. 6. 발표를 간단히 요약하면 제가 얼마나 Python과 데이터 분석 초보인지 밝힘으로써 용기를 드리고, 데이터 분석 공부를 시작하게 된 계기와, 데이터 분석 공부를 위한 기본적인 환경, 실제로 Python을 이용하여 Kaggle 문제에 접근한 사례를 공유하게 되요
  7. 7. 나는 왜 Python과 데이터 분석을? Last 30 Days by WakaTime
  8. 8. 나는 왜 Python과 데이터 분석을? 지난 한 달 동안 주로 사용한 언어에 Python은 보이지 않아요
  9. 9. 나는 왜 Python과 데이터 분석을? 집에는 파이썬, 머신러닝, 딥러닝 책들이 먼지와 함께 쌓여있어요
  10. 10. 나는 왜 Python과 데이터 분석을? 제가 파이콘에서 스피커로 자격이 있는지 모르겠어요
  11. 11. 나는 왜 Python과 데이터 분석을? 하지만, Back to the Basic 용기를 내어 보았어요
  12. 12. 나는 왜 Python과 데이터 분석을? 역시 저는 몰랐지만, 데이터 분석에는 여러 유형이 있어요
  13. 13. 나는 왜 Python과 데이터 분석을? 주어진 데이터를 요약/집계해서 결과를 내는 Descriptive analysis 를 이미 진행하고 있었어요
  14. 14. 나는 왜 Python과 데이터 분석을? 하지만 저에게 데이터 분석이라고 하면 가장 먼저 떠오르는 유형은 Predictive analysis 였어요
  15. 15. 나는 왜 Python과 데이터 분석을? 그 외에도 Exploratory, Inferential, Casual, Mechanistic analysis 등 많은 분석 유형이 존재해요
  16. 16. 나는 왜 Python과 데이터 분석을? 사실 모든 유형에 대해 자세히 모르겠어요
  17. 17. 나는 왜 Python과 데이터 분석을? 그저 공부를 시작하기 위해 필요한 목적과 동기부여를 위해 Predictive analysis 를 선택했어요
  18. 18. 나는 왜 Python과 데이터 분석을? 데이터를 통한 정확한 예측이 아이오에는 필요하거든요
  19. 19. Predictive analysis? 머신러닝, 의사 결정 트리를 이용해서 발생하지 않은 일을 예측하는 거에요
  20. 20. 머신러닝? 기존 데이터를 학습시킨 후, 새로운 데이터를 예측하는 목적이에요
  21. 21. 머신러닝? 머신러닝에서 지도 학습과 비지도 학습으로 구분지을 수 있어요
  22. 22. 머신러닝? 지도 학습에는 분류와 회귀 방법이 존재하고,
  23. 23. 머신러닝? 비지도 학습에는 군집 방법이 존재해요
  24. 24. 머신러닝? 저는 지도 학습인 분류와 회귀에 대한 공부 경험을 공유하려 해요
  25. 25. 어떻게 시작하게 되었어요? 혹시, 이 분을 아시나요?
  26. 26. 어떻게 시작하게 되었어요? 꿀 수업 듣으러 가기
  27. 27. 기본적인 환경은? Kaggle
  28. 28. 기본적인 환경은? Kaggle 데이터 과학과 머신러닝을 실습하고 경쟁할 수 있는 Kaggle을 이용했어요 Kaggle 방문하기
  29. 29. 기본적인 환경은? Kaggle training set과 test set이 주어져요
  30. 30. 기본적인 환경은? Kaggle training set을 통해 최적화된 모델을 통해서 test set의 값을 분류 및 예측하고 제출할 수 있어요
  31. 31. 기본적인 환경은? Kaggle 주의할 점! 하루에 제출할 수 있는 기회는 제한되어 있어요
  32. 32. 기본적인 환경은? Python 데이터 분석을 돕는 Python 도구들을 사용했어요
  33. 33. 기본적인 환경은? Python 일, 수학적 기능을 제공하는 NumPy
  34. 34. 기본적인 환경은? Python 이, 데이터 처리 및 가공을 위한 Pandas
  35. 35. 기본적인 환경은? Python 삼, 머신러닝 알고리즘 적용을 위한 Scikit-Learn
  36. 36. 데이터 분석 프로세스는요? 그렇다면, 데이터 분석의 프로세스는 어떻게 될까요?
  37. 37. 데이터 분석 프로세스는요? 일, 문제를 정의해요 내가 원하는 결과가 무엇이고, 어떤 종류의 문제에 속하는지 파악해요
  38. 38. 데이터 분석 프로세스는요? 이, 데이터를 확보해서 준비하고 전처리를 해요
  39. 39. 데이터 분석 프로세스는요?
  40. 40. 데이터 분석 프로세스는요?
  41. 41. 데이터 분석 프로세스는요? 삼, 데이터를 탐색하고 피처를 선택해요
  42. 42. 데이터 분석 프로세스는요? 사, 모델을 최적화하고 검증해요
  43. 43. 데이터 분석을 돕는 Python 도구들? Pandas는 데이터 처리와 가공을 돕는 도구에요
  44. 44. 이렇게 데이터 파일도 쉽게 불러올 수 있구요 데이터 분석을 돕는 Python 도구들?
  45. 45. train 데이터와 test 데이터를 쉽게 연결할 수 도 있어요 데이터 분석을 돕는 Python 도구들?
  46. 46. 데이터 분석을 돕는 Python 도구들? NumPy는 수학적 연산을 돕는 도구에요
  47. 47. 배열, 로그, 평균 등 다양한 연산을 도와줘요 데이터 분석을 돕는 Python 도구들?
  48. 48. 데이터 분석을 돕는 Python 도구들? Scikit-Learn은 머신러닝 알고리즘을 제공하는 도구에요
  49. 49. 데이터 분석을 돕는 Python 도구들? 이렇게 분류를 위한 의사 결정 트리를 사용할 수 있어요
  50. 50. 어떤 방법을 사용했어요? 앞에서 머신러닝의 분류와 회귀에 대한 공부 경험을 공유한다고 했어요
  51. 51. 어떤 방법을 사용했어요? 분류에 대한 Kaggle 문제를 접했어요
  52. 52. 어떤 방법을 사용했어요? Kaggle의 튜토리얼 문제 Titanic: Machine Learning from Disaster
  53. 53. 어떤 방법을 사용했어요? 문제 풀으러 가기!
  54. 54. 어떤 방법을 사용했어요? Python 도구를 사용해서 이렇게 코드로 분류를 시도할 수 있어요
  55. 55. Yes or No 유형의 분류를 시도할 때, DecisionTreeClassifier 어떤 방법을 사용했어요?
  56. 56. 어떤 방법을 사용했어요? 회귀에 대한 Kaggle 문제도 접했어요
  57. 57. 어떤 방법을 사용했어요? Kaggle의 문제 Bike Sharing Demand
  58. 58. 어떤 방법을 사용했어요? 문제 풀으러 가기!
  59. 59. 어떤 방법을 사용했어요? 역시, Python 도구를 사용해서 이렇게 코드로 회귀를 시도할 수 있어요
  60. 60. 특정 숫자 값을 예측할 때, DecisionTreeRegressor 어떤 방법을 사용했어요?
  61. 61. Titanic 예시 Titanic 튜토리얼 문제를 다시 확인할게요
  62. 62. Titanic 예시 문제 정의 승객들의 정보를 이용하여 살아남을지 아닐지 예측하라
  63. 63. Titanic 예시 데이터 속성 분석 train set을 다운받고, 데이터 속성을 분석해요
  64. 64. Titanic 예시 데이터 속성 분석
  65. 65. 데이터 전처리 작업을 위해, train set과 test set을 합칠게요! Titanic 예시 데이터 전처리
  66. 66. Scikit-Learn 사용을 위해 Gender 문자열 값을 인코딩 할게요! Titanic 예시 데이터 전처리
  67. 67. Scikit-Learn 빈 값 처리 오류 제거를 위해, 평균 값으로 채울게요! Titanic 예시 데이터 전처리
  68. 68. 분류(예측)의 기준이 되는 피처를 선택해요 Titanic 예시 데이터 탐색 및 피처 선택
  69. 69. 피처 선택을 기준으로 train set을 이용하여, test set을 분류(예측)해요! Titanic 예시 모델 최적화 및 검증
  70. 70. 이제 Kaggle에서 Submit을 하면 예측 점수를 확인할 수 있어요! Titanic 예시 제출
  71. 71. 전체 코드는 아래 주소에서 확인하실 수 있어요! GitHub Repository Reference Code Titanic 예시
  72. 72. 그래서 어디에 사용할거에요? 일. 지역, 시간, 키워드, 가구 크기 등의 데이터를 이용해서 타겟 정확도를 높이는 마케팅에 이용
  73. 73. 그래서 어디에 사용할거에요? 이. 온도, 습도, 조도, 거리, 행동 패턴 학습을 통한 개인 추천 서비스에 이용
  74. 74. 감사합니다 ;-) 박미정 mjpark03@gmail.com
  75. 75. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP? Scikit-Learn 에서는 적절한 알고리즘을 선택할 수 있도록 Cheat Sheet를 제공해요
  76. 76. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP? 알고리즘 선택에 어려움이 있다면, 다음 Cheat Sheet을 참고해서 시작해보세요
  77. 77. Q1. 입문자가 머신러닝 알고리즘을 선택하기 위한 TIP?
  78. 78. Q2. 과적합(Overfitting) 해결을 위한 TIP? 특정 모델이 train set에 너무 정확하게 학습된 경우, test set에 대해서는 오차가 크게 발생하게 되요
  79. 79. Q2. 과적합(Overfitting) 해결을 위한 TIP? 이 경우를 과적합(Overfitting)이라고 표현해요
  80. 80. Q2. 과적합(Overfitting) 해결을 위한 TIP? 특정한 케이스가 아닌 일반적인(general) 결과를 낼 수 있어야 해요
  81. 81. Q2. 과적합(Overfitting) 해결을 위한 TIP? 많이 사용되는 방법 중의 하나는 cross validation이 있어요
  82. 82. Q2. 과적합(Overfitting) 해결을 위한 TIP? cross validation은 train set의 일부를 train 목적으로 사용하고, 나머지를 validation 용도로 사용해요
  83. 83. Q2. 과적합(Overfitting) 해결을 위한 TIP? 그리고 train 목적과 validation 부분을 변경해가며 반복하면서 오차율을 줄여나가게 되요
  84. 84. Q2. 과적합(Overfitting) 해결을 위한 TIP? Scikit-Learn을 이용해서 쉽게 적용할 수 있어요
  85. 85. Q2. 과적합(Overfitting) 해결을 위한 TIP? from sklearn.cross_validation import cross_val_score score = cross_val_score(model, X_train, y_train, cv=20, scoring=rmsle_score).mean()


...


반응형

+ Recent posts