본문 바로가기

전체 글30

[CS] gensim ImportError 1. 가상 환경 생성2. 문제 발생 및 해결 과정 오늘은 패스트캠퍼스 강의 영상을 보며 공부하다가 gensim 패키지를 설치하면서 발생했던 ImportError 와 해결과정에 대해 다뤄보도록 하겠습니다. 1. 가상 환경 생성vscode 환경에서 진행했는데 평소에는 "python -m venv" 명령어를 사용하여 가상 환경을 만들었지만, 최근에 강의를 통해 conda를 사용하여 가상 환경을 만드는 방법을 배웠습니다. 강의에서는 "conda create -n 가상 환경 디렉토리명 python=버전" 명령어를 사용하여 가상 환경을 생성하는 것을 보여줬는데, 이 방법을 따라해봤습니다. 큰 문제 없이 가상 환경이 만들어졌고 다음 단계로 이어갔습니다. conda를 이용한 가상 환경 관련 명령어는 다음과 같습니다. .. 2024. 5. 3.
[Streamlit] 개발 환경 설정 1. config.toml 파일 정의 및 생성2. config.toml 파일 설정오늘은 Streamlit 개발 환경을 설정하는 방법 중 하나인 config.toml 파일에 대해 알아보도록 하겠습니다.1. config.toml 정의 config.toml 파일은 Streamlit 애플리케이션을 설정하기 위한 파일입니다. 이 파일을 통해 애플리케이션의 외관, 동작 및 기타 설정을 조정할 수 있습니다. 파일의 생성 위치는 .streamlit/config.toml  입니다. 이 파일은 특정한 위치에 있어야만 Streamlit이 그 내용을 인식하므로, 생성 위치에 주의해야 합니다. 프로젝트를 처음 만들게되면 .streamlit 이 없기때문에 이전에 디렉터리를 생성하지 않은 경우 추가해줘야합니다.  2. confi.. 2024. 4. 29.
[Algorithm] 다익스트라 알고리즘(Dijkstra’s Algorithm) 1. 백준 1916번 문제 2. 다익스트라 알고리즘(Dijkstra’s Algorithm) 1. 백준 1916번 문제 오늘도 알고리즘 공부를 위해 백준 문제에 도전했는데, 1916번 문제인 "최소비용 구하기"에 도전했습니다. 처음에는 간단하게 DFS를 이용하려 했지만, 최대 도시의 수가 100,000개로 주어지고 시간 제한이 0.5초라는 점을 고려하니 다른 접근 방식이 필요하다고 느꼈습니다. 문제에서 어떤 간선에는 큰 값이 들어갈 수도 있고 작은 값이 들어갈 수도 있다는 점을 고려하면, 결국에는 모든 경우를 탐색해야 한다고 생각했습니다. 그러나 시간 제한이 짧기 때문에 조건을 걸어주어 조기에 탐색을 종료할 수 있도록 백트래킹을 이용하여 코드를 작성했습니다. import sys sys.setrecursio.. 2024. 4. 11.
Text Embedding 1. Text Embedding 이란2. 임베딩 방법3. Word2vec 1. Text Embedding 이란기존의 비정형 데이터 형태의 자연어 데이터를 n차원의 수치형 벡터로 표상화 시킨 데이터단순히 텍스트를 숫자로 변환하는 것이 아니라 해당 언어가 가지는 의미적 컨텍스트를 지닌 숫자로 변환머신러닝 알고리즘 활용 시 분석에 용이한 형태 2. 임베딩 방법1) Sparse Vector(구문 정보 중심)문장 내에 단어의 등장 여부, 등장 빈도 등 구문론적 정보가 표현(의미가 다르더라도 동일한 단어 구성이라면 벡터의 생김새가 동일 )대부분의 요소가 0으로 채워지고, 소수의 요소만이 0이 아닌 값을 갖는 벡터일반적으로 희소 벡터는 실제 데이터에 비해 매우 큰 차원을 가지는 경우에 사용비효율적인 저장공간단어의 의.. 2024. 4. 11.
[Git & GitHub] Branch와 Merge 과정 1. Branch 개념 2. Clone 및 Merge 과정 3. reset, revert 사용 4. git name, email 변경 오늘은 원격 저장소의 모든 내용을 Clone을 통해 가져와 특정 Branch의 내용을 수정하고 Merge하는 과정에 대해 말씀드리겠습니다. 1. Branch 개념 일련의 과정들을 말하기에 앞서 Branch란 무엇인지, 왜 사용해야 하는지 간단하게 말씀드리고 넘어가도록 하겠습니다. Branch란 "동일한 소스 코드에서 파생된 독립적인 개발 라인" 이라고 말할 수 있습니다. 여기서 중요한 포인트는 "독립적인" 이라는 키워드입니다. 보통 프로젝트를 진행하게 되면 여러 명이 함께 작업을 진행하게 되는데, 이때 각 개발자는 자신이 생성한 브랜치에서 작업을 수행하고, 이후 변경 사항.. 2024. 2. 26.
[CS] CRLF vs LF 1. 사건 개요 2. 운영체제별 개행 표현 3. 해결 및 느낀점 1. 사건 개요 프로젝트를 깃랩에서 가져와 VSCode에 클론한 후 도커를 사용하여 이미지를 빌드하고 컨테이너를 생성하여 실행하는 과정에서 문제가 발생했습니다. 이미지와 컨테이너는 build 및 create 명령을 사용하여 성공적으로 생성되었지만, 컨테이너를 실행하면 잠시 실행된 후 Exited(1) 상태가 되며 즉시 종료되었습니다. 이유가 궁금해 Logs를 확인해 보니 "exec ./run.sh: no such file or directory" 라는 문구가 있었습니다. (1주일 전에도 시도했지만 오류를 못찾아서 중도포기하고 다른거하다가 재도전 하였습니다...) 오류 메시지 자체는 "run.sh" 파일을 찾을 수 없다는 것으로 해석이 간단했.. 2024. 2. 20.
[Algorithm] 이진 탐색(Binary Search) 1. 이진 탐색 개념 2. 이진 탐색 동작과정 3. 백준 10815번 4. 번외 (list vs set) 1. 이진 탐색 개념 이진 탐색은 오름차순으로 정렬된 배열을 반복적으로 반으로 나누어 내가 찾고자 하는 값이 선택될 때까지 탐색하는 알고리즘입니다. 또한, 이진 탐색 알고리즘은 입력 데이터가 많거나(1000만 단위 이상) 탐색 범위의 크기가 매우 넓을 때 효과적으로 문제를 해결 할 수 있습니다. (반드시 정렬이 되어 있어야합니다.) 2. 이진 탐색 동작 과정 다음과 같이 오름차순으로 정렬 되어있는 배열이 있다고 가정해 보겠습니다. 이진 탐색은 배열을 반복해서 반으로 나누기 때문에 초기값, 끝값, 중간값이 필요합니다. 이 값들을 그림에 표시해보면 이런식으로 나타낼 수 있습니다. 배열의 초기 인덱스와 마.. 2024. 1. 23.
[자료구조] 힙(heap) 1. 힙(heqp)의 개념 및 규칙 2. heapq 함수 활용하기 3. 힙(heap) 정렬 4. 최대 힙(heap) 1. 힙(heqp)의 개념 및 규칙 앞에서 큐는 데이터가 들어온 순서대로 나가는 선입선출(First In First Out)의 자료구조라고 공부했습니다. 그런데 들어가는 데이터에 우선순위를 매겨서 들어간 순서와 관계없이 나갈 때 우선순위가 높은 데이터가 먼저 나가는 자료를 "우선순위 큐" 라고 합니다. 힙(heap)은 이러한 우선순위 큐를 구현한 자료구조 입니다. 힙은 다음과 같은 규칙을 지닌 이진트리입니다. 1. 노드를 왼쪽에서 오른쪽으로 하나씩 빠짐없이 채워나간다. 2. 최소 힙은 부모 노드가 자식 노드의 값보다 작거나 같아야한다. (최대힙은 부모노드가 자식 노드의 값보다 크거나 같다... 2024. 1. 22.