[NLP] 1. 텍스트 마이닝 기초
·
Data/AI
텍스트마이닝 패러다임의 변화BERT지금은 텍스트 분류 등의 작업에 딥러닝 기반의 BERT를 쓰는 것이 일반화됐다.BERT는 트랜스포머에 기반한 모형으로, 자세한 작동원리를 이해하기 매우 어려운 편인데도 최근 대부분의 작업에 사용된다.책 한권 정도의 분량에 대해서 문서를 분류해야할 때는 카운터 기반의 문서 표현이 BERT같은 최신모형 보다 낫다는 연구결과가 있다.카운터 기반의 문서 표현문서를 사용된 단어의 빈도로 표현하는 것이 과정에서 단어들이 텍스트에 나타난 순서에 대한 정보는 사라진다. 즉, 사람이 문서를 이해할 때 가장 중요하게 생각하는 문맥에 대한 정보는 사라지고, 대신 단어에 대한 통계만이 남게 된다. 그러나 텍스트 마이닝의 원래 목적, 텍스트 내용을 기반으로 어떤 사건을 예측하는 것은 이 정보의..
[Spring] 어노테이션 정리
·
Backend/Spring Boot
1. @Transactional메소드나 클래스 단위로 트랜잭션을 적용하는 어노테이션해당 메소드가 정상적으로 완료되면 커밋되고,예외(Exception)가 발생하면 자동으로 롤백(Rollback)주로 DB를 다루는 서비스 계층에 붙여 사용기본적으로 RuntimeException 또는 Error가 발생할 때만 롤백(SQLException 같은 체크 예외는 별도로 설정해야 롤백)테스트 케이스에 이 어노테이션이 있으면 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.import org.springframework.transaction.annotation.Transactional;import org.springfr..
[Spring] 6. 스프링 DB 접근기술 - 순수 JDBC
·
Backend/Spring 입문
애플리케이션에서 DB에 연동하여 메모리가 아닌 DB에 쿼리를 날리는 것(JDBC) → 20년 전 방식package hello.hello_spring;import hello.hello_spring.repository.JdbcMemberRepository;import hello.hello_spring.repository.MemberRepository;import hello.hello_spring.repository.MemoryMemberRepository;import hello.hello_spring.service.MemberService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.contex..
[Spring] 6. 스프링 DB 접근 기술 - H2 데이터베이스 설치
·
카테고리 없음
H2 데이터베이스 설치H2 데이터베이스: 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공맥 유저의 경우 h2.sh에 권한을 부여 후, 실행chmod 755 h2.sh./h2.shdesktop에 설치된게 아니라 나는 /Users/사용자명 에 설치되어 있었다.이후에 충돌오류를 피하기 위해 파일로 접근하던 JDBC URL을 변경해준다.jdbc:h2:tcp://localhost/~/test테이블 생성하기drop table if exists member CASCADE;create table member( id bigint generated by default as identity, name varchar(255), primary key (id));H2 데이터베이스에 접근해서 Member..
[Spring] 5. 회원관리 예제(웹 MVC 개발)
·
Backend/Spring 입문
회원 웹 기능 - 홈 화면 추가홈 컨트롤러 추가@Controllerpublic class HomeController { // localhost 8080으로 들어오면 home()이 호출된다. @GetMapping("/") public String home(){ return "home"; }}회원관리용 홈 Hello Spring 회원 기능 회원 가입 회원 목록 실행하고 localhost:8080에 들어가면 이전에 만들어둔 index.html이 아닌 home.html이 뜬다. 왜일까?index.html 은 컨트롤러 매핑이 아예 없을 때 자동으로 뜨는 화면Spring Boot는 reso..
[Spring] 4. 스프링 빈과 의존관계
·
Backend/Spring 입문
컴포넌트 스캔과 자동 의존관계 설정회원 컨트롤러에 의존관계 추가package hello.hello_spring.controller;import hello.hello_spring.service.MemberService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;@Controllerpublic class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { ..
[Bigdata] 5. 맷플롯립 알아보기
·
Data/Bigdata
5.1 데이터 시각화컴퓨터 화면에 시각적 이미지 이용하여 데이터를 효과적으로 보여주는 방법데이터 시각화의 필요성복잡한 데이터에 대한 이해를 돕는다의사결정을 지원한다효과적인 커뮤니케이션 수단이 된다데이터 수집과 전처리 못지 않게 시각화를 통해서 그 의미를 잘 전달하는 것 역시 데이터 과학자가 해야할 중요한 일들 중 하나5.2 matplotlib의 다양한 기능 맛보기맷플롯립 코드 살펴보기import matplotlib.pyplot as pltyears = [2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022]ranks = [5,3,2,3,4,6,7,4]# 그래프 그리기 plt.plot(x축데이터, y축데이터, 선의 색상, 마커 정보)plt.plot(years, ranks, c..
[Bigdata] 4. 넘파이의 세계로
·
Data/Bigdata
4.1 다차원 배열의 최대값, 최소값, 평균값 구하기와 정렬최대값, 최소값, 평균값a = np.array([10, 20, 30])a.max(), a.min(), a.mean()np.max(a), np.min(a), np.mean(a)원소들의 자료형을 변환하려고 한다면 astype() 함수를 이용a.astype(np.float64)정렬c = np.array([35,24,55,69,19,99])c.sort() # 오름차순# [19, 24, 35, 55, 69, 99]d = c[::-1] # 내림차순# [99, 69, 55, 35, 24, 19]c_flip = np.flip(c) # 내림차순# [99, 69, 55, 35, 24, 19]sort(): 오름차순배열[::-1]: 내림차순np.flip(배열): 내림..
[Bigdata] 슬라이싱 정리
·
Data/Bigdata
파이썬 / 넘파이 슬라이싱 완전 정리1. 슬라이싱 기본 구조[시작:끝:간격]시작: 어디서부터 가져올지 (포함)끝: 어디까지 가져올지 (끝 인덱스는 포함하지 않음)간격: 몇 칸씩 건너뛸지 (생략하면 1칸씩)2. 1차원 배열(리스트) 슬라이싱 예시arr = [0, 1, 2, 3, 4, 5] arr[1:4][1, 2, 3]1번 인덱스부터 3번까지 가져오기arr[:3][0, 1, 2]처음부터 2번까지 가져오기arr[2:][2, 3, 4, 5]2번부터 끝까지 가져오기arr[::2][0, 2, 4]2칸씩 건너뛰며 가져오기arr[::-1][5, 4, 3, 2, 1, 0]역순으로 가져오기 3. 2차원 배열(넘파이 배열) 슬라이싱 예시import numpy as nparr = np.array([[ 1, 2, 3, ..
[Bigdata] 3. 넘파이 시작하기
·
Data/Bigdata
3.1 데이터 분석에서 중요한 넘파이빅데이터의 분석의 대상이 되는 데이터는 한 두개 정도의 간단한 수치 데이터가 아니라 많은 양의 연속적인 데이터가 많다. 이러한 연속적인 데이터를 다룰 수 있는 파이썬의 대표적인 자료구조는 리스트(list)다만, 대규모 수치 데이터를 다루는 과학 분야에서 파이썬의 리스트는 성능 측면에서 만족스럽지 못한 경우가 많다. 이 때문에 과학기술 분야에서 수치를 다룰 때는 파이썬의 리스트 보다는 넘파이(numpy)에서 제공하는 다차원 배열을 선호넘파이의 주요 특징들고성능 다차원 배열 객체를 제공빠른 배열 연산백터화와 브로드캐스팅 기능다양하고 강력한 수학 함수C, C++ 포트란 코드와의 통합기계학습 라이브러리의 기반C/C++, 자바와 같은 많은 프로그래밍 언어에서의 배열은 동일한 자..