Python

파이썬

[파이썬] 멀티 쓰레드 정리

멀티 쓰레드를 사용한다고 싱글 쓰레드에 비해서 무조건 작업 속도가 빨라지지 않는다. 이유는 파이썬의 GIL(Global Interpreter Lock) 때문인데, 다른 블로그의 글을 인용하자면 CPython에서의 GIL은 Python 코드(bytecode)를 실행할 때에 여러 thread를 사용할 경우, 단 하나의 thread만이 Python object에 접근할 수 있도록 제한하는 mutex이다. 그리고 이 lock이 필요한 이유는 CPython이 메모리를 관리하는 방법이 thread-safeness하기 때문이다. 결국 같은 시간에 실행되는 쓰레드는 무조건 1개이며, 멀티 쓰레드는 GIL이 적용되지 않는 즉, CPU 동작이 아닌 I/O 동작이 많은 프로그램에 구현했을 때 가장 이상적이다. 그렇다면 왜 ..

파이썬

[파이썬] doc2vec 모델 학습, 저장 및 불러오기

def save_model(tokenize, epochs, min_alpha, corpus_list, model_name): # Mecab tagger = Mecab() # corpus 저장 리스트 tagged_corpus_list = [] # corpus 생성 (TaggedDocument 추가) for corpus in corpus_list: # 태그 tag = corpus[0] # 내용 word = corpus[1] # tokenize에 따라 다른 방법으로 Word Tokenize if tokenize == 'morphs': tagged_corpus_list.append(doc2vec.TaggedDocument(tags=[tag], words=tagger.morphs(word))) elif token..

파이썬

[파이썬] OpenCV, Pandas를 이용하여 LATCH 정보 출력

def make_dataframe(txt_path): name = [] size = [] country = [] file_name = [] breeds = [] life = [] with open(txt_path, encoding='utf8') as txt: lines = txt.read().splitlines() for line in lines: split_line = line.split(' ') for i, j in enumerate(split_line): if i == 0: name.append(j) elif i == 1: size.append(j) elif i == 2: country.append(j) elif i == 3: file_name.append(j) elif i == 4: breeds...

파이썬

[파이썬] 특수문자 비교 관련

a = "유해∙위험성".encode('utf-8') b = "유해·위험성".encode('utf-8') print(a) print(b) print(a == b) print(a in b) print(a is b) 문자열을 비교하다가 분명히 같은 문자열인데 비교하면 자꾸 False를 반환해서 UTF-8로 인코드하여 출력해보았다. 문자열에 포함된 가운뎃점은 각각 a는 텍스트 파일에서 추출하였고, b는 엑셀에서 추출하였다.

윈도우

[윈도우] 한글 형태소 분석기 MeCab(eunjeon) 설치하기

https://koshort.github.io/ Koshort Koshort은 한국어 NLP를 위한 high-level API 프로젝트입니다. koshort.github.io mecab을 윈도우에서도 간단하게 설치 가능하도록 도와주는 koshort의 pyeunjeon 라이브러리를 알게 되었다. www.microsoft.com/ko-kr/download/details.aspx?id=48145 Visual Studio 2015용 Visual C++ 재배포 가능 패키지 Visual C++ 재배포 가능 패키지는 Visual Studio 2015를 사용하여 빌드된 C++ 응용 프로그램을 실행하는 데 필요한 런타임 구성 요소를 설치합니다. www.microsoft.com 위 링크를 통해 Microsoft Visua..