파이썬3 노트 24

pipenv로 libmf나 implicit을 install할 때 cmath관련 에러가 난다면

에러 먼저, 이게 어떤 에러인가 하면 libmf나 implicit에서 사용하는 C언어를 컴파일 할 때 나는 에러인데 사실은 path가 꼬여서 발생한 것이다. 다른 블로그 글을 읽어보니 cmath와 math.c 패스가 들어간 곳이 달라 어딜 읽어야 하는지 몰라 그런것이라고 했다. ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 198 warnings and 20 errors generated. error: command 'clang' failed with exit status 1 ---------------------------------------- ERROR: Command errored out with exit..

파이썬3 노트 2021.01.12

Pycharm을 anaconda환경으로 설정하기

일단 miniconda를 깔아준다. $ brew install Caskroom/cask/miniconda conda를 zsh에서 초기화한다. $ conda init zsh no change taken 아래에 창을 새로 열면 변화가 있을 것이라는 문장이 나오면 성공. 가상 환경을 만든다. $ conda create --name {virtual_environment_name} python=3.7 -y 활성화한다. $ conda activate {virtural_environment_name} 비활성화 하고 싶다면 activate 대신 deactivate를 사용하면 된다. 이제 Pycham차례이다. Pycharm을 열고 cmd+,로 환경설정창을 연다. 아래 사진과 같이 Project Interpreter에 가..

파이썬3 노트 2020.05.28

Python3.x를 최대한 읽기 쉽고 아름답게 쓰기 위한 메모

회사에서 요즘 코드 정리하는 태스크에 집중하고 있는데 작성되어 있는 Python코드가 카오스 그 자체라 다시한 번 깔끔한 코드를 작성하는 것이 얼마나 중요한 것인가를 깨닫고 무엇을 하면 안되는지 메모했다. 참고하면 좋은 사이트 PEP 8 -- Style Guide for Python Code typing — Support for type hints Difference between , _ and xx in Python Why you should be using pathlib Python에는 문법만큼 지켜야 하는 작성규칙이 있다 개행 import는 가능한 한 최상단에서만 이루어져야 한다 import아래에 바로 함수 혹은 클래스가 나온다면 2줄 개행하고 변수가 나온다면 1줄 개행한다 import os imp..

파이썬3 노트 2020.05.12

외부 서비스의 데이터를 python으로 slack에 통지하기

slacker 설치하기 먼저 slacker를 설치한다 $ python3 -m pip install slackerslacker의 공식 github 링크를 타고 들어가면 예시들을 볼 수 있다. slack에서 token과 webhook url 가져오기 token 취득 token은 코드에서 slack을 초기화할 때 쓰인다. from slacker import Slacker slack = Slacker('your_token')token에는 4가지 종류가 있다. 1. bot: 어플리케이션이 독립적으로 작동하며 user token과 동일하게 개별 범위를 설정할 수 있음 2. user: 사용자를 대신해 사용자가 어플리케이션에 부여하는 OAuth 범위에 따라 작동함 3. workspace: 워크스페이스 어..

파이썬3 노트 2020.04.14

ElementTree로 xml파일 읽어오기 (2)

저번 글 => 2019/05/07 - [파이썬3 노트] - ElementTree로 xml파일 읽어오기 ① 저번 글에서 root를 찾고 root.find("이름")을 하면 각 요소에 for를 돌리지 않고도 찾아올 수 있다고 했다. 하지만 find는 가장 첫 요소만 갖고오기 때문에 for문과 섞어서 써야 한다는 말도 했다. 저번에 참고했던 SemEval데이터의 일부분을 적어놓고 시작하겠다. Being a PC user my whole life.... This computer is absolutely AMAZING!!! 도큐멘트(저번 글에 링크 있음)를 더 읽고 findall과 iter을 발견했다. findall은 현재 접근해 있는 요소 바로 아래 요소에만 접근할 수 있는 메소드라 한다. find와 다르게 f..

파이썬3 노트 2019.07.08

allennlp의 elmo.md 알고 싶은 부분만 적당히 직역

출처: https://github.com/allenai/allennlp/blob/master/tutorials/how_to/elmo.md ELMo: Deep contextualized word representations (ELMo: 깊은 문맥정보를 포함하는 단어 분산 표현) 대규모 쌍방향 언어모델 등으로 미리 훈련된 문맥정보를 포함하는 단어들의 분산표현은 질의응답, 동일 지시어, 의미론적 역할 라벨링, 분류, 구문분석 등의 많은 자연어처리의 지도학습 연구에서 GloVe나 word2vec보다 뛰어난 성과를 보여주었다. 이 문서는 pytorch와 allennlp를 이용해 당신의 모델에 ELMo 분산표현을 삽입하는 방법을 설명하기 위한 것이다. 물론 tensorflow로 구현하는 방법도 적어놓았다. ELMo..

파이썬3 노트 2019.05.12

ElementTree로 xml파일 읽어오기 (1)

SemEval의 훈련 데이터를 다운로드 했더니 xml파일이었다. 찾아보니 Python의 import xml.etree.ElementTree as ET로 xml파일을 처리할 수 있었다. 도큐멘트 -> https://docs.python.org/ja/3/library/xml.etree.elementtree.html 참고로 SemEval의 훈련 데이터 xml파일을 열어보면 아래와 같이 되어있다. Being a PC user my whole life.... This computer is absolutely AMAZING!!! 도큐멘트에 나와있는 첫 예시처럼 for문을 사용하면 SemEval 같은 경우, for child in root: print(child.tag, child.attrib) country {'n..

파이썬3 노트 2019.05.07

PyCharm으로 서버에 직접 파일 보내기

실험을 하기 위해서는 서버에 파일을 보내야 한다. 우리 연구실 사람들은 여러 방법으로 서버에 파일을 올리는데, 1. vim이나 emacs로 코드 작성 (따로 올릴 필요 없이 그냥 서버에서 코드 작성) 2. PyCharm으로 git과 서버에 동시에 push, 3. FileZilla와 같은 프로그램으로 서버에 파일 전송 이 가장 대표적인 방법인 것 같다. vim으로 적으면 가장 빠르다고는 하지만 나는 함수를 일일이 외우는데 한계를 느끼고 있기 때문에 (라이브러리가 너무 많아서 다 외우기는 ...ㅎ) 앞 몇 글자만 적어도 자동으로 함수를 불러오는 PyCharm을 애용하고 있다. git에 commit과 push하기도 편하고. FileZilla는 한 번 써 보긴 했는데.. 아직 익숙하지 않아서 그런지 매 번 서버..

파이썬3 노트 2019.04.19

torchtext로 전처리하기 (1) name, dirname, urls, cls.download()

나는 주로 pytorch로 구현을 하기 때문에 전처리를 torchtext로 같이 많이 한다.사용하면서 배운 점이나 알게된 점, 기억해야 하는 점을 몇 개에 걸쳐서 적을 것이다. torchtext에는 데이터를 불러오기 위한 방법이 2 가지 있다.하나는 내가 직접 path를 지정해주는 것, 두 번째는 파일을 다운로드 할 수 있도록 하는 것.따라서 내 코드를 다른 사람이 사용하거나 내 pc가 아닌 pc로 돌릴 때 내가 갖고 있는 데이터를 같은 path대로 준비하지 않아도 사용할 수 있다는 것이다. 그러기 위해서는 name, dirname, urls라는 변수를 class 초반에 지정해 줄 필요가 있다.예를 들면, 아래와 같다.import torch from torchtext.data import Dataset ..

파이썬3 노트 2019.04.19

python library의 upgrade를 pip으로 내놓지 않아 github의 master로 설치해야 할 때

저번 글에서 torchtext를 사용하다 RawField의 is_target문제로 upgrade해야 했다고 했는데 이게 github master에서 merge만 된 상태라 master로 직접 upgrade해야 했다. 아주 간단한 얘기지만 잊어버리면 귀찮으니 적어놓는다. 나와 같이 python3의 환경을 anaconda로 설정해 놓았다면 아래와 같이 적으면 된다. python3 -m pip git+https://github.com/pytorch/text.git 그럴 일은 없겠지만 나처럼.. terminal과 pycharm의 python3 환경이 다르다면 아래와 같이 적으면 된다..ㅎ /usr/local/bin/python3.7 -m pip install git+https://github.com/pytorc..

파이썬3 노트 2019.03.29