분류 전체보기
[교육자료]. pyautogui 마우스 제어를 통한 윈도우 자동 종료
개개인 별로 모니터 해상도에 따라 다를 수 있음 import pyautogui import time pyautogui.moveTo(16, 752,1) #시작 아이콘 pyautogui.click() time.sleep(1) pyautogui.moveTo(23, 704,1) pyautogui.click() pyautogui.moveTo(94, 628,1) time.sleep(1) pyautogui.click() pyautogui.click()
[교육자료]. 냥코 대작전 레어 뽑기(가챠) 시뮬레이션 구현
import random 냥코 대전쟁 레어 뽑기 확률 출처 : 냥코 대전쟁 나무위키 # 확률값 정의 rare = 69.4 super_rare = 25 ultra_rare = 5 legend_rare = 0.6 rare_list = ["고양이 홉핑", "고양이 차륜", "고양이 에스테", "고양이 쥬라", "고양이 파이터"] super_list = ["고양이 댄스", "고양이 스시", "오덕 고양이", "고타츠양이", "고양이 사과"] ultra_list = ["고양이 아이스", "고양이 아이스 고스트", "고양이 머신", "도깨비 야옹마", "사람대장 도깨비 야옹마"] legend_list = ["원더 모모코","무사시",'잔다르크', "천성용 바벨","리코더 고양이"] 가챠 뽑기 함수 구현 def ra..
[교육자료]. pyautogui를 통한 자동 연주(feat.Bongo cat)
Bongo cat : https://bongo.cat/ Bongo Cat Bongos Keyboard Meow Cymbal Marimba Tambourine Cowbell LEFT RIGHT MEOW bongo.cat import time import pyautogui as pt 계이름 = { "도" : "1", "레" : "3", "미" : "5", "파" : "6", "솔" : "8", "라" : "0" } 비행기 = "미레도레미미미 레레레미미미 미레도레미미미 레레미레도" 나비야 = "솔미미 파레레 도레미파솔솔솔 솔미미미 파레레 도미솔솔 미미미 레레레레 레미파 미미미미 미파솔 솔미미 파레레 도미솔솔 미미미" for i in 나비야: if i == " ": time.sleep(0.2) else: pt...
[챗봇]. 편집거리 알고리즘을 통한 오타 확인
사람들이 채팅에서 사용하는 채팅체(구어체) 데이터들은 오타 혹은 줄임말등을 많이 사용하게 된다. 그러나 한글의 위대함 때문인지 오탈자를 사용하더라도 문맥에는 크게 지장가지 않는다. 그래서 친분이 있는 경우라면 더욱더 채팅할때 오타를 신경쓰지 않게된다.(나도 마찬가지) 기본적인 띄어쓰기 오류 , 애교가 섞인 말투(의도적) , 신조어 , 줄임말 등등,,, 하지만 인공지능 챗봇을 학습시킬때는 오타가 많을 경우 학습하기 어려운 측면이 있다. 물론 요즘 서브워드 기반인 워드피스 토크나이저를 사용하면 오타를 어느정도 보완하는 측면이 있지만. 오타를 정규화 해주는 게 좋은 성능을 야기할 수 있다. 이번 포스팅에서는 구어체 말뭉치를 가지고 자주 사용되는 오타를 확인해보고자한다. 말뭉치 데이터 AI-hub SNS 데이터..
[교육자료]. 클래스 학습( 용사로 드래곤 사냥하기 )
클래스 정의 import random class 드래곤: def __init__(self): self.체력 = 10000 self.공격력 = 20 def 기본공격(self): return self.공격력 def 피격(self,피격데미지): self.체력 -= 피격데미지 class 용사: def __init__(self,체력,공격력): self.체력 = 체력 self.공격력 = 공격력 self.치명타_확률 = 10 self.치명타_효과 = 2 def 기본공격(self): 확률값 = round(random.random() * 100 , 1) if(확률값 < self.치명타_확률): print("치명타!") return self.공격력 * self.치명타_효과 else: return self.공격력 def 피..
[ElasticSearch] SSL/TLS security https setting 외부에서 접속하기( version 8.x)
엘라스틱 서치가 8.0 버전을 기점으로 보안셋팅이 기본으로 설정되어있다. 음.. 보안이란것은 나에게 엄청 멀게만 느껴졌었는데 서비스를 하려면 기본적으로 https 통신을 해야 고객(user)들의 데이터들이 통신할때 암호화 하기때문에 안전하게 통신할 수 있다. https://opentutorials.org/course/228/4894 HTTPS와 SSL 인증서 - 생활코딩 HTTPS VS HTTP HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 opentutorials.org 보안의 대한 ..
[일]. 질문 잘하기
우연치 않게 네이버에 계신 프론트엔드 개발자 JBEE님의 NAVER DEVIEW 발표를 보게 되었다. "질문하기" 라는 막연한 행동이 정리되었고 이 내용을 정리하고 잘된 예를 발견해서 공유하고자 한다. https://jbee.io/essay/good_questionor/ 질문하기는 보통 수업시간이 끝날 때 즈음 교수자가 권유하게 된다. 하지만 다들 알고 있듯이 한국에서는 공개적인 장소에서는 질문을 잘하지 않는다. 그래서 질문하는 학생들을 좋아하는 교수자들이 생겨났고 이런 것들을 보면서 "질문하는 것은 좋은 것이다"라는 생각과 질문을 한다는 것은 적극성을 나타내는 어필이라고 생각했다. ( 열심히 하고 있습니다!!.. ) 그래서 무조건 질문하는 게 좋다, 쪽팔림을 두려워하지 말고 질문해서 답을 찾는 게 옳은..
[elasticSearch] 엘라스틱 서치 클라우드 배포 &셋팅하기
elasticsearch cloud service deployment and setting 1. 이메일 회원가입 - 이메일로 회원가입하면 14일동안 괜찮은 스펙의 클라우드 서비스 무료로 이용할 수 있다. 2. 배포하기 Create deployment 클릭 기본적으로 GCP로 설정이 되어있다. 배포할 서비스의 이름을 입력해주고 Edit settings 를 클릭하면 설정을 다르게 할 수 있다. * 어떤 클라우드 플랫폼(GCP,AWS,Azure)을 기초로 하느냐에 따라 요금의 조금차이가 있음 서비스의 맞게 셋팅해줘야함. 하단에 한시간 요금 / 한달요금을 확인하면서 셋팅할 수 있음. 3. Advanced settings 엘라스틱서치 셋팅 Advanced settings 에서 여러가지 스펙을 선택하여 셋업을 진행..
[NLP]. 구어체(채팅)데이터에서 필요한 품사만 가져오기 (feat.꼬꼬마 형태소 분석기)
구어체 (카카오톡 채팅 대화)에서 필요한 품사(pos tag)만 뽑아내기. 구어체는 일상대화 텍스트이기 때문에 문어체와 다른 특징들이있다. 구어체 : 입말체. 구어체(口語體)는 일상생활에서 실제 입으로 발화되는 말을 문장으로 나타낸 것을 말한다. 문어체 : 문어체(文語體)란 일상생활에서 사용되지 않고 문서에 한하여 쓰이는 문체를 말한다. 그래서 불용어 또한 문어체와 구어체에 따라서 다르게 구별해야한다고 생각한다. 한국어는 불용어에 대한 정의가 없어서 구어체를 기준으로 샘플데이터를 가지고 주관적인 불용어 품사들을 걸러내어 보고자한다. 이 자료가 누군가에게 도움이 되었으면 좋겠다. 품사 태깅 기준은 꼬꼬마(kkm) 형태소 분석기로 진행함. 이유는 엘라스틱서치에 nori 토크나이저의 품사들이 꼬꼬마와 유사하고..
[ElasticSearch]. 개발하면서 발견한 특징들
1.document id 는 index(순서)의 기능을 할 수 없다. 엘라스틱 서치는 하나의 row를 document(줄여서 doc)로 명칭하는데. document의 필수 파라미터인 id 는 RDBMS 처럼 자동으로 auto increment 해주는 기능이없다. 보통 문자열의 형식으로 숫자가 들어가는데 숫자가 아니여도 상관없다.(필수가 아닌 선택사항임) 차례대로 검색하는 것이 아닌 역 인덱싱 방식이라 필요가 없어서 그런게 아닐까 싶다. 2. 이미 있는 id에 다른 데이터를 넣으면(PUT) 덮어씌운다. 이미 해당하는 id 값에 데이터가 있다면 에러를 발생시키거나 어떤 처리를 할지 묻는게 보통인데. 그냥 데이터를 덮어씌워버린다. 3. 데이터를 추가할때 append 기능(맨 뒤에 추가)이 없다. 에초에 데이터..