목록AI/파이썬(Python) (35)
기록하는삶

파일을 열 때 encoding='UTF-8', json.dumps 로 파일을 불러올 때 ensure_ascii = False를 지정함으로써 한글 깨짐을 해결할 수 있다. import json import os for x in os.listdir("D:\sample"): with open("D:\sample" + "/" + x, 'r', encoding='UTF-8') as f: json_data = json.load(f) print(x) print(1, json.dumps(json_data["transcription"]["Reading"], ensure_ascii = False) )

SpeechRecognition은 한국어를 포함해 영어, 프랑스어, 중국어 등 다양한 언어의 음성 인식 관련 라이브러리로, 내부적으로 구글, 마이크로소프트, ibm등 빅테크 기업들의 우수한 알고리즘이 사용된 api를 이를 통해 쉽게 사용할 수 있다. # 필요 library 설치 !pip install SpeechRecognition !pip install librosa 위와 같이 설치하고 난 뒤, 사용 예시는 아래와 같다. import speech_recognition as sr r = sr.Recognizer() # recognize_google() : Google Web Speech API # recognize_google_cloud() : Google Cloud Speech API # recogni..

numpy array는 transpose라는 함수를 제공하지만, list의 경우 내장된 전치함수가 없다. 이를 zip 함수를 이용해 간단히 구현할 수 있다. 다음과 같은 이중리스트가 있다면, 이는 3*3 행렬과 같은 형태이다. 원래 zip 함수는 iterable한 객체의 원소들을 짝지어주는 함수이다. 그런데 인자로 *(iterable)을 전달하면, 헤당 iterable한 객체가 내부적으로 가지고 있는 원소가 또 다시 iterable한 경우에 한해, 각 원소들의 인자들을 순서대로 짝지어준다. 즉, 위의 예시에서는 3개의 원소의 1번인자, 2번인자, 3번인자를 순서대로 짝지어 각각 (1,4,7), (2,5,8), (3,6,9)를 반환했다. 내부 원소들이 iterable이 아닌 경우는 다음과 같이 에러를 반환..

> 자료구조 힙(Heap)의 개념 https://mingchin.tistory.com/113 [자료구조/알고리즘] 이진 트리, 완전 이진 트리, 힙(Heap) 1. 이진트리 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료구조로, 자식 노드를 각각 왼쪽 자식 노드와 오른쪽 자식 노드라고 한다. 이때 전체 자료의 수가 크기, 최상단 노드로부 mingchin.tistory.com 파이썬에서는 내장모듈인 heapq에서 구현된 것을 활용할 수 있다. 최댓값과 최솟값에 빠르게 접근하거나, 가장 작은 n개의 숫자 혹은 가장 큰 n개의 숫자 등을 구할 때 사용한다. 파이썬에서 제공하는 heapq는 기본적으로 최소 힙의 자료구조이다. > heapq 모듈의 함수 import heapq as hq # 일반 리스트..

1) 리스트 정의하기( 변수명 = [항목1, 항목2, 항목3, ...] ) 데이터를 묶어서 처리하는 방법 중 하나인 리스트(list). 데이터 타입 기호로는 []를 사용하고, 항목은 ,로 구분한다. [] 안에 아무것도 입력하지 않으면 빈 리스트를 만들 수 있고, 나중에 항목을 추가할 수도 있다. 항목으로는 정수(integer), 실수(float), 문자형(string), 튜플(tuple), 집합(set), 리스트(list) 등의 데이터 타입이 들어갈 수 있으며 각 항목들은 서로 데이터 타입이 같지 않아도 된다. 2) 인덱스( 리스트명[인덱스] ) 리스트가 정의될 때 항목이 나열된 순서에 따라 인덱스(index)가 부여된다. 이때 첫 번째 항목의 인덱스가 1이 아니라 0임에 유의하자. (이상하게 느껴질..

모듈(Module)이란? > 코드가 저장된 파일 > 파일을 가지고 있거나, 파일이 포함된 패키지(여러 모듈을 폴더 형식으로 모아놓은 것을 패키지라 부른다)를 가지고 있는 경우, 다른 코드에서도 해당 파일에 포함된 변수, 함수, 클래스 등을 불러와 사용할 수 있다. > 모듈 이름은 확장자(.py)를 제외한 파일 이름으로 불러온다. > 장점 ① 코드 작성 및 관리가 용이함 ② 코드의 재사용이 가능하고 편리함 ③ 공동 작업이 편함 모듈(Module) 만들고 활용해보기 아주 허접하지만 간단한, 함수 네 개를 만들어보았다. 첫 함수는 모듈을 소개하는 말을 출력하고, version이라는 변수를 생성 날짜로 지정했다. 이어지는 세 함수는 각각 자연수와 자연수의 제곱, 세제곱의 합을 구하는 함수다. 해당 파일을 '..
머신러닝을 위한 데이터 정제 과정에서 여러 데이터 분할 방법이 존재하는데, 그 중 두 가지를 정리해보자. 1) 예비법(Hold-out) > 전체 데이터를 겹치지 않는 두 데이터 집합, 훈련용(training set)과 시험용(testing set)으로 나누는 방법 > 비복원추출 > sklearn.model_selection의 train_test_split 모듈 이용 > parameters parameters default 의미 / 조건 *arrays list, nparray, scipy-saprse, pd.DataFrame 가능 test_size None(0.25) 시험용 set의 비율 or 크기 실수(float): 0 ~ 1 (전체 중 시험용 set이 차지하는 비율) 정수(int): 시험용 set의..

지난 글에서 비복원추출을 통해 데이터를 훈련용과 시험용으로 나누는 예비법(Hold-out)과 예비법을 여러 번 시행, 최적의 모델을 찾는 교차검증(cross validation)에 대해 살펴봤다. 복원추출을 사용할 경우, 형성되는 모델이 중복되는 훈련데이터(혹은 시험데이터)를 사용하게 될 가능성이 존재하긴 하지만 이를 감수하는 기법도 존재한다. 붓스트랩(Bootstrap) > 훈련용 데이터를 복원추출하는 방법. > 한정된 데이터 내에서 반복해서 다른 모델을 생성하고 이들 간의 voting을 통해 하나의 model을 형성하거나(Bagging, VotingClassifier), 이전에 생성한 모델이 만들어내는 오차를 이후 생성되는 모델에 반영, 더 좋은 모델을 만들어내는 기법(Boosting) 등에 사용..

1) 폰트 설정, 축 이름 한글화 가능하게, 스타일(darkgrid) 설정 import seaborn as sns import matplotlib.pyplot as plt plt.rc("font", family = "Malgun Gothic") sns.set(font="Malgun Gothic", rc={"axes.unicode_minus":False}, style='white') 2) 그래프 사이즈 설정 숫자를 바꿔가며 크기 조정 가능 # 그래프 사이즈 설정 plt.figure(figsize=(10, 7)) #또는 fig.set_size_inches(16,8) 3) x축, y축 설정 그래프에 대해 직접 설정하거나, plt.show()를 통해 그래프를 그리기 전에 축 정보를 설정할 수 있다. 이때 rot..

탐색적 데이터 분석(EDA _ Exploratory Data Analysis) > 데이터의 종류, 양, 범위, 결측치 여부, 중복값 여부 등을 살피고 나아가 그 특징과 의미 등을 살피는 행위 > 각종 통계기법을 활용하거나, 그래프를 그려보기도 한다. 데이터마다 EDA와 그에 따른 전처리 방법은 천차만별이지만, 보통 필수적으로 진행해야하는 EDA도 있다. 1) 상위, 하위값 확인(head, tail) 어떤 column들이 있고, 어떤 값들이 들어가 있는지 대강 파악한다. df_train = pd.read_csv("train.csv") df_train.head(3) df_train.tail(3) 2) DataFrame.info(), DataFrame.describe() df.info()는 각 컬럼명과..