파이썬
-
🍄 알고리즘 시간복잡도 및 요약 카테고리이름시간복잡도설명자료구조유니온 파인드O(α(N))서로소 집합 자료구조, 경로 압축 + union by rank자료구조우선순위 큐 (힙)삽입/삭제: O(log N), 조회: O(1)최대/최소값을 빠르게 관리하는 큐자료구조링크드 리스트삽입/삭제: O(1), 탐색: O(n)노드 포인터 기반 구조, 삽입·삭제 효율적자료구조Trie삽입/탐색: O(L)문자열 저장 트리, 접두사 탐색에 최적완전탐색DFSO(V + E)깊이 우선 탐색, 스택/재귀 기반완전탐색BFSO(V + E)너비 우선 탐색, 큐 기반백트래킹백트래킹O(조건에 따라 다양)상태 공간 트리 탐색, 가지치기 통해 효율화탐색이진 탐색O(log N)정렬된 배열에서 중간 기준 이분 탐색최단경로다익스트라O((V + E) lo..
알고리즘은 재밌어 - 알고리즘🍄 알고리즘 시간복잡도 및 요약 카테고리이름시간복잡도설명자료구조유니온 파인드O(α(N))서로소 집합 자료구조, 경로 압축 + union by rank자료구조우선순위 큐 (힙)삽입/삭제: O(log N), 조회: O(1)최대/최소값을 빠르게 관리하는 큐자료구조링크드 리스트삽입/삭제: O(1), 탐색: O(n)노드 포인터 기반 구조, 삽입·삭제 효율적자료구조Trie삽입/탐색: O(L)문자열 저장 트리, 접두사 탐색에 최적완전탐색DFSO(V + E)깊이 우선 탐색, 스택/재귀 기반완전탐색BFSO(V + E)너비 우선 탐색, 큐 기반백트래킹백트래킹O(조건에 따라 다양)상태 공간 트리 탐색, 가지치기 통해 효율화탐색이진 탐색O(log N)정렬된 배열에서 중간 기준 이분 탐색최단경로다익스트라O((V + E) lo..
2025.01.31 -
그동안 알고리즘 공부하며 공부한 것들 정리 🍄 문제 풀면서 느낀 팁파이썬은 1초에 대충 2천만 번 연산 가능하다고 보면 됨시간 복잡도는 꼭 계산해보기구현 문제일수록 문제 꼼꼼히 봐야 함테스트 케이스 다양하게 넣어보기. 특히 최소, 최대, 엣지 케이스 🍄 자주 쓰는 파이썬 내장 함수/모듈itertools: permutations, combinations, count heapq: 우선순위 큐 구현할 때 bisect: 이진 탐색할 때collections: deque, Counter math: factorial, sqrt, gcd, pi, sin, cos 등등 sum, min, max 이런 기본 함수들도 은근 많이 씀 🍄 파이썬 팁 mutable / immutable 정리 mutable: list, di..
알고리즘은 재밌어 - 파이썬그동안 알고리즘 공부하며 공부한 것들 정리 🍄 문제 풀면서 느낀 팁파이썬은 1초에 대충 2천만 번 연산 가능하다고 보면 됨시간 복잡도는 꼭 계산해보기구현 문제일수록 문제 꼼꼼히 봐야 함테스트 케이스 다양하게 넣어보기. 특히 최소, 최대, 엣지 케이스 🍄 자주 쓰는 파이썬 내장 함수/모듈itertools: permutations, combinations, count heapq: 우선순위 큐 구현할 때 bisect: 이진 탐색할 때collections: deque, Counter math: factorial, sqrt, gcd, pi, sin, cos 등등 sum, min, max 이런 기본 함수들도 은근 많이 씀 🍄 파이썬 팁 mutable / immutable 정리 mutable: list, di..
2025.01.15 -
자연어 처리를 하다보면 인코딩에 대해 아는 것이 생각보다 중요해서 정리 한번 하고 넘어가고 싶어서 오랜만에 글을 써봅니다. 쓴다고 깔짝 정리해논게 많은데 요즘 생각할게 너무 많아서 포스팅에 게을러진 점 반성합니다 (_ _) 문자 인코딩(character Encoding) 먼저 인코딩이라는 것은 '정보의 형태나 형식을 변환하는 처리 또는 처리 방식'을 뜻한다. 인코딩은 문자 뿐 아니라 사진, 영상 등 다른 데이터 포맷에도 사용된다. 그 중 문자 인코딩은 글자를 어떤 코드표로 매핑시켜놓은 것을 말한다. ex) '갸' -> 98398492839 어떤 데이터를 받고 내 컴퓨터에서 열어봤는데 꿿휄쉙ㅇ!? 처럼 문자가 깨져서 온 적이 있을 것이다. 이는 상대방이 보낸 데이터의 인코딩 방식과 내 컴퓨터에서 설정된 인..
[Python] 인코딩 정리자연어 처리를 하다보면 인코딩에 대해 아는 것이 생각보다 중요해서 정리 한번 하고 넘어가고 싶어서 오랜만에 글을 써봅니다. 쓴다고 깔짝 정리해논게 많은데 요즘 생각할게 너무 많아서 포스팅에 게을러진 점 반성합니다 (_ _) 문자 인코딩(character Encoding) 먼저 인코딩이라는 것은 '정보의 형태나 형식을 변환하는 처리 또는 처리 방식'을 뜻한다. 인코딩은 문자 뿐 아니라 사진, 영상 등 다른 데이터 포맷에도 사용된다. 그 중 문자 인코딩은 글자를 어떤 코드표로 매핑시켜놓은 것을 말한다. ex) '갸' -> 98398492839 어떤 데이터를 받고 내 컴퓨터에서 열어봤는데 꿿휄쉙ㅇ!? 처럼 문자가 깨져서 온 적이 있을 것이다. 이는 상대방이 보낸 데이터의 인코딩 방식과 내 컴퓨터에서 설정된 인..
2021.04.29 -
Pythonic 명시적이고, 단순하고, 가독성이 좋은것. Easy to read, Don't Repeat yourself How to make pythonic code 1. 한줄로 굳이 작성해도 되지 않아도 될 것을 한줄로 작성해서 시각적 잡음을 일으키지 말자. from urllib.parse import parse_qs my_values = parse_qs("빨강=5&초록=0&파랑=", keep_blank_values=True) red = my_values.get("빨강", [""])[0] or 0 print(f"빨강: {red!r}") green = my_values.get("초록", [""])[0] or 0 print(f"초록: {green!r}") blue = my_values.get("파랑", ..
[Python] Effective Python 2 - PythonicPythonic 명시적이고, 단순하고, 가독성이 좋은것. Easy to read, Don't Repeat yourself How to make pythonic code 1. 한줄로 굳이 작성해도 되지 않아도 될 것을 한줄로 작성해서 시각적 잡음을 일으키지 말자. from urllib.parse import parse_qs my_values = parse_qs("빨강=5&초록=0&파랑=", keep_blank_values=True) red = my_values.get("빨강", [""])[0] or 0 print(f"빨강: {red!r}") green = my_values.get("초록", [""])[0] or 0 print(f"초록: {green!r}") blue = my_values.get("파랑", ..
2021.03.01 -
● Word2Vec 언어 모델링을 할 때, 언어(텍스트)를 신호 공간에 매핑(숫자로)하는 부분은 필수적입니다. 이러한 전처리를 단어 임베딩(Word Embedding)이라고 하는데 자연어 처리의 가장 기초적인 단계이며 현재까지 여러 방식이 제안되어 왔습니다. 이러한 임베딩 방식에서 가장 기초적인 방법은 '원 핫 인코딩(One-hot Encoding)'인데, ['강아지', '고양이', '동물', '멍멍이', '반려견']이라는 단어집합이 있을 때, 강아지 -> 1, 멍멍이 ->4 이런식으로 단어를 숫자에 그냥 무작정 매핑하는 방식입니다. 이렇게 만들어진 원핫벡터는 단어간 의미도와 유사도 등을 전혀 반영하지 못하게 됩니다. 언어끼리의 유사도나 의미를 반영한 벡터로 언어 모델을 구성하였을 때가 텍스트 분류나 N..
[Gensim] 자연어 처리3 - Gensim의 Word2Vec으로 토픽모델링● Word2Vec 언어 모델링을 할 때, 언어(텍스트)를 신호 공간에 매핑(숫자로)하는 부분은 필수적입니다. 이러한 전처리를 단어 임베딩(Word Embedding)이라고 하는데 자연어 처리의 가장 기초적인 단계이며 현재까지 여러 방식이 제안되어 왔습니다. 이러한 임베딩 방식에서 가장 기초적인 방법은 '원 핫 인코딩(One-hot Encoding)'인데, ['강아지', '고양이', '동물', '멍멍이', '반려견']이라는 단어집합이 있을 때, 강아지 -> 1, 멍멍이 ->4 이런식으로 단어를 숫자에 그냥 무작정 매핑하는 방식입니다. 이렇게 만들어진 원핫벡터는 단어간 의미도와 유사도 등을 전혀 반영하지 못하게 됩니다. 언어끼리의 유사도나 의미를 반영한 벡터로 언어 모델을 구성하였을 때가 텍스트 분류나 N..
2020.02.17 -
lambda(), map(), filter(), reduce() 함수는 함수를 간단하게 만들어주는 함수들로 파이썬에서 프로그래밍할 때 if elif else문을 이용하여 복잡하게 하드코딩할 필요없이 한줄로 함수를 구현하게 해주는 함수들입니다. ● lambda() lambda 인자 : 표현식 함수를 한 줄로 만들어주는 함수입니다. def plus(x, y): return x + y plus(10, 20) 와 같은 함수를 람다함수를 사용하면 함수명을 명시하지 않고 함수를 사용할 수 있습니다. (lambda x,y:x + y)(10, 20) 람다함수는 런타임에서 생성해 사용할 수 있는 익명함수로, 쓰고버리는 일시적인 함수입니다. 이러한 람다함수도 람다함수를 변수에 할당하여 재사용할 수 있습니다. lambdaA..
[Python] lambda, map, filter, reducelambda(), map(), filter(), reduce() 함수는 함수를 간단하게 만들어주는 함수들로 파이썬에서 프로그래밍할 때 if elif else문을 이용하여 복잡하게 하드코딩할 필요없이 한줄로 함수를 구현하게 해주는 함수들입니다. ● lambda() lambda 인자 : 표현식 함수를 한 줄로 만들어주는 함수입니다. def plus(x, y): return x + y plus(10, 20) 와 같은 함수를 람다함수를 사용하면 함수명을 명시하지 않고 함수를 사용할 수 있습니다. (lambda x,y:x + y)(10, 20) 람다함수는 런타임에서 생성해 사용할 수 있는 익명함수로, 쓰고버리는 일시적인 함수입니다. 이러한 람다함수도 람다함수를 변수에 할당하여 재사용할 수 있습니다. lambdaA..
2020.02.05 -
NLTK는 Natural Language ToolKit의 약자로 자연어 처리 및 분석, 텍스트마이닝을 위한 파이썬 패키지 입니다. NLTK는 토큰생성, 형태소 분석, 품사태깅 등의 다양한 기능을 제공하고 예제로 활용할 수 있는 말뭉치도 제공하고 있습니다. ● NLTK 설치 저는 아나콘다 환경에서 파이썬을 사용하고 있으므로 이미 루트 가상환경에 NLTK가 설치가 되어있었습니다. KoNLPy와 다르게 별도의 설정등을 해줄 필요가 없습니다.아나콘다 내에서 가상환경을 따로 만들어 설치를 해줄시엔 해당 가상환경 activate 후에 > conda install nltk] > conda update nltk 위 명령어를 입력하여 설치해주면 됩니다. 하지만 예제를 수행하면 여러 에러 메세지들을 볼 수 있습니다. 예를..
[NLTK] 자연어 처리2 - NLTK로 데이터 탐색NLTK는 Natural Language ToolKit의 약자로 자연어 처리 및 분석, 텍스트마이닝을 위한 파이썬 패키지 입니다. NLTK는 토큰생성, 형태소 분석, 품사태깅 등의 다양한 기능을 제공하고 예제로 활용할 수 있는 말뭉치도 제공하고 있습니다. ● NLTK 설치 저는 아나콘다 환경에서 파이썬을 사용하고 있으므로 이미 루트 가상환경에 NLTK가 설치가 되어있었습니다. KoNLPy와 다르게 별도의 설정등을 해줄 필요가 없습니다.아나콘다 내에서 가상환경을 따로 만들어 설치를 해줄시엔 해당 가상환경 activate 후에 > conda install nltk] > conda update nltk 위 명령어를 입력하여 설치해주면 됩니다. 하지만 예제를 수행하면 여러 에러 메세지들을 볼 수 있습니다. 예를..
2020.01.31 -
● 케라스란? 케라스(Keras)는 파이썬으로 작성된 오픈 소스 신경망 라이브러리 입니다. 텐서플로우, MXNet, Deeplearning4j 등을 백엔드로 사용하여 인공지능 코딩을 할 수 있게 해줍니다. 딥 신경망을 빠르고 쉽게 코딩을 가능할 수 있게 해주고 최소한의 모듈 방식으로 확장 가능성에 초점을 둔 라이브러리 입니다. 사용하기 쉬운 고차원 딥러닝을 케라스 API를 통해 코딩을 할 수 있는데요, 유저 친화적인 API를 제공하여 쉽게 딥러닝 모델을 만들어 낼 수 있어서 인공지능 코딩에 현재 가장 많이 사용되고 있는 라이브러리 입니다. ● 케라스의 구조 텐서플로우, CNTK, Theano, MXNet등을 백엔드로 하여 각 라이브러리를 쉽게 사용할 수 있게 하면서 안정화도 시켜주는 역할을 케라스가 합니..
[Keras] 케라스란?● 케라스란? 케라스(Keras)는 파이썬으로 작성된 오픈 소스 신경망 라이브러리 입니다. 텐서플로우, MXNet, Deeplearning4j 등을 백엔드로 사용하여 인공지능 코딩을 할 수 있게 해줍니다. 딥 신경망을 빠르고 쉽게 코딩을 가능할 수 있게 해주고 최소한의 모듈 방식으로 확장 가능성에 초점을 둔 라이브러리 입니다. 사용하기 쉬운 고차원 딥러닝을 케라스 API를 통해 코딩을 할 수 있는데요, 유저 친화적인 API를 제공하여 쉽게 딥러닝 모델을 만들어 낼 수 있어서 인공지능 코딩에 현재 가장 많이 사용되고 있는 라이브러리 입니다. ● 케라스의 구조 텐서플로우, CNTK, Theano, MXNet등을 백엔드로 하여 각 라이브러리를 쉽게 사용할 수 있게 하면서 안정화도 시켜주는 역할을 케라스가 합니..
2019.12.03