일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 캐치카페
- 우분투
- programmers
- ChatGPT
- 금융문자분석경진대회
- PYTHON
- Git
- 자연어처리
- hackerrank
- 편스토랑 우승상품
- leetcode
- AI 경진대회
- ubuntu
- dacon
- 코로나19
- github
- 데이콘
- gs25
- Real or Not? NLP with Disaster Tweets
- SW Expert Academy
- 파이썬
- Docker
- 더현대서울 맛집
- Baekjoon
- 프로그래머스
- 프로그래머스 파이썬
- 백준
- 맥북
- Kaggle
- 편스토랑
- Today
- Total
목록
반응형
Programming/Python (108)
솜씨좋은장씨
업무 중 NER을 담당하는 분께 NER을 활용하여 특정 태스크에 대해서 테스트를 요청드렸었고 결과로 받은 파일은 'INPUT : 롤플레잉 게임 시스템 쇼크를 개발한 회사는\n', "GOLD : ['O', 'O', 'B-SUB', 'I-SUB', 'O', 'O']\n", "PRED : ['B-EXP', 'I-EXP', 'B-SUB', 'I-SUB', 'O', 'O']\n", 'CONF : [0.99205834 0.99542373 0.9999639 0.999987 0.99999595 0.9999968 ]\n', 이렇게 NER을 거쳐 나온 결과들이 string 형식으로 한줄한줄 적혀 있는 txt 파일 형식이었습니다. 여기서 NER 모델이 예측해서 뽑아낸 결과를 B-SUB, I-SUB, B-EXP, I-EXP를..
Python에서 문자열을 다루다보면 특히 한글이 포함된 문자열을 다루게 되면 종종 아래와 같은 에러코드를 만나며 인코딩 문제로 애를 먹는 경우가 많이 있습니다. UnicodeEncodeError: 'cp949' codec can't encode character '\xa0' in position 17678: illegal multibyte sequence 위와 같은 문제를 만났을 때 내가 지금 다루고 있는 문자열 또는 파일속의 데이터가 어떤 인코딩을 사용하는지 확인하고 싶을 경우 방법은 다음과 같습니다. 필요 라이브러리 설치 먼저 인코딩을 확인하기 위해 필요한 chardet 라이브러리를 설치합니다. $ pip install chardet 사용 방법 문자열의 경우 import chardet string =..
가끔씩 데이터를 수집하기 위해서 Python으로 Selenium 을 활용한 크롤링 코드를 작성하고 실행하려하면! 새롭게 세팅한 개발환경이라 webdriver가 아직 존재하지 않거나 기존 컴퓨터에서 사용하고 있는 Chrome( 크롬 )의 버전이 업데이트 되어 기존에 사용하던 webdriver가 버전이 맞지않아 사용이 불가한 경우 직접 Chrome 버전이 무엇인지 확인 후 webdriver를 다운받는 홈페이지로 이동하여 직접 현재 버전에 맞는 파일을 다운로드 받아 사용해야 해서 번거로움이 많았습니다. 여러 페이지의 크롤러를 만들면서 이를 하나로 묶어서 패키지화를 하면 어떨까 고민하던 중 매번 다운로드 받아야하는 webdriver를 python 코드를 활용해 자동으로 설치해주면 어떨까? 라는 생각이 들었고 이..
Folium이 업데이트를 하면서 jupyter notebook 에서 지도에 시각화를 할때 한글을 출력하려고 하면 한글이 아닌 외계어가 출력되는 경우를 볼 수 있습니다. 이를 해결하는 방법은 두 가지가 있습니다. 현재 제가 해결한 Folium 라이브러리의 버전은 0.11.0 버전입니다. 버전 확인은 pip list 명령어를 통해 확인하면 됩니다. 해결방법 1 branca 라이브러리 수정 사항 반영 $ pip install git+https://github.com/python-visualization/branca.git@master
for 문을 한 줄로 작성하는 방법 ex ) 여러개의 단어가 들어있는 리스트 중에서 길이가 3 이상인 단어만 남기고 싶을 경우 words = ["솜씨좋은장씨", "티스토리", "블로그", "파이썬", "for", "프로그래밍", "반복"] new_words = [ "솜씨좋은장씨", "티스토리", "프로그래밍" ] 기존 코드 new_words = [] for word in words: if len(word) > 3: new_words.append(word) 한 줄로 작성 new_words = [ word for word in words if len(word) > 3 ] 이중 for 문을 한 줄로 작성하는 방법 ex ) 여러 단어들이 담겨있는 2차원 리스트에서 각 리스트 별로 길이가 4 이상인 단어만 남기고..
윈도우에서 mecab을 사용할 일이 있어 mecab을 윈도우에서도 사용할 수 있도록 만든 eunjeon 패키지를 pip install eunjeon 명령어로 설치를 시도하였습니다. 그런데 순조롭게 진행되고 있는 줄 알고 있다가 다시 확인해보니 붉은색 오류가 저를 반겨주고 있었습니다. error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools" : https://visualstudio.microsoft.com/downloads/ 원인 이 문제의 원인은 Microsoft Visual C++ Build Tools 가 설치 되어있지 않아서 발생하는 오류 입니다. 해결방법 오류 문구에서 안내해주는 주소로 이동..
[Python] Python3에서 venv로 가상환경 만들고 사용하기! 예전 Ubuntu에서 Python 가상환경을 만들때에는 virtualenv를 활용하여 가상환경을 만들고 사용했었습니다. Windows에서도 virtualenv를 설치하고자 검색 중 venv라는 더 편하고 쉽게 사용할 수 있는 방법을 somjang.tistory.com 위와 같은 방법으로 Python에서 만든 가상환경을 Jupyter Notebook에 추가하는 방법은 다음과 같습니다. 먼저 만든 가상환경을 활성화 시킵니다. 만들어둔 가상환경의 이름이 myvenv라고 가정하면 $ source myvenv/bin/activate 위와 같은 방법으로 활성화시켜줍니다. 윈도우의 경우 $ myvenv\Scripts\activate 그 다음 pi..
평소와 같이 아나콘다로 만든 가상환경을 활성화하기 위하여 $ conda activate tensorflow_1_11_p36 위처럼 가상환경 활성화 명령어를 입력하였으나 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. If your shell is Bash or a Bourne variant, enable conda for the current user with $ echo ". /home/ubuntu/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc or, for all users, enable conda with $ sudo ln -s /home/ubunt..
이 글은 새로운 방법을 알게 될 때 마다 계속 업데이트 할 예정입니다. 우리는 종종 별도의 설정없이 matplotlib으로 한글이 들어간 그래프를 그리고자 할때 아래와 같이 한국어가 ㅁ로 깨져서 나오는 것을 볼 수 있습니다. 이 글에서는 위처럼 matplotlib 활용 시 한글이 깨져나올 때 해결하는 방법에 대해서 적어보려 합니다. Mac OSX 1. matplotlib의 rcParams를 통해 전역 폰트 설정하기 먼저 matplotlib의 rcParams를 통해 전역 폰트를 설정해주는 방법입니다. 별도의 폰트 설치 없이도 가장 쉽게 설정할 수 있는 방법입니다. import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['axes.unic..
Python으로 프로그래밍을 하다보면 가끔 아래와 같은 오류를 만나는 경우가 있습니다. SyntaxError: Non-ASCII character '\xeb' in file 위의 오류는 코드 내부에 한글 데이터가 포함 되어있을 경우 발생하는 문제입니다. 이걸 해결하기 위해서 코드에 있는 한글을 다 삭제하거나 영어로 번역하지 않아도 됩니다. 해결방법 #-*- coding:utf-8 -*- 해당 코드파일의 코드 맨 윗줄에 위의 코드를 추가해주고 다시 실행해보면 정상적으로 작동하는 것을 볼 수 있습니다! 읽어주셔서 감사합니다!
Flask로 웹페이지를 만들면서 npm 라이브러리를 사용해야하는 경우 다음과 같은 방법으로 사용하면 됩니다. 다음의 방법은 node.js가 미리 설치되어있다는 가정 하에 가능합니다. Mac을 사용하고 brew를 설치하셨다면 $ brew install node 위의 명령어를 활용하여 설치하여 줍니다. 먼저 Flask 프로젝트의 static 디렉토리로 이동합니다. $ cd static 그 다음 다음의 명령어를 활용하여 npm 프로젝트로 initialize 시켜줍니다. $ npm init 그 다음 npm라이브러리 중 사용을 희망하는 라이브러리를 설치하고 저장합니다. 예시로는 dom-inspector라는 오픈소스 라이브러리를 예시로 들겠습니다. $ npm install dom-inspector --save 완료..
Flask로 API를 만들던 중 (venv) (base) DongHyunui-MacBook-Pro:ElasticsearchAPI donghyunjang$ python3 app.py * Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: on Traceback (most recent call last): File "app.py", line 97, in app.run(host='0.0.0.0', debug=Tr..
최근에 크롤링을 하면서 네이버 뉴스의 기사를 크롤링하고 그 크롤링한 데이터를 MariaDB에 insert하는데 워낙 크롤링하는 데이터의 개수가 많다보니 time.sleep(0.5) 의 0.5초 시간까지 더하여 24시간 ~ 30시간 정도가 소요되었습니다. 짧은 시간 크롤링이라면 그냥 크롤링이 진행되는 동안 지켜보면서 문제가 발생했을 때 대응할 수 있지만 많은 양의 데이터를 긴 시간 동안 크롤링할때는 중간중간 이동하는 시간이나 식사시간에 직접 일일이 확인할 수 없으니 뭔가 다른 루트를 통해 진행 과정이나 오류가나서 멈추거나 하는 것들을 확인하고 싶었습니다. 그러던 중 예전에 삼성 SOSCON 당시 케라스 코리아 밋업에서 들었던 내용중에 딥러닝의 학습과정을 Slack에 기록을 남겨 어디서든지 확인할 수 있도록..
[AWS] yum을 활용하여 Amazon Linux 2 AMI 에 Python 3.x 설치하기! 1. yum 패키지 업데이트 먼저 yum 패키지를 업데이트 합니다. $ sudo yum update -y 2. Python 3.x / pip3 설치 yum 패키지를 활용하여 python3.x과 pip3를 설치합니다. $ sudo yum install -y python3 pip3 :.. somjang.tistory.com Amazon Linux 2 AMI 서버에 Python을 설치는 했으니 이번에는 개인 PC에 설치되어있는 Pycharm에서 원격 인터프리터를 추가하고 적용해보려합니다. 먼저 Amazon Linux 2 AMI에서 원하는 위치에 가상환경 하나를 생성합니다. Windows PC 일 경우 1) File..
Python에서는 다양한 방법을 통해 암호화 관련 알고리즘을 구현할 수 있습니다. 그 중 cryptography의 Fernet을 활용한 대칭키 암호화 알고리즘을 해보려합니다. 대칭키 암호화 방식 먼저 대칭키 암호화 방식 ( symmetric-key algorithm)은 암호화와 복호화에 같은 암호키를 사용하는 알고리즘 입니다. 이에 암호화를 하는 측과 복호화를 하는 측이 같은 암호키를 공유해야합니다. 공개키 암호화 방식에 비하여 계산 속도가 빠르다는 장점이 있습니다. 공개키 암호화 방식 공개키와 비밀키 두가지의 키가 존재하며 공개키는 누구나 알 수 있지만 그에 대응하는 비밀키는 키의 소유자만이 알 수 있습니다. 공개키를 구성하는 알고리즘은 비대칭 암호라고 부르기도 합니다. 사전에 비밀키를 나눠가지지 않아..
파이썬을 여행하는 히치하이커를 위한 안내서에 나온 PyCrpyto 코드를 실습하다가 다음의 오류를 만나게 되었습니다. 실습 코드 from Crypto.Cipher import AES encryption_suite = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456') chiper_text = encryption_suite.encrypt("aaaaaaaaaaaaaaaaa") decryption_suite = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456') plain_text = decryption_suite.decrypt(chiper_text) Error ... 생략 ValueError..
Python에서 사용할 수 있는 데이터베이스 라이브러리 중 Sqlite3 의 사용법에 대해서 정리해보고자 합니다. sqlite3 — SQLite 데이터베이스용 DB-API 2.0 인터페이스 — Python 3.8.2 문서 바로 가기 메서드 사용하기 Connection 객체의 비표준 execute(), executemany() 및 executescript() 메서드를 사용하면, (종종 불필요한) Cursor 객체를 명시적으로 만들 필요가 없으므로, 코드를 더 간결하게 작성할 수 있습니다. 대신, Cursor 객체가 묵시적으로 만들어지며 이러한 바로 가기 메서드는 커서 객체를 반환합니다. 이런 방법으로, Connection 객체에 대한 단일 호출만 사용하여 SELECT 문을 docs.python.org Sq..
예전 Ubuntu에서 Python 가상환경을 만들때에는 virtualenv를 활용하여 가상환경을 만들고 사용했었습니다. Windows에서도 virtualenv를 설치하고자 검색 중 venv라는 더 편하고 쉽게 사용할 수 있는 방법을 알게되어 공유합니다. 다음의 방법은 Python3에서만 가능합니다! 1. 가상환경 생성 먼저 가상환경을 생성할 디렉토리(폴더)로 이동한 후 Windows 10 의 경우 # python -m venv ./(생성하고자 하는 가상환경 이름) python -m venv ./myenv Mac OS X / Linux 의 경우 # python3 -m venv ./(생성하고자 하는 가상환경 이름) python3 -m venv ./myenv 위의 명령어를 통해 가상환경을 생성합니다. 2. 가..
[Python] Pycharm에서 unittest 사용해보기! Pycharm에서 unittest를 사용하는 방법에 대해서 정리해보려합니다. Step 3. Test your first Python application - Help | PyCharm Step 3. Test your first Python application Remember, in the first tutoria.. somjang.tistory.com 지난 글에서 테스트를 하면서 오류났던 부분을 디버깅을 통해서 고쳐보려합니다. Testing started at 5:53 오후 ... /Users/donghyunjang/PycharmProjects/MyTestPractice/venv/bin/python "/Applications/PyCharm ..
Pycharm에서 unittest를 사용하는 방법에 대해서 정리해보려합니다. Step 3. Test your first Python application - Help | PyCharm Step 3. Test your first Python application Remember, in the first tutorial you’ve created your first Python application, and in the second tutorial you’ve debugged it. Now it’s time to do some testing. Choosing the test runner If you used nosetest, py.test www.jetbrains.com 위의 문서를 참조하여 작성하였습니다...
진행환경 MacBook Pro 13inch 2017 / Mac OSX 10.15.4 문서내에 내용은 미리 코드에 작성한 Docstring을 Sphinx가 reStructuredText로 자동으로 파싱하여 사용하므로 미리 코드에 Docstring을 작성하여야합니다. 1. Sphinx 설치하기 pip install Sphinx 위의 명령어로 설치가 가능합니다. 2. sphinx-quickstart 먼저 sphinx-quickstart를 희망하는 프로젝트로 이동합니다. 저는 잘 정리되어있지는 않지만 이전에 만들었던 공적마스크 재고 알리미를 문서화해보기로 했습니다. sphinx-quickstart 다음 명령어를 사용하여 sphinx-quickstart를 실행합니다. 2-1. root directory 설정하기 ..
추후 블로그를 참고하면서 사용하면 편리할 것 같은 것들을 정리해보았습니다. 먼저 여러개의 숫자를 포함한 리스트를 하나 정의합니다. num_list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] 이 리스트를 활용하여 몇가지 방법에 대해 적어보려합니다. 1. N보다 큰 숫자만 남기기 만약 N이 3이라고 할때 List Comprehension을 사용하지 않았을경우 new_list = [] for num in num_list: if num > 3: new_list.append(num) 평소에는 위와 같이 작성하게 됩니다. 여기서 List Comprehension을 사용하면 더 짧고 간결하게 코드를 작성할 수 있습니다. new_list = [ num for num in num..
2020년 1월 1일, Python2.7 버전의 공식 지원이 종료되었습니다. 공식지원이 종료가 되어도 Python 2 버전으로 작성된 코드가 실행이되지 않거나 하지는 않지만 추후 Python2에서 보안에 대한 문제가 생기거나 할 시 추가적으로 그부분에 대해 추가적으로 업데이트를 지원받기 어려운 부분도 있을 수도 있고 코딩을하면서 라이브러리를 사용하려고 할 때 Python2 를 지원하지 않아 사용할 수 없을 수도 있습니다. 이에 Python3를 설치하면 Python2로 작성된 코드를 Python3로 바꾸어주는 기본 라이브러리를 제공하고 있습니다. 그것이 바로 2to3입니다. 2to3 - 파이썬 2에서 파이썬 3으로 자동 코드 변환 — Python 3.8.2 문서 2to3 - 파이썬 2에서 파이썬 3으로 자..
1. 필요한 라이브러리 설치하기 pip install pymongo pip install pandas pip install tqdm 먼저 필요한 라이브러리를 설치합니다. 2. csv에서 데이터 불러와서 json 형태로 만들기 CSV는 지난 캐치 프로그램 과제를 할때 만들었던 파일을 그대로 활용했습니다. [캐치카페] 현직자와 함께하는 프로그래밍 3회차 과제 도전기 - 1 (API 데이터 자동으로 추가하기) 먼저 영화 데이터를 추가하기위해서 실제 네이버 영화에서 데이터를 크롤링해서 추가해주었습니다. 현재상영작 : 네이버 영화 상영 중 영화의 예매율/평점/좋아요 순 정보 제공. movie.naver.com 크롤링 해와야하.. somjang.tistory.com import pandas as pd from tq..
오늘은 지난 면접에서 질문으로 받아 짧게 코드를 구현해보았던Python에서 두개의 문자열을 서로 바꾸는 방법에대해서 한번 적어보려고 합니다. 면접때는 C언어 Java시절 많이 하던 방식인 swap 함수를 직접 만들어 면접을 보았습니다. 면접 시 코드def changeString(string_1, string_2): temp_string = string_1 string_1 = string_2 string_2 = temp_string return string_1, string_2string_1 = "string_1" string_2 = "string_2" print("Before Switch Data") print("string_1 : {}".format(string_1)) print("string_2 : ..
[Python] 공공api를 활용하여 내 주변 공적 마스크 판매처와 마스크 재고를 지도에 시각화해보자! 최근 코로나바이러스로 인하여 마스크 구입량이 수요가 급격히 늘어남에 따라 일반 온라인 / 오프라인 판매처에서 구매가 어려워져 급증하는 수요를 감당하기 위하여 정부에서는 마스크 5부제를 시행하고 있습니.. somjang.tistory.com 오늘은 어제 지도 시각화를 하면서 사용했던 마스크 데이터를 제공하는 공공 API와 텔레그램을 활용하여 나만의 텔레그램 마스크 재고 알리미를 만들어보고자 합니다. 2020년 9월 30일 업데이트 공적마스크 판매 중단으로 인하여 7월 8일 부로 API 지원이 종료 되었습니다. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한..
최근 코로나바이러스로 인하여 마스크 구입량이 수요가 급격히 늘어남에 따라 일반 온라인 / 오프라인 판매처에서 구매가 어려워져 급증하는 수요를 감당하기 위하여 정부에서는 마스크 5부제를 시행하고 있습니다. 이에 카카오맵 / 네이버 지도 같은 서비스에서 약국을 검색하면 마스크 공적판매처인지 아닌지에 대한 정보와 남은 마스크 수량등을 알려주는 기능이 추가되고 있기도 합니다. 오늘은 정부에서 제공하는 공적마스크판매처 API와 지난 국토 데이터 분석 경진대회에서 사용하였던 folium 라이브러리를 통해 카카오맵이나 네이버 지도에서 서비스를 하고 있는 것처럼 직접 지도에 시각화 해보기로 했습니다. 2020년 9월 30일 업데이트 공적마스크 판매 중단으로 인하여 7월 8일 부로 API 지원이 종료 되었습니다. 공공데..
로또, 다들 살면서 한번쯤은 구매하고 당첨 번호 발표일까지 당첨이 되면 무엇을 할까 고민하며 행복해 본 적이 있을 겁니다. 저도 가끔 구매 해보고 있지만 항상 결과는 역시나 였습니다. 그러던 중 그동안의 당첨번호를 분석해보면 무언가 나오지 않을까..? 로또 API를 가지고 데이터를 수집하여 한 번 해보기로했습니다. 이 글에서는 Python과 로또 API 그리고 여러 라이브러리를 활용하여 1회부터 894회 까지 역대 로또 당첨번호 중 어떤 번호가 가장 많이 또는 가장 적게 등장했는지 가장 높았던 당첨금은 얼마였는지, 가장 많은 사람이 당첨되었을 때는 언제였는지 한번 알아보려 합니다. 사용 라이브러리 : requests, json, pandas, tqdm, collections 나눔로또에서 제공하는 API를..
사진출처 "언제 출발할까"…T맵·카카오내비 추석 교통 예측 【서울=뉴시스】이진영 기자 = 추석 연휴(9월 12~15일)를 앞두고 길 안내 내비게이션 서비스를 운영하는 SK텔레콤과 카카오가 귀성·귀경길 교통 예측 결과를 발표했다 www.newsis.com 2019년 추석 T맵을 운영하고 있는 SKT와 카카오네비를 운영하고 있는 KAKAO에서 지난 5년간 축적된 빅데이터를 분석하여 귀성/귀경 시간을 예측하여 정보를 공개한 것을 보고 저도 고속도로 주요 톨게이트 사이의 소요시간 데이터를 모아 그래프를 그려 추측해본 적이 있었습니다. [Python]과거의 데이터로 최적의 추석 귀경시간 추측해보기(feat, matplotlib) 2년의 데이터를 가지고 도출한 최적의 귀경시간 본 표에 적혀있는 시간은 그저 받아온 ..
작업 환경은 아래와 같습니다. - OS : Mac OS Catalina - jupyter notebook, python3 먼저 다음과정을 통하여 필요한 라이브러리를 설치합니다. 1. pydub 설치하기 $ pip3 install pydub 위의 명령어를 통하여 pydub를 설치합니다. 2. brew를 활용하여 ffmpeg 설치하기 $ brew install ffmpeg 3. python 코드 작성 Jupyter Notebook을 열고 import pydub sound = pydub.AudioSegment.from_wav("./원하는 파일명.wav") sound.export("./원하는 파일명.mp3", format="mp3") 다음과 같은 코드를 작성하여 변환하면 됩니다.