전체 글
-
[ 비선형 자료구조 ] heapify & heap sortComputer Science/자료 구조 2023. 3. 5. 02:06
heapify와 heap sort 힙은 모든 부모 노드가 자식 노드 이상(max-heap) 혹은 이하(min-heap)의 값을 가지는 완전이진트리이며, 주어진 배열이나 리스트를 힙 구조로 만드는 연산이 heapify입니다. heap sort는 정렬되지 않은 배열이나 리스트를 heapify 프로세스를 이용해 heap 자료구조로 변환한 뒤 root 노드의 값을 추출해 배열 혹은 리스트에 추가하는 과정을 모든 요소가 정렬될때까지 반복하는 알고리즘 입니다. heapify : 배열이나 리스트를 힙 구조로 재구성하는 연산 heap sort : 힙에서 root값을 반복적으로 추출해 정렬된 배열을 만드는 알고리즘 heapify heapify는 배열을 인자로 받아 힙의 특성에 맞게 재구성시키는 연산입니다. 이러한 hea..
-
[ JS ] Layered illustJavascript/실습 2023. 3. 1. 19:25
layered illust는 '마우스와 상호작용하는 이미지를 만들어 볼까?'라는 생각이 들어 만들게 되었습니다. 요소에 적용된 동작은 마우스 오버에 따른 회전, 마우스 아웃에 따른 바운스 효과, 캔버스를 통한 비 내리는 효과 등이 있습니다. See the Pen illust_layered by OnnJE (@ogtitle) on CodePen. 목표로한 동작은 요소가 마우스를 바라보는 방향으로 3차원 회전을 하는 것입니다. 이러한 3D Rotation을 구현하기 위해서 생각한 방법은 요소 앞에 그리드 패널을 씌워 마우스의 위치를 특정하고 각 그리드에 대응하는 변환을 적용하는 것입니다. 따라서, 그리드 패널을 가운데 그리드가 (0, 0)인 좌표 평면으로 취급하여, 각 그리드에 마우스 오버 이벤트를 추가해 ..
-
[ OpenAI / WebsiteQnA tutorial ] 총정리Openai 2023. 2. 28. 20:44
import requests import re import urllib.request from bs4 import BeautifulSoup from collections import deque from html.parser import HTMLParser from urllib.parse import urlparse import os # Regex pattern to match a URL HTTP_URL_PATTERN = r'^http[s]*://.+' # Define root domain to crawl domain = "openai.com" full_url = "https://openai.com/" 1. 데이터 수집 - beautifulsoup 라이브러리를 통한 크롤링 # Create a class t..
-
[ OpenAI / WebsiteQnA tutorial ] Embedding을 이용한 Context 생성 및 응답 (4)Openai 2023. 2. 28. 20:42
4. Embedding을 이용한 Context 생성 및 응답 def create_context( question, df, max_len=1800, size="ada" ): """ Create a context for a question by finding the most similar context from the dataframe """ # Get the embeddings for the question q_embeddings = openai.Embedding.create(input=question, engine='text-embedding-ada-002')['data'][0]['embedding'] # Get the distances from the embeddings df['distances'] =..
-
[ OpenAI / WebsiteQnA tutorial ] Embedding - openai 라이브러리를 통한 Embedding (3)Openai 2023. 2. 28. 20:39
3. Embedding - openai 라이브러리를 통한 Embedding 머신러닝의 자연어 처리(NLP) 관점에서 Embedding은 단어, 구를 벡터로 나타내는 것입니다. 즉, 단어나 구의 의미를 세밀한 벡터로 표현해 기계학습 모델에서 사용할 수 있도록 하는 처리입니다. import openai from openai.embeddings_utils import distances_from_embeddings df['embeddings'] = df.text.apply(lambda x: openai.Embedding.create(input=x, engine='text-embedding-ada-002')['data'][0]['embedding']) df.to_csv('processed/embeddings.cs..
-
[ OpenAI / WebsiteQnA tutorial ] 데이터 가공 - tiktoken 라이브러리를 통한 데이터 프로세싱 (2)Openai 2023. 2. 28. 20:37
2. 데이터 가공 - tiktoken 라이브러리를 통한 데이터 프로세싱 def remove_newlines(serie): serie = serie.str.replace('\n', ' ') serie = serie.str.replace('\\n', ' ') serie = serie.str.replace(' ', ' ') serie = serie.str.replace(' ', ' ') return serie remove_newlines(serie)는 python의 Series는 1차원 배열과 같은 자료구조입니다. Series 객체 생성시 따로 인덱스를 할당하지 않는다면 0부터 시작되는데 자세한 사항은 아래 링크에서 확인 가능합니다. 뭐 어쨌든 이함수는 pandas의 Series 관련 객체를 인자로 받은 뒤 ..
-
[ OpenAI / WebsiteQnA tutorial ] 데이터 수집 - beautifulsoup 라이브러리를 통한 크롤링 (1)Openai 2023. 2. 28. 20:34
import requests import re import urllib.request from bs4 import BeautifulSoup from collections import deque from html.parser import HTMLParser from urllib.parse import urlparse import os # Regex pattern to match a URL HTTP_URL_PATTERN = r'^http[s]*://.+' # Define root domain to crawl domain = "openai.com" full_url = "https://openai.com/" 1. 데이터 수집 - beautifulsoup 라이브러리를 통한 크롤링 # Create a class t..