파이썬
-
자연어 처리를 하다보면 인코딩에 대해 아는 것이 생각보다 중요해서 정리 한번 하고 넘어가고 싶어서 오랜만에 글을 써봅니다. 쓴다고 깔짝 정리해논게 많은데 요즘 생각할게 너무 많아서 포스팅에 게을러진 점 반성합니다 (_ _) 문자 인코딩(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 -
▒ 코딩테스트 공부 방법 1. codeup 기초 100제로 기초를 다지고 사용할 언어에 익숙해지도록 한다. 2. 백준온라인 저지 단계별, 유형별 문제를 푼다. 배열, 문자열, 정렬, 브루트포스(완전탐색), 재귀, 백트래킹, 동적계획법, bfs/dfs 등의 유형에 익숙해진다. -완전탐색(재귀나 백트래킹으로)->시뮬레이션->그래프(위상정렬, 다익스트라..)->최소신장유니온트리(유니온파인드 등)->심화문제(스택으로 라인스위핑 같은)->DP, dp는 코딩테스트에 나오면 완죠니 어렵게 나온다고 한다. 3. 프로그래머스 코딩테스트 고득점 kit를 푼다. 유형별 4~7문제를 풀며 자주 나오는 유형을 익힌다. 4. 프로그래머스 스킬체크 주어진 시간내에 2문제를 풀고, 나의 실력을 파악한다. 레벨3정도면 웬만한 코딩테스..
[알고리즘] 순열, 조합, 그래프 표현 _ 파이썬▒ 코딩테스트 공부 방법 1. codeup 기초 100제로 기초를 다지고 사용할 언어에 익숙해지도록 한다. 2. 백준온라인 저지 단계별, 유형별 문제를 푼다. 배열, 문자열, 정렬, 브루트포스(완전탐색), 재귀, 백트래킹, 동적계획법, bfs/dfs 등의 유형에 익숙해진다. -완전탐색(재귀나 백트래킹으로)->시뮬레이션->그래프(위상정렬, 다익스트라..)->최소신장유니온트리(유니온파인드 등)->심화문제(스택으로 라인스위핑 같은)->DP, dp는 코딩테스트에 나오면 완죠니 어렵게 나온다고 한다. 3. 프로그래머스 코딩테스트 고득점 kit를 푼다. 유형별 4~7문제를 풀며 자주 나오는 유형을 익힌다. 4. 프로그래머스 스킬체크 주어진 시간내에 2문제를 풀고, 나의 실력을 파악한다. 레벨3정도면 웬만한 코딩테스..
2020.09.03 -
● 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