일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CTM
- Optimizer
- KeyBert
- 붕괴 스타레일
- NLP
- 토픽 모델링
- 구글 스토어 리뷰
- SBERT
- BERTopic
- 옵티마이저
- Tableu
- 다항분포
- 트위치
- 데이터리안
- LDA
- 자연어 모델
- 포아송분포
- 데벨챌
- 피파온라인 API
- 개체명 인식
- 블루아카이브 토픽모델링
- Roberta
- 블루 아카이브
- 데이터넥스트레벨챌린지
- 원신
- 코사인 유사도
- 조축회
- 클래스 분류
- geocoding
- 문맥을 반영한 토픽모델링
- Today
- Total
목록프로그래밍/알고리즘 (6)
분석하고싶은코코

"코사인 유사도를 선택한 이유와 다른 유사도는 무엇이 있을까?" 위 질문을 받아보니 명확한 이유를 답할 수 없었습니다. 그냥 유사도에 대해서 학습할때 코사인 유사도를 많이 사용하니 코사인 유사도를 사용하는거지라는 생각만 들었습니다. 그래서 이번 포스팅에서는 다양한 유사도의 종류에 대해서 알아보도록 하겠습니다. 다양한 유사도들에 대해서 알아볼 예정이기에 하나의 포스팅보다는 여러 포스팅으로 나눠 진행합니다. 유사도(Similarity)? 다양한 유사도들에 대해서 알아보기 이전에 유사도(Similarity)란 무엇인가에 대해서 부터 이해하고 다양한 유사도들에 대해서 살표보겠습니다. 유사도란 A와 B가 서로 얼마나 비슷한가? 가까운가? 닮아있는가? 등의 단어로 표현할 수 있습니다. 즉 두 대상을 비교하는데 얼마..
카카오 미로찾기 문제를 풀다가 최단 경로 알고리즘을 검색 했는데 다익스트라 알고리즘을 발견하여 공부하였다. (미로찾기 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/81304) 다익스트라 알고리즘 최단 경로를 구하는 알고리즘으로 우리가 자주 이용하는 네비게이션 기능이 이 알고리즘으로 구성되어 있다고 한다. 그럼 우리가 알고 있는 최단 경로 찾기 방법에 대해서 생각해보면 출발점에서 목적지까지 도착하는 과정의 모든 거리를 더해 어느 길이 가장 짧은 거리가 최단 거리라는 결론을 내리게 된다. 이 과정을 코드로 구현해야한다. 그런데 문제는 모든 길을 전부 탐색하기에는 계산할 수 있는 경우의 수가 너무 많다는 것이다. 알고리즘을 생각하기 전에 사람..
다익스트라 알고리즘을 공부하면서 알게된 모듈 heapq 이걸 알아야 다익스트라를 이해할 수 있을 것 같아서 heap과 heaq부터 찾아보았다. Heap Heap은 Complete Binary Tree를 기본으로 가지는 자료구조 일반적으로 array로 구현하는 것이 좋음 Heap 은 최댓값 또는 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안됨 시간복잡도: O(log₂N) Heap은 다음과 같은 속성(property)를 만족함 A가 B의 부모노드이면 A의 키값과 B의 키값 사이에는 대소관계가 성립 종종 priority queue를 보충하는대에 사용 (참고 블로그 : https://brownbears.tistory.com/391) Heap Heap은 Complete Binary Tree를 기본으로 가지는 자..

지금까지 알고리즘을 공부하면서 구조를 이해하고 넘어갔었는데 매번 볼때마다 시간복잡도에 대한 이야기가 있어서 제대로 찾아봐야겠다는 생각을 하게 되었다. 시간복잡도 입력값이 변화에 따라 연산을 실행할때, 연산 횟수에 대비 걸리는 시간을 의미. 즉 효율적인 알고리즘이란 이 연산이 증가함에 따라 이 시간이 얼마나 적게 걸리는지를 이야기한다. 이 시간복잡도 표기법은 '빅-오(Big-O)' 표기법을 사용한다고 한다. 표기법 빅(Big) - Big-O(빅-오) : 상한 점근(최악) - Big-Ω(빅-오메가) : 하한 점근(최선) - Big-θ(빅 세타) : 둘의 평균(중간) 이러한 표기법이 있는데 시간복잡도에서는 빅-오 표기법을 사용하는 이유는 최악의 경우 이정도까지 시간이 걸린다를 고려해야하기 때문이라고 한다. 빅..
코테 문제들을 많이 풀다보면 난이도가 중급(?)이상부터 자주 등장하는 알고리즘이었다. 자주 사용되길래 어떤 알고리즘인지 공부해야되겠다 싶었다. BFS(Breath Frist Search) - 넓이 우선탐색 bfs는 넓이 우선 탐색으로 다음 깊이(Depth)로 넘어가기 전에 해당 층에 있는 노드들을 먼저 전부 탐색하는 것이다. 그래서 탐색의 순서는 선입선출이다. 탐색 대기열에 추가된 순서대로 탐색을 진행한다. DFS(Depth Frist Search) - 깊이 우선 탐색 dfs는 깊이 우선 탐색으로 다음 넓이(Breath)로 넘어가기 전에 해당 줄기에서 연결된 노드들을 끝까지 먼저 탐색한 후에 남아 있는 같은 층 노드를 탐색하는 방법이다. 그래서 이 순서는 후입선출이다. 탐색 대기열에 마지막으로 추가된 노..
자료구조는 리스트, 튜플, 딕셔너리에 대한 사용법(?)에 대해서 좀 자세히 알게 되었다. 알고리즘은 정렬 알고리즘은 어느정도 알고 있었는데 재귀함수를 활용한 알고리즘은 아직은 어렵다. 알고리즘을 하나씩 따라가다보면 음~ 맞지맞지 라고 느끼지만 해보라고 하면 못할 것 같은 느낌이라... 계속 재귀함수에 대한 경험을 쌓아야 할듯..ㅎ HTML 삽입 미리보기할 수 없는 소스 마지막 연습 문제 코드 중에 수정 해야할 부분이 2가지 있다. 1. 마지막 연습문제 코드 중에 getMidArea에서 while문 조건문 while 0 toRight: 로 수정해야함 2. getMidArea 설명 주석중 가장 작은 높이를 찾아가는 과정을 이야기 한 것. 세부 과정은 좌우를 비교해서..