Python 31

python :: 파이썬 웹페이지 url 에서 json 데이터 가져오기 (구글 애드센스 sellers.json 에서 자신의 사용자 정보 찾기)

http://{도메인 주소}/{파일명}.json 위와 같은 형태의 주소로 웹에 등록된 json 파일을 읽어오고자 할 때, 파이썬 스크립트를 작성하여 json data 를 가져올 수 있다. 1. requests 라이브러리로 웹페이지 json 데이터 불러오기 import requests url = "{웹페이지 json url 전체 경로}" data = requests.get(url).json() requests 를 사용하여 이렇게 간단하게 불러올 수 있다. 2. Google Adsense 'sellers.json' 에서 자신의 사용자 정보 찾기 구글 애드센스 허가를 받은 후 광고를 게재하면 이렇게 Google sellers.json 파일에 판매자 정보를 게시하라는 안내 문구가 뜬다. 1) sellers.js..

:: python 2022.01.02

python :: shutil.copy 리눅스 네트워크 드라이브로 파일 복사 시 WinError 해결

파이썬 스크립트를 작성, 실행하여 로컬(Windows) -> 네트워크 드라이브(Z:)(Linux) 로 파일을 복사할 때 shutil.copy 부분에서 다음과 같은 에러가 나는 경우가 있다. [WinError 5] 액세스가 거부되었습니다: 'Z:\\..' [WinError 3] 지정된 경로를 찾을 수 없습니다: 'Z:\\' 확인해보니 실제 파일은 성공적으로 복사가 되어 있는데도 shutil.copy 부분에서 에러가 발생하는 경우가 나타났다. 1. 권한 설정 살펴보기 이럴 땐 우선 권한 설정을 살펴보아야 한다. [WinError 5] 액세스가 거부되었습니다 위 에러는 권한 문제가 있을 때 발생한다. 폴더의 보안 설정을 확인해보거나, 파이썬 스크립트 실행 시 cmd 를 관리자(Administrator) 권한으..

:: python 2021.12.30

python :: 파이썬 re 로 정규식 패턴 문자열 처리하기 (search/match/split/sub/compile)

re는 문자열 내 특정 패턴을 검색, 치환, 제거할 수 있는 파이썬 정규 표현식(Regular Expression) 라이브러리이다. re 가 패턴을 인식하는 방법은 다음과 같다. 1) 정규식 작성 : 특정 문자를 인식하기 위한 패턴을 정규식으로 작성한다. (내가 할 일) 2) re 에 정규식 적용 : 작성한 패턴을 re 에 적용시키면 re 는 이를 가지고 정규식 객체를 생성한다. 3) 패턴 감지 : 생성된 정규식 객체는 자동으로 문자열 내 해당 패턴을 감지할 수 있다. 즉, 내가 작성한 정규식을 토대로 문자열 내 패턴을 감지하는 것이다. 코딩하다보면 한 번 쯤은 꼭 정규식을 접하게 되는데 뭔가 더럽게(?) 생긴데다 규칙이 잘 외워지지도 않는다. (그런데도 패턴 인식에 있어서 정말 많이 사용되는 표현식이다..

:: python 2021.12.29

python :: list 형태의 string(문자열)을 list type 으로 변환하기

text1 = '["A", "B", "C"]' text2 = "['D', 'E', 'F']" text1, text2 모두 내용은 list 의 형태이나 데이터 타입은 string type 이다. 이 문자열 내용 그대로 list type 으로 변환시키고 싶을 때 아래와 같이 eval 을 사용하여 간단하게 변환할 수 있다. result = eval(text1) 끝 ^_^ 진짜 변환이 잘 되었는지 확인해보았다. print(result) # eval(text1) 결과 출력 # ["A", "B", "C"] print(type(eval(text1)) # eval(text1) 의 데이터 타입 출력 # 이렇게 하면 list 형태로 쓰여 있는 텍스트 파일에서 데이터를 불러올 때 유용하게 사용할 수 있다. 이 외에도 ast..

:: python 2021.12.22

NLP :: MecabTokenizer() 생성 시 MeCab Tagger 런타임 에러(RuntimeError) 해결

한국어 토크나이징에 자주 쓰이는 Mecab 을 사용하기 위해 MecabTokenizer 객체를 생성하려는데 RuntimeError 가 발생했다. 그런데 에러 문구만으로는 원인을 파악하기 쉽지 않아 보였다. RuntimeError # 에러 문구가 이게 다임^_^ 에러 난 line 을 따라가 보니 mecab = MecabTokenizer() ↓ tagger = MeCab.Tagger('-d' + dir) 요 부분에서 에러가 났는데, mecab 사전을 지정하는 부분이 문제였음! 내 경우는 dir (mecab dic 경로) 을 잘못된 경로로 넣어서 사전 인식이 안 된 것이 문제였다. MecabTokenizer() 객체 생성 시 아무 설명 없이 런타임에러가 난다면 mecab dictionary 를 잘 불러오고 있..

:: ai/nlp 2021.12.15

NLP :: sentencepiece tokenizer 로 문장 토큰화하기

자연어처리 분야를 공부하다보면 tokenizer 를 자주 접하게 되는데, 이는 기계에 문장을 통째로 넣고 학습시키는 것보다는 의미 단위로 단어를 쪼개서 넣고 학습시키는 것이 성능에 더 좋기 때문이다. 그 중 Google 의 Sentencepiece tokenizer 는 사용하기도 쉽고 워낙 유명한지라 많이 쓰인다. 사용법을 알아보도록 하자! 0. install sentencepiece 라이브러리가 없는 경우 설치해준다. pip install sentencepiece 1. train 토크나이저도 학습이 필요하다. 학습 문장들을 토대로 문장을 쪼개는 방식을 학습하는 것이다. 텍스트 파일 → 학습 → model, vocab 파일 문장들이 나열된 텍스트 파일을 넣고 학습시키면 model, vocab 파일을 떨구..

:: ai/nlp 2021.12.14

python :: 회사 프록시(proxy) 환경에서 파이썬 패키지 다운로드, api 호출 성공하기

사내 프록시 서버가 있는 환경에서 개발하다보면 수많은 장벽을 만나게 된다(..) 그동안 프록시 때문에 수많은 뻘짓을 하며 알게 된 파이썬 관련 문제 해결방법들을 정리해보았다 :D 1. pip install. 패키지 설치 python -m pip install --upgrade {패키지명} --proxy {회사 프록시 서버 주소} --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org python package 설치할 때는 위 명령어를 사용한다. 1) 프록시 서버 주소를 설정하는 --proxy 옵션 외에 --trusted-host 도 함께 써주면 잘 된다. 2) pip install 로 설치하면 ..

:: python 2021.11.30

git :: 깃 브랜치 생성하여 개발용/운영용 형상 관리하기 (development, master 브랜치)

git 으로 프로젝트 형상 관리를 할 때 1) 코드를 편하게 수정, 반영하며 쓸 개발용 저장소 2) 안정성이 검증된 버전만 관리할 배포/운영용 저장소 이렇게 분리시켜 관리를 할 때가 많다. 1) => development branch 2) => master branch 각각 이렇게 두 개의 branch 로 나누어 형상을 관리한다. 1. 브랜치 새로 생성 git 웹페이지에서 프로젝트 좌측 상단의 'Branch' 를 클릭하면 브랜치 목록과 현재 선택된 브랜치(여기서 development)를 확인할 수 있다. 'Find or create a branch...' 라고 쓰여있는 입력 칸에 새 branch 명을 입력하면(stage) 이렇게 'Create branch: stage' 라고 하단에 뜬다. 클릭하면 바로 ..

:: git 2021.11.23

python :: 파이썬 Bytes to String 변환하기

파이썬 subprocess 라이브러리를 이용하여 리눅스 커맨드를 실행한 후 실행 결과 내용물을 받아왔다. (* 참고: https://toramko.tistory.com/11) String 형태로 받아올 것을 기대하고 코드를 짰더니 TypeError: must be str, not bytes TypeError 에러가 났다. String 이 아닌 Bytes 타입이라니..? subprocess 실행 후 받아온 결과를 찍어보았다. b'Hello Toramko.\n' 이렇게 'b' 로 시작되는 형태가 출력되었는데, 이는 String 이 아닌 Bytes 타입이다. 그렇다면 Bytes -> String 으로 변환하려면? sentence = str(sentence, "utf-8") 요렇게 해주면 된다. 매우 간단!

:: python 2021.11.18

NLP :: Transformer 기반 문장 생성(Text Generation)과 decoding 옵션

* https://huggingface.co/blog/how-to-generate 위 사이트를 참고하여 작성한 내용입니다. :) Open-ended Text Generation(개방형 텍스트 생성)이란 기계가 주어진 context에 이어질 문장을 생성해내는 것이다. 주어진 문장들을 토대로 기계가 스스로 이야기를 써내려갈 수 있게 하는 기술! 언젠가 기계가 작가 대신 글을 쓰는 날이 오지 않을까? 하고 생각해보았다면 그게 이 분야 이야기일 것이다. (그치만 사람만이 불어넣을 수 있는 창의적인 표현력과 감성이 있어서 '대체'는 어려울 거라 생각한다 :) ) transformer 기반 언어 모델이 발전함에 따라 최근 이 Open-ended Text Generation 분야에도 큰 발전이 있었다. (transf..

:: ai/nlp 2021.11.17
300x250