Developer 19

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

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

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

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
300x250