식별자(Identifier)의 개념 - 데이터베이스에서 인스턴스(Instance)의 집합인 엔터티(Entity)를 구분할 수 있는 논리적인 값으로 하나의 Entity에 구성되어 있는 여러가지 속성 중에 대표할 수 있는 속성 - ex) 주민등록번호, ISBN(도서번호) 등과 같이 객체의 고유한 값들을 일반적으로 식별자라 부른다 식별자와 키(Key)를 동일한 의미로 보통 사용하는데 식별자의 용어는 논리 데이터 모델링 단계에서 사용하며, Key는 물리 데이터 모델링 단계에서 사용된다. 식별자의 특징 유일성 - 주식별자에 의해 엔터티(Entity)내의 모든 인스턴스들을 유일하게 구분한다. - ex) 대학교 학생들에서 학번 부여 최소성 - 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다..
요 며칠전에 뉴스를 보면서 솔직히 충격을 먹을 수 밖에 없었다. 바로 2015년 박근혜 정부가 담배값을 2500원에서 4500원이라는 약 2배의 가격을 올렸을 때 가격을 막지 못했다며 한탄해하던 현재 여당이 무려 8000원대까지 인상을 추친한다는 기사를 보면서이다. 솔직히 세금이 궁할 수 있어도, 이 상황을 진보지지자로서 어떻게 받아들여야 할지 몰랐다. 차라리 일시적으로 세금을 올리던가, 자기들이 막지 못했다고 미안해했었고 대통령 선거땐 담배값을 줄이는 것도 검토중이라던 여당이 어떻게 저런 말을 할 수 있을까? 생각만해도 기가 찰 수 밖에 없었다. 정부의 말은 전혀 설득이 되지 않았는데 OECD의 평균 가격으로 상승시키겠다는 말이 도대체 무슨 개소리인 것인가? OECD 평균 가격이 아니면 OECD 수준으..
현재 메인 블로그(본 블로그)는 구글 서치 콘솔에 등록이 되어 있어서 검색어 기반으로 내 포스팅이 몇번째 순위로 등장하는지 알 수 있으나, 서브 블로그는 등록이 되지 않아서 알기 힘든 상황이다. 구글 서치 콘솔은 구글에서 검색을 할 때 현재 내 블로그의 상황을 매우 잘 알 수 있어서, 어떻게 하면 순위를 올릴 수 있을지 등을 파악하기에 용이하다. search.google.com/search-console?hl=ko Google Search Console Search Console 도구와 보고서를 사용하면 사이트의 검색 트래픽 및 실적을 측정하고, 문제를 해결하며, Google 검색결과에서 사이트가 돋보이게 할 수 있습니다. search.google.com 속성 등록 위 링크된 사이트에 들어간 다음 왼쪽 ..
생성적 적대 신경망(Generative Adversarial network)은 GAN 혹은 GANs(networks)이라고 표기하며, 한국에서는 간이라고 많이 말하지만 영어 발음으로는 겐, 갠이라 발음한다. 보통 한가지에 치중된 신경망 모델들과 다르게 GAN은 2가지(생성자, 판별자) 종류의 신경망을 가지고 있으며, 이를 통해서 진짜 같은 가짜를 만들어내는 것을 목표로 두고 있는 딥러닝(Deep Learning) 알고리즘이다. GAN 단어의 의미 생성적(Generative) 일단 메인이 되는 것은 바로 생성이라고 할 수 있으며 GAN의 첫번째 단어인 Generative(생성적)는 바로 데이터를 스스로 생성하는 생성자(Generator)를 뜻한다. 데이터를 생성하는 것은 훈련 세트에 따라 결정되기에 예를 ..
노션(Notion)을 이미 알고 있는 사람이라면 이런 최고의 찬사가 전혀 이상하지 않다는 것을 알 수 있다. 노션을 다루면서 그동안 여러군데 관리했던 것을 하나로 통합할 수 있었고 업무의 퀄리티가 급격히 올라갈 수 있었던 것 같다. 언택트(Untact)가 본격화 되면서 어느샌가 문서 작성이 너무나도 중요해졌고, 프로젝트 관리마저 이제는 직접 회의를 하는 것이 아니라 문서로 주고 받는 상황이 되어 버렸다. 나는 회사에서 연구원이자 직책자이기 때문에 실험적인 부분부터 작성법을 위한 위키같은 문서와 관리를 위한 프로그램 혹은 사이트를 이용했었다. 초창기, 에버노트와 아이폰과 아이패드 전용의 어썸노트(Awesome)부터 관리만을 위해서는 칸반 기반의 사이트까지 안해본 프로그램이 없는 것 같으나 최근 노션을 알게..
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..