본문 바로가기

전체 글

(35)
자주 사용하는 코드 https://www.notion.so/j4s0n/86282f8fd4d04861ab82ccd97beb7a78 https://www.notion.so/j4s0n/numpy-pandas-09957d9b200a4bf6ba585cc9369b5934
torch-scatter, torch-sparse, torch-geometric install error pip install --no-index torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.1+cu101.html pip install --no-index torch-sparse -f https://data.pyg.org/whl/torch-1.8.1+cu101.html pip install torch-geometric --no-index를 붙여주자. 뒤의 torch-1.8.1+cu101은 맞는 버전으로 변경 (아래 코드로 확인) python -c "import torch; print(torch.__version__)" python -c "import torch; print(torch.version.cuda)" https://github.com/p..
Toy Project 1 (9) - 모델 / 학습 64, 16, 1로 layer를 추가하여 모델을 만든다. optimizer로 Adam, loss function으로 코사인 유사도 함수를 사용한다. 결과는 처참했다. 데이터가 너무 부족해서 정확도가 낮은거 같다. 또한 좋은 자연어 처리 모델을 사용해봐야겠다. 데이터가 적을 때는 다음과 같은 방법을 사용한다. 1. cosine loss를 사용한다. 2. 시작 가중치를 잘 잡는다. 3. network를 깊게 구성한다. 4. 5-fold cross-validation를 한다. 5. GAN, Fine-tuning을 한다. 전처리 단계도 검토해보겠지만 GAN으로 데이터를 생성하는 방법도 생각해보고 다른 프로젝트로 넘어가야겠다. from tensorflow.keras import models from tensorf..
Toy Project 1 (8) - Text preprocessing - Tokenization Tokenization을 진행하기 위해 정리된 csv 파일을 x_data와 y_target으로 나눈다. 이 프로젝트의 경우 Term1에는 False data가 있고 Term2에는 True data가 있기 때문에 아래와 같이 진행했다. data와 target으로 나눈 후 학습을 위한 train data와 평가를 위한 test data로 나눈다. from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.2, shuffle=True, stratify=target, random_state=7) mecab을 import하여 토큰화를 진행한..
Toy Project 1 (7) - M1 mac 설정하기(삽질) 전 처리에 필요한 pycospacing을 사용하는데 계속 에러가 발생했다. 처음에는 buffer error로 보였는데, 근본적인 문제는 m1 silicon mac OS에서 tensorflow를 사용하려면 기존의 conda로는 불가능하다는 것이었다. 아래의 링크를 통해 miniforge3을 설치하고, channel을 conda-forge로 맞추는 등 필요한 환경 설정을 해야 한다. (mac OS version 12) mac으로 데이터 분석하기 너무 힘들다... TF 2.6 version https://developer.apple.com/metal/tensorflow-plugin/ Metal - Apple Developer Find presentations, documentation, sample code,..
Toy Project 1 (6) - HWP XML PARSING하기 2 전의 코드를 확장하여 모든 xml 파일을 돌면서 본문의 표 안에 있는 데이터를 추출한다. 이때 표는 column 방향으로 2칸 혹은 3칸으로 split된 표만 포함한다. 3칸으로 된 표 중에 필요한 데이터는 많이 없기 때문에 직접 몇 개의 xml 파일을 뽑았다. 코드는 아래와 같다. import xml.etree.ElementTree as ET import os import csv mStr0 = [] # 개정 전 약관 텍스트 mStr1 = [] # 개정 후 약관 텍스트 mStr2 = [] # 첫번째 칸 문자열 mStr3 = [] # 두번째 칸 문자열 mStr4 = [] # 세번째 칸 문자열 mFileList1 = [] mFileList2 = [] mFileList3 = [ '/Users/jason/Tes..
Toy Project 1 (5) - HWP XML PARSING하기 1 이제부터는 지난 시간에 변환된 xml 파일들을 분석해서 훈련을 위해 필요한 데이터 셋을 만들 것이다. 공정위 사이트에서 추출한 데이터는 위의 사진과 같다. 많은 정보들이 있지만 내가 필요한 정보는 위의 사진과 같이 정도가 있다. 반드시 포함해야 하는 단어는 '조항'이다. 추가로 필요한 단어는 '예시' '수정 전, 후' '시정 전, 후' 정도 생각해 볼 수 있다. 처음에는 필요한 텍스트를 직접 찾아서 수정 전, 수정 후 텍스트를 분류하려고 했다. 하지만 그 과정이 번거롭고 단순하지 않기 때문에 hwp의 xml 구조를 분석하고 태그를 이용하여 쉽게 분류하기로 했다. hwpx의 구조는 위와 같다. 수정 전 약관 데이터, 수정 후 데이터 ..
Toy Project 1 (4) - HWP파일 XML로 바꾸기 지난 시간에 이어서 hwp5proc를 이용하여 hwp를 xml로 변환해보겠다. 근데 또 이 과정에서 많은 에러가 있었다. 터미널에서는 hwp5proc가 잘 동작하지만 jupyter notebook에서는 안 되는 에러가 발생했다. os.system을 사용해서 그냥 hwp5proc를 사용하면 xml 파일이 생성되지만 0바이트 빈 파일이 생성되는 에러가 발생했다. 아래의 링크를 참고하여 이 문제를 해결했다. https://stackoverflow.com/questions/48484152/os-system-returns-error-code-32512-python (분명 터미널에서 PATH 설정을 추가했는데 jupyter notebook에서는 적용이 안 되는 대참사가...) exefile = '/Users/jas..