Okt(Open Korean Text)는 트위터에서 만든 오픈소스 한국어 처리기인 twitter-korean-text를 이어받아 만들고 있는 프로젝트이다. 기존 형태소 분석기인 트위터 형태소 처리기의 깃헙(github)을 들어가면 github.com/twitter/twitter-korean-text twitter/twitter-korean-text Korean tokenizer. Contribute to twitter/twitter-korean-text development by creating an account on GitHub. github.com 기존 트위터 형태소 분석기에 다음과 같은 내용이 있다. 트위터에서 넘어온 깃허브 주소는 아래와 같고 github.com/open-korean-text/o..
현재 유니코드로 대부분의 문자열을 추출하기 때문에 본 포스팅도 유니코드를 기반의 한글 자모 추출 내용이다. 우리가 한글에서 자모를 추출하기 위해서는 유니코드에서 한글이 어느위치에 있는지를 알아야 한다. (참고로 파이썬에 관련된 자모 추출이 궁금하면 포스팅 맨 하단의 링크글로 들어가면 된다.) 유니코드는 마구잡이로 한글을 넣지 않았고 초성, 중성, 종성의 조합으로 값을 넣게 되었는데 반대로 이 조합을 알면 현재의 한글을 초성, 중성, 중성으로 분리할 수 있다는 말이 된다. 비슷한 개념으로 영어의 소문자(97~122)와 대문자(65~90)의 변환을 32로 빼고 더하는 것으로 변환할 수 있는 것과 유사하다. 유니코드에서 한글의 시작점은 AC00값이며, 이 값은 한글로 "가"이다. 즉 이 값을 기준으로 유니코드..
아스키코드(ASCII) 아스키코드(American Standard Code for Information Interchange, ASCII)는 아스키의 말을 풀어 썼을 때 알 수 있는 것처럼 오로지 미국을 위한 표준 부호였다. 초창기 컴퓨터는 영어권에서 사용됐으며, 당시 그들은 전세계의 말을 쓸 필요가 없다 생각했기에 1bit의 체크섬(Checksum)용을 제외하고 라틴 문자, 숫자 그리고 특수 문자들을 128개 모와 7bit의 아스키코드를 만들었다. 그러나, 컴퓨터의 발달로 전세계가 각자 부호표를 만들어 수많은 캐릭터셋(ex: euckr, cp949)을 만들게 되었고 이 캐릭터셋은 최근 10년 들어서 UTF-8로 대동단결하게 된다. 참고로 10년전만 하더라도 수많은 국내 사이트들이 EUC-KR로 사이트를..
자연어처리(NLP)에서 토크나이징(Tokenizing)이란 데이터를 처리하기 위해서 최소한의 의미를 기반으로 토큰(Token)을 뽑는 것을 말한다. 형태소(Morpheme)는 언어에서 의미를 가지는 가장 작은 단위이기 때문에 토크나이징을 한다는 것은 사실 형태소를 기반으로 쪼개는 경우가 가장 많고, 결국 필드에서 형태소 분석는 토크나이징(자연어처리에 한함)과 유사한 의미로 사용된다. 그리고 형태소 분석(Morphological analysis)은 품사 기준으로 데이터를 분석하기 때문에 품사 태깅(part-of-speech tagging, POS tagging)과 거의 동의어(토크나이징 = 품사태깅 = 형태소 분석)로 사용한다. 실제로 필드에서 형태소 분석이란 대부분 단어를 품사 기준으로 분리하고 품사로 ..
랜드마크(Landmark)라는 것은 탐험가 혹은 여행가들이 원래의 장소를 돌아오기 위해서 표식을 해두는 것을 말하였지만 현대에 들어서는 유명한 장소를 랜드마크라고 한다. 예를 들어 서울의 랜드마크 중 하나로 63 빌딩, 롯데 타워, 남산 타워 등 다양한 랜드마크들이 있다. Face Landmark는 얼굴의 특징점을 말한다. 예를 들어 동공의 위치, 입술의 좌표, 눈썹의 좌표 등 이런 값들을 추출하여 x,y 값으로 리턴을 하는데 대표적으로 Python의 라이브러리 중 dlib, opencv로 랜드마크를 추출하는 방법이 있으며 본 포스팅에서는 opencv로 얼굴의 특징점들을 추출하는 것을 보여드리고자 한다. 라이브러리 설치 pip install dlib pip install imutils pip instal..
엑셀을 쉽게 읽는 방법으로 판다스(Pandas)를 활용하는 방법도 있지만, OpenPyXL을 사용하여 엑셀을 디테일하게 컨트롤 할 수 있다. 테스트에 사용한 엑셀 키움증권과 카카오에 있는 FAQ 내용을 몇개 가져와서 2개의 sheet를 만든 구조이며 컬럼은 질문과 답변으로 되어 있는 구조이다. 모든 데이터 읽어오기 import openpyxl as xl wb = xl.load_workbook('C:/Project/steel/faq.xlsx') for sheet_nm in wb.sheetnames: print('*' * 100) print('시트명:', sheet_nm) sheet = wb[sheet_nm] for row_data in sheet.iter_rows(min_row=1):# min_row는 시..
챗봇을 만드는 방법은 상당히 많이 있으나 가장 고전적이면서 가장 많이 활용되고, 기업들이 가장 많이 활용하고 있는 Rule-Based 챗봇을 만들어보도록 한다. 사실 룰기반 챗봇은 다른 말로 표현하는 것이 워낙 많기도 하다. 기업에서 상용적으로 사용하는 Rule-Based는 대표적으로 Intent(의도)와 Entity(개체)를 관리해서 하는 경우가 많고 이들도 큰 틀로 Rule-Based라 할 수 있다. Rule-Based 설계하기 Rule-Based가 뭔지 모르는 분들에게 간단하게 설명을 한다면 규칙을 직접 설계해서 어떤 말이 만들어진 규칙에 해당한다면 Answer를 하는 것이다. 여기서 설명할 Rule-Based는 너무나 방대한 챗봇을 만드는 것이 아니라 간단하게 만들어볼 것이며 Entity와 Int..
어느샌가 윈도우에서 MS 계정으로 로그인되어 Windows 계정 사진이 MS 프로필 사진으로 변경되어 있었다. 문제는 이 사진을 변경하기 위해서 MS에서 변경을 시도해봤지만 제대로 반영이 되지 않고 있었다. 이런 상황을 나만 겪는게 아니라 다른 사람들도 힘들어 하는 것 같은데 10년전 프로필 사진을 눈뜨고 볼 수가 없어서 구글링하여 방법을 찾게 되었다. 윈도우의 메뉴 버튼을 클릭 한 후, 설정 아이콘을 선택한다. 설정에 들어간 후 나오는 수많은 메뉴들 중 계정을 선택 계정에 들어가서 곧장 나오는 화면을 아래로 스크롤하면 사진 만들기, 카메라, 찾아보기와 같은 메뉴들이 보일 것이다. 여기서 찾아보기를 선택한다. 카메라는 현재 내 모습을 웹캠으로 찍어서 만드는 것으로 보인다(시도는 해보지 않았음) 찾아보기를..
파이썬은 아직 언어가 완벽하지 않은 프로그램 언어이다. 그러다보니 버전업이 될때마다 개발에 대해서 호환이 잘 안되는 경우가 많고, 이는 파이썬 자체뿐만 아니라 라이브러리들도 그러하다. 텐서플로우(Tensorflow)를 하나 예로 들면 이제 나온지 5년도 안된 라이브러리, 프레임워크지만 버전간 호환이 안되는 경우가 허다하고, 이는 곧 특정 버전에 정체 되는 문제를 만든다. 파이썬이란 언어가 개발자보다는 연구원과 같은 비개발자들이 좀 더 선호하는 경향이 많아서 그런지 코딩하는 방식도 워낙 천차만별이고, 서비스에 접목시키기 상당히 어려운 예제들이 많다. 자바 개발자는 gradle이나 maven과 같은 빌드툴로 동일한 환경에서 개발을 매우 쉽게 할 수 있으며, war나 jar안에 패키지로 묶어서 실행하는 할 수..
자바에서 Map 데이터를 loop를 돌리면서 가져오는 방법은 한가지만 있는 것이 아니다. 게다가 Stream이 지원이 되는 1.8부터는 더더욱 그 방법들이 늘어났는데 방법들을 정리해보고, 성능을 비교해보도록 한다. 고전적인 방법들 Iterator 방식 public static void main(String[] args) { Map map = new HashMap (); for(int i = 0; i < 1000000; i++) { map.put("key" + i, "value" + i); } long startTime = System.currentTimeMillis(); iteratorloop(map); long endTime = System.currentTimeMillis(); System.out.pr..
비트코인이 금일 3,000만원을 돌파하였다. 2018년 1월에 2800만원을 기록하고 박상기의 난, 중국 거래소 폐쇄 등의 수많은 악재로 3200달러까지 내려갔던 비트코인은 2만달러 앞에 한번 숨을 고르더니, 이내 우습게 넘긴 후 28000달러까지 가버렸다. 그야말로 파죽지세이며, 올해 비트코인과 견줄만한 것은 테슬라밖에 없을 것 같다. 테슬라와 비트코인 둘다 공통점이 하나 있다. 새로운 기술에 1인자이며, 둘다 힘든 시기를 버티고 올라가고 있다는 것이다. 테슬라는 200달러를 장기간 횡보하다가 15배가 올라버린 상황이고, 비트코인은 3200달러까지 내려가다가 28000달러까지 올라가버렸다. 하지만 테슬라보다 비트코인이 더 대단하다 말할 수 있는 것은.. 테슬라는 해킹 사건이라는 것을 당할 수 없는 주식..
머클트리(merkle tree), 머클루트(merkle root), 머클해시(merkle hash), 해시트리(hash tree) 다 비슷한 용어로 약간의 차이점만 있을 뿐 모두가 뜻하는 바는 동일하다. 우리가 암호화폐에 투자를 하거나 블록체인에 대해서 이해를 하려면 머클트리의 기술 정도는 이해를 할 수 있어야 하며 내용상 이해하기 어려운 것도 아니니 쫄 것도 없다. 머클트리는 암호화폐가 나오면서 만들어진 기술이 아니라, 1979년 랄프 머클이라는 사람이 만들어낸 개념으로, 일반적으로 트리 알고리즘들이 검색을 위해서 만들어졌다면 머클트리는 검증을 위해서 만들어진 트리이다. (여기까지 이해가 안되더라도 그냥 넘어가도록 한다) 머클트리의 구조 머클트리는 위와 같은 구조로 되어 있고, 최상위 블록헤더(Bloc..