본문 바로가기

파이썬(Python)

(28)
한국어 인코딩 과정에서 나오는 주요 Unicode Decode Error 목록 내가 이 문제로 골머리를 좀 앓는다. 나 포함 Unicode Decode Error 와 다투는 많은 이들을 위해 도움이 되었으면 좋겠다. 1. 들어가기에 앞서, position number를 이해한다. byte_data = b'\x00\x01\x02\x03\x04 ... \0xFF' 라는 예시를 들겠다. 인코딩 오류를 볼때 아래의 개념을 쓴다. in position 0 == 0번째 위치 == 바이트값 \x00 in position 1 == 1번째 위치 == 바이트값 \x01 in position 2 == 2번째 위치 == 바이트값 \x01 in position 255 == 255번째 위치 == 바이트값 \xFF 실제 텍스트 데이터는 이보다 복잡하게 나올 것이다만. 바이트, 인코딩, 유니코드 사이의 관계 ..
유니코드 그룹 표(Unicode groups table in EN & KR) 실제 문자를 보고 싶으면 Win(田)+S 로 검색창 열고, '문자표' 열어서 보면 가장 깔끔하다. 인코딩 관련 조치에 이어서, 이번엔 utf-8 이 어느어느 영역에 어떤 것을 할당했는지 확인해 보았다. 일부는 번역이 되어 있으나, 전부 다 되어있지는 않아서 직접 다 메웠다. 노가다라 몇시간 걸림ㅋ. https://docs.google.com/spreadsheets/d/1k_O31DPb14fYi3qkQYkbMTRgzPaLGVV5MlkSFRvH000/edit#gid=983189201 utf-8 table EN,KR utf-8 code groups EN,KR 2byte Utf-8 HexValue , Group Name,한국 어 이름 U+0000 ... U+007F, Basic Latin,라틴 U+0080 ....
time stamp method in Python DeepLearning Xception 을 사용했다. 에포크 사이간격 잴때 처음 시작-끝을 재기보다는 각 에포크에 callback을 지정해서 time을 저장한 뒤 합쳐야 더 정확하다. 실제로 결과가 callback(cb) 로 저장한 리스트의 총합 < code cell 에 뜬 시간 < 전체 시작-끝 띄웠을때 시간 으로 나온다.
for loop 은 최대한 적게 써야 빠르다. [('단어1', #빈도1), ('단어2', #빈도2), ... , ('단어n', #빈도n)] 이라는 tuple(str, int)-list 두개(input1, inpu2)에서 겹치는 단어(intxn에 추따로 단어만 저장)만 뽑아서 그 빈도수를 더하는 연산이다. 몇달전 초창기에는 전수조사 방식으로 만들었다. 전체 목록을 보며 대조해가면서 조사하라는 구문. intxn 과 input1, intxn과 input2를 각각 조사해야되다 보니 길이가 엄청나게 길다. 최근에 .index 라는 기능을 찾아내어 이를 썼더니 훨씬 간단해졌다. 실제로 속도가 어마어마하게 빨라졌다. 그래서 처음에 내가 잘못만든줄 알았는데 코드분석 해보니 느릴수밖에 없었겠더라. 저 index 라는 기능은 특정 행렬에서 어떤 단어의 위치를 반환한다..
Unicode Decode Error : 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte 문제를, 해결할 수도 있는 한가지 방법 for Non-Koreans, directly go to the bottom. There is an English summary. You may translate this article to read, but I think it would not be very helpful, due to incorrectness of automatic-translation between Korean-English. txt 파일을 with open 으로 불러와 str 로 저장하여, 그 str를 KoNLPy KKMA(꼬꼬마)에 넣고 pos 돌리는데, 일부 텍스트 파일에서만 Decode 에러가 났다. stack overflow 검색으로 이십여 개의 글을 읽어봤으나, 명확한 답은 나오지 않았다. 일단 나는 0xed 바이트 in..
Kaggle(케글) dataset에 한글제목으로 파일 올리면 이름 깨지는 문제: 해결책 zip 만들어서 올리기 케글 dataset 만들때 한글로 된 파일제목 (예를 들면 1234가나다라5678.txt) 을 올리면, 업로드 표시창에는 제목이 정확히 들어간다. 그러나, 막상 dataset upload 가 끝나고, 이를 쓰려고 code 에다 연결하면 파일 이름이 (1234 5678.txt 아니면 12345678.txt) 이런식으로 한글 부분이 싹 사라진 걸 볼 수 있다. 그리고 한번에 1000개 파일 이상 바로 못올린다. 해결법은 의외로 간단하다. 올리려는 파일과 폴더를 싹 압축하여 zip을 만들고 그걸 올리면, 정상적으로 들어간다. 그리고 파일 1000개 이상 넣고 zip 만들어 올려도 모든 파일이 다 들어간다. 간단한 거나 제목 훼손되어도 큰 지장없는 테스트파일은 막 올리는게 편하지만, 본격적으로 다루려면 zip ..
엑셀 문서의 셀 값이 리스트일 때, 리스트 그대로 파이썬 판다스로 추출하는 방법 Python의 pandas 라이브러리 중, read_excel 을 써서 파일을 불렀는데, 내부의 데이터인 셀 값이 list 형식이면 이것이 각 문자로 나뉘어 str로 저장된다. 예를들어 엑셀문서의 특정 열(왼쪽 예제)를 read_excel을 써서 부른다. pd_xls_ex = pd.read_excel(file_xls_ex) selected_row_ex = pd_xls_ex['실험용'] 원하는 결과는 대략 다음와 같다.
케글(kaggle)에서 깃헙 저장소(github repository) 불러오기 경진대회 툴인 kaggle. 어지간한 파이썬 코드는 코랩(colab) 대신 이 케글을 이용해서 만들 수도 있다. !pip install 라이브러리_이름 으로 내장된 것들은 부를 수 있는데, 깃헙에 올라온 소스를 이용하는 법은 정확히 안 알려주길래 찾아헤매다 방법 배워서 기록. 검색문구는 install github repo as python package. 최상위 검색결과에 스택 오버플로(stack overflow) 질의응답에 해법이 나온다. https://stackoverflow.com/questions/15268953/how-to-install-python-package-from-github !pip install git+https://github.com/제작자주소/라이브러리_이름 을 넣으면 잘 들어간..