개발자 24

python :: yaml 파일 읽기, yaml 데이터 json data로 변환하기

다음과 같은 내용의 yaml 파일이 있다. jobs: - developer - influencer name: toramko 위 파일의 내용을 읽어서 json data 로 변환하려면 다음과 같이 yaml 라이브러리의 'safe_load' 를 사용하면 된다. import yaml import json yaml_path = "" json_data = {} with open(yaml_path, 'r', encoding='utf-8') as file: yaml_data = yaml.safe_load(file) json_dic = json.dumps(yaml_data) json_data = json.loads(json_dic) print(json_data) # {'jobs': ['developer', 'influe..

:: python 2023.04.26

linux :: 리눅스 서버에 스토리지(storage) mount 시키기

서버를 운영할 때 추가 스토리지(storage) 를 사용하려면 해당 스토리지를 서버에 mount 시켜줘야 한다. ↓↓ AWS 서버에 EBS volume 을 mount 하는 과정을 토대로 작성함 :) 1. 파일 시스템 유무 확인 sudo file -s /dev/xvdf mount 할 볼륨(/dev/xvdf) 에 대하여 파일 시스템이 생성되어 있는지 확인한다. * 참고로 여기서 xvdf 같은 볼륨명은 대단한 의미가 있는 건 아니고, 디스크가 꼽혀있는 순서와 파티션을 토대로 지정된 이름이다. /dev/xvdf: data 이렇게 'data' 라고 출력된다면 생성되어 있지 않은 상태. 2. 파일 시스템 생성 sudo mkfs -t ext4 /dev/xvdf /dev/xvdf 에 대한 파일 시스템을 생성한다. -t..

:: linux 2021.12.21

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

NLP :: 파이썬(python) 으로 OpenNMT 모델 통해 문장 번역하기(translate)

OpenNMT 는 NMT(Neural Machine Translation, 신경망 기계번역) 분야의 유명한 오픈소스 프로젝트다. OpenNMT 는 pytorch 기반의 라이브러리를 제공하는데 요게 OpenNMT-py 이다. 즉, 파이썬을 이용하여 OpenNMT 모델을 다루고 문장 번역을 해보고 싶다! 하면 OpenNMT-py 를 활용하면 된다. OpenNMT 로 모델을 학습하고, 학습이 완료된 모델을 활용하여 문장을 번역(translate)할 수 있다. 번역 과정은 OpenNMT-py 를 이용한 방법과 ctranslate2 를 이용한 방법이 있다. 1. OpenNMT-py 를 이용한 방법 CLI 형태로 간단하게 사용하고 싶다면 이 방법을 사용하면 된다. 1) OpenNMT-py 라이브러리 설치 pip i..

:: ai/nlp 2021.12.10

windows :: 윈도우 재부팅 시 네트워크 드라이브 연결 끊길 때 해결

윈도우에서 네트워크 드라이브를 연결해 두었음에도 불구하고 재부팅 후 네트워크 드라이브 아이콘 앞에 'X' 자 표시와 함께 연결이 끊어져 있을 때가 있다. * 참고 - 윈도우 네트워크 드라이브 연결하기 * https://toramko.tistory.com/entry/windows-%EC%9C%88%EB%8F%84%EC%9A%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0 windows :: 윈도우 네트워크 드라이브 연결하기 컴퓨터에서 C 드라이브 같은 기본적인 드라이브 외에도 외부의 네트워크 드라이브를 사용해야 할 때가 있다. 그럴 때 네트워크 드라이브..

:: windows 2021.12.05

windows :: 윈도우 네트워크 드라이브 연결하기

컴퓨터에서 C 드라이브 같은 기본적인 드라이브 외에도 외부의 네트워크 드라이브를 사용해야 할 때가 있다. 그럴 때 네트워크 드라이브를 연결해두면 자유롭게 드라이브를 넘나들며 사용할 수 있다. 1. 파일 탐색기 > 내 PC > 마우스 우클릭 > '네트워크 드라이브 연결(N)...' 클릭 여기서 마우스 우클릭 시 '네트워크 위치 추가' 가 아닌 '네트워크 드라이브 연결'을 클릭해야 한다는 점! (헷갈려서 헤맸다^.^;) 2. 드라이브명, 연결 폴더 네트워크 주소 입력 후 '찾아보기' 클릭 폴더 주소에 ip를 입력하고 맨 앞에 '\\' 을 붙인다. 3. 해당 네트워크 드라이브 아래 연결하고자 하는 공유폴더 선택 > '확인' 클릭 > '마침' 클릭 만약 2번에서 입력한 네트워크 폴더 주소가 틀리면 폴더 리스트가..

:: windows 2021.12.02

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 :: 깃(git) reset, 푸시했던 내용 없애기

이미 push 한 코드에 문제가 생겨 원래대로 되돌려야 할 때가 있다. 이 때, 푸쉬했던 내용을 흔적조차 없이 지우고 싶다면!! reset 을 사용하면 된다. 1. reset git reset {revision} 여기서의 revision 은, 취소하고 싶은 시점이 아닌 되돌아가고 싶은 시점이다. 즉, - 20211129 버전: 버그가 생김 - 20211128 버전: 정상 작동 의 상태라면, 20211128 버전의 revision 을 넣어야 한다는 것. [IntelliJ] 프로젝트 우클릭 > Git > Repository > Reset HEAD... 클릭 Commit ID 입력 후 Validate 로 확인 > Reset 클릭 2. force push (중요!) reset 만 진행했다면 아직 끝난 게 아니다..

:: git 2021.11.30

git :: 깃 브랜치(branch) merge 하기 (+ local/remote/origin 이란?)

하나의 git repository 에 브랜치가 여러 개일 때, 한 브랜치에 반영된 사항을 다른 브랜치에도 적용해야 할 때가 있다. 예를 들어 개발 브랜치에 수정사항을 반영하고 정상 동작 확인 후 운영 브랜치(실제 운영 중인 코드 관리)에 해당 수정사항을 동일하게 반영할 때, 이 때 사용하는 방법이 'git merge' 이다. 1. 최소 2개 이상의 브랜치를 둔다. 기본적으로 repository 에 두 개 이상의 브랜치가 있어야 한다. 여기서는 development(개발 브랜치), master(운영 브랜치) 두 개를 만든다. * 참고: development, master 브랜치 따로 따기 (https://toramko.tistory.com/15) 2. 한 쪽 브랜치에 수정사항을 반영한다. developme..

:: git 2021.11.24
300x250