전체 글41 QA System 서론 Question&Answering System이란?Question&Answering System(이하 QA) 시스템이란, 자연어 형태의 질문을 입력 받은 다음, 해당 질문에 대한 가장 적절한 답변을 찾아 답변하는 시스템을 의미한다. 종류에 따라서 답변을 ‘찾아서’ 보여주는 경우와 답변을 ‘생성해서’ 보여주는 경우로 나눠볼 수 있다.Question&Answering System이 어떻게 작동하는가?질문 분석사용자 질문에서 핵심 단어(키워드)와 의도를 파악합니다.예: “가장 높은 산”이라는 키워드와 “무엇인가?”라는 질문 의도를 인식.정보 검색(혹은 지식 베이스 접근)DB, 문서, 웹 페이지 등 다양한 데이터 소스에서 해당 질문에 답을 할 수 있는 정보를 찾아냅니다.질의응답 시스템마다 내부적으로 검색 엔진,.. 2025. 1. 15. [자료구조] 연결 리스트(Linked List) 정리 1. 연결 리스트(Linked List)란?연결 리스트(Linked list)는 데이터를 저장하는 선형 자료구조로써, 각 구성 요소가 노드(Node)로 구성되어 있으며 하나의 노드(Node)에는 데이터가 저장된 부분과 다음 노드를 가리키는 포인터(Pointer)로 구성되어 있습니다.또한 연결 리스트의 시작지점을 가리키는 'Head'와 연결 리스트의 끝을 가리키는 Tail로 구성되어 있습니다.2. 연결 리스트(Linked list)의 종류연결 리스트의 종류는 크게 (1)Singly Linked List, (2)Doubly Linked List, (3)Circular Linked List가 있습니다. 이번 포스트에서는 Singly Linked List와 Doubly Linked List에 대해서만 다뤄보고.. 2024. 11. 10. 오블완 챌린지 잘 활용하기! 0. 들어가며...최근에 티스토리에서 이벤트로 오블완 챌린지를 시작하였습니다. 오블완 챌린지는 매일 하나의 포스트를 작성해서 업로드만 하면 되는 이벤트입니다. 매일매일 글을 쓰는 동기가 부족한 저 같은 사람들이 짧게 참여해 볼 수 있는 좋은 이벤트라고 생각합니다. 앞서 말했듯이 저는 글을 자주 쓰는 편이 아니라서 생각보다 매일매일 글을 쓰는게 무척이나 힘든 작업이라는 것을 새삼 깨닫고 있습니다...하지만, 이왕 시작한거 21일 완주를 목표로 열심히 해보려고 합니다 1. 오블완 챌린지, 어떻게 활용할 것인가?제가 운영하는 블로그의 주제는 IT 중에서도 Python 코딩과 인공지능입니다. 이 주제로 매일 글을 쓰기 위해서는 매일매일 하나의 머신러닝 및 딥러닝 이론을 다룰 수 있지만, 매일 글을 쓰는 게 익.. 2024. 11. 9. [자료구조] 힙(Heap) 정리 1. 힙(Heap) 이란?Heap은 완전 이진트리의 한 종류로써, 우선순위 큐(Priority Queue)를 위해 고안된 자료 구조입니다. 특히, 다수의 자료에서 최소값과 최대값을 빠르게 찾을 수 있는 특징을 가지고 있습니다. 2. Heap의 종류최대 힙(Max Heap)최대 힙은 부모 노드의 값이 자식 노드 보다 크거나 같은 경우를 만족하는 완전 이진트리를 말합니다.(key(parents node) >= key(child node))부모 노드의 값이 항상 자식 노드보다 크거나 같기 때문에, root node는 항상 최대값을 가지게 된다.최소 힙(Min Heap)최소 힙은 부모 노드의 값이 자식 보드보다 작거나 같은 경우를 만족하는 완전 이진트리를 말합니다.(key(parents node) 부모 노드의.. 2024. 11. 8. [자료구조] 우선순위 큐(Priority Queue) 정리 1. 우선순위 큐(Priority Queue)란?우선순위 큐란, 큐(Queue)에 입력된 데이터를 우선순위에 따라 먼저 처리하고 싶은 경우에 사용합니다. 따라서 기존 FIFO(First In First Out)를 따르는 큐와는 다르게 순서와 상관 없이 우선순위가 높은 데이터가 먼저 나옵니다. 2. 우선순위 큐 구현방법우선순위 큐를 구현하는 방법은 크게 2가지가 있습니다. [1] 리스트(List)를 이용하여 구현하는 방법[2] 힙(Heap)을 이용하여 구현하는 방법2.1. 리스트를 이용하여 구현하는 방법리스트(List)를 이용하여 구현하게 되면 매우 간단히 구현할 수 있는 장점이 있습니다. 하지만, 리스트를 이용하여 구현하는 경우, 자료의 입출력의 속도는 선형적이므로(앞에서 부터 찾아가는 방법) 자료가 매.. 2024. 11. 7. OpenSSH : Start-Service sshd 오류 해결 최근 윈도우를 업데이트 하고 openssh를 실행하면 아래와 같이 에러가 발생하면서 서버가 켜지지 않는 에러가 발생합니다. Start-Service : 다음 오류로 인해 'OpenSSH SSH Server (sshd)' 서비스를 시작할 수 없습니다. '.' 컴퓨터의 sshd 서비스를 열 수 없습니다.CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandExceptionFullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand업데이트를 하고 왜.. 2024. 10. 28. HuggingFace를 활용하여 Text Classification task 수행하기 0. IntroductionHuggingFace는 빠르고 쉽게 데이터셋을 다운로드하고 모델을 만들 수 있게 도와줍니다. 또한 다양한 사람들이 사전학습한 모델을 다운로드 받아서 직접 실험해 볼 수 있습니다. 이번 포스트에서는 HuggingFace를 이용하여 가장 기본이라고도 볼 수 있는 Text Classification task를 수행해보고자 합니다.1. Data데이터는 HuggingFace에서 제공하는 'emotion dataset'을 사용합니다. emotion dataset은 train, validation, test dataset으로 구성되어 있으며, 각각의 데이터셋은 'text'와 'label'로 구성되어 있습니다. 이 데이터에서 예시를 하나 출력해보면 다음과 같이 text와 label이 dict.. 2024. 10. 10. Tokenizer : 기본적인 토큰화(Tokenization) 방법 0. Introduction기본적으로 언어를 입력받는 모델은 바로 텍스트(원시 문자열)를 입력받지 못합니다. 이는 시계열 데이터와 같이 숫자로 이루어진 데이터가 아니기 때문입니다. 따라서 우리는 모델에 텍스트를 입력하기 위해 원시 문자열을 숫자의 형태로 바꿔 줄 필요가 있습니다. 이때 원시 문자열을 숫자로 바꾸는 과정을 '임베딩(Embedding) 혹은 토큰화(Tokenization)' 이라고 합니다.(가끔은 인코딩(encoding)이라고 부르는 분들도 있습니다) 이번 포스트에서는 가장 기본적인 형태의 토큰화 방법에 대해 정리하고자 합니다. 1. 문자 토큰화(Character-based tokenization)가장 간단한 토큰화 방법은 각 문자를 1,2,3 과 같이 숫자로 바꿔서 모델에 입력하는 방법입니.. 2024. 9. 26. Pandas에서 특정 행들의 열 값을 바꾸는 방법 Pandas에서 특정 조건을 만족하는 dataframe의 열 값을 바꾸고 싶거나 열을 추가하여 기록하고 싶은 경우가 존재한다.예를들어 다음과 같은 dataframe이 있다고 가정해봅시다만약 이러한 경우에 fruits에서 'apple' 이라는 값들의 price를 30000으로 바꾸고 싶다면 pandas에서 loc 함수를 이용하여 쉽게 바꿀 수 있습니다.df.loc[df['fruits'] == 'apple','price'] = 30000 loc 함수를 이용하여 특정 열을 가져온 다음에 특정 행을 뒤에 써주게 되면 해당 값들을 한번에 바꿀 수 있게 해줍니다. 위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. 결과를 보면 fruits의 'apple' 들의 price가 모두 30000으로 적용된 모습.. 2024. 8. 9. 이전 1 2 3 4 5 다음