전체 글 85

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

GLUE Benchmark

https://gluebenchmark.com/ General Language Understanding Evaluation (GLUE) 지표는 자연언어이해를 위한 시스템을 훈련, 평가, 분석하기 위한 데이터를 모아놓은 것이다. GLUE에는 아래 항목이 포함되어있다: 9개 문장 혹은 문장 쌍의 지표는 현존하는 데이터셋에 기반하고 있으며 폭 넓은 데이터셋의 크기, 장르, 난이도를 망라할 수 있도록 선택되었다. 데이터셋(진단셋)은 넓은 범위의 자연언어를 대상으로 하는 모델을 평가하고 분석할 수 있도록 설계되었다. 지표의 성능을 추적하는 공적인 리더보드와 진단셋을 바탕으로 하는 모델의 성능을 가시화하는 계기판이 있다. GLUE 지표는 모델에 구속받지 않기(model-agnostic) 때문에 어떤 시스템도 문장/..

기타 메모 2019.03.31

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

pycharm과 terminal에서의 python3 환경이 달라 에러가 날 때

torchtext의 RawField()에서 is_target에러가 나길래 찾아보다 master에 merge되었으니 재설치 해야 한다는 issue 발견. -> https://github.com/pytorch/text/pull/459 Set `is_target` to False by default in `RawField` by SudoSharma · Pull Request #459 · pytorch/text Fixing issue potentially caused by #288. You can now use RawField directly without any workarounds as mentioned in issue 422. github.com 하지만 terminal로 열심히 업그레이드 해도 코드는 업그..

파이썬3 노트 2019.03.29

[Iterator]

1. Iterator(오브젝트형) 먼저 파이썬 도큐멘트에 나와있는 설명을 보면:데이터의 연속(stream)을 표현하는 오브젝트이다. iterator의 __next__() 메서드(혹은 내장 함수인 next())에 대한 반복적인 호출은 시퀀스 속 아이템을 잇따라 불러온다. 더이상 불러올 아이템이 없을 경우에는 StorIteration 예외가 대신 반환된다. iterator는 iterator 오브젝트 그 자체를 반환하는 __iter__() 메서드를 가지기 때문에 모든 iterator는 당연히 iterable하며 다른 iterable이 적용될 수 있는 곳에 사용될 수 있다. 딱 하나 예외는 여러번의 반복을 시도하는 코드이다. 컨테이너 오브젝트(e.g. list)를 iter()에 넘길 때 마다 혹은 for 반복문..

파이썬3 노트 2019.01.13

파이썬이 느리지만 대중적인 이유

원문 기사: https://medium.com/@trungluongquang/why-python-is-popular-despite-being-super-slow-83a8320412a9Why Python is Popular Despite Being (Super) Slow이 글에 사용된 사진은 모두 원글이 출처입니다. 파이썬이 느린 이유:고급 프로그래밍 언어(High-Level Programming Language)이기 때문이다: 파이썬은 인간의 사고와 비슷한 구조를 갖는다. 이를 위해 메모리 관리, 포인터 등과 같은 컴퓨터의 상세한 사정은 추상적으로 표현될 필요가 있다. 따라서 저급 프로그래밍 언어인 C언어보다 느릴 수 밖에 없다.파이썬은 해석형 언어(Interpreted)이며 컴파일되지 않는다: 파이썬 ..

Medium 노트 2019.01.07

torchtext: example 속 들여다보기

torchtext를 쓰다보면 from torchtext.data import Dataset, Example, Field, Iterator, LabelField, NestedField, RawField class Anything(Dataset): def __init__(self, *arg, fields, filter_pred=None): examples = [] ... super(Anything, self).__init__(examples, fields, filter_pred) examples라는 것을 볼 수 있는데(물론 오브젝트형은 달리도 엄청 많지만) examples 속에 어떻게 내용이 들어가 있는가 확인하기 위해서는

파이썬3 노트 2018.12.31