본문 바로가기

전체 글

(120)
[Elastic search] 데이터 검색 엘라스틱 서치는 인덱스에 저장된 문서를 검색할 수 있도록 다양한 검색 기능을 제공한다. 문서는 색인시 설정한 분석기에 의해 분석 과정을 거쳐 토큰으로 분리되는데, 이러한 분석기는 색인 시점에 사용할 수 있지만 검색 시점에 사용하는 것도 가능하다. (분석기에 대한 내용 아래 링크 참고) [Elastic Search] 데이터 모델링 엘라스틱서치에서는 색인할 때 문서의 데이터 유형에 따라 필드에 적절한 데이터 타입을 지정해야한다. 이러한 과정을 매핑이라하며, 매핑은 색인된 문서의 데이터 모델링이라고도 할 수 있다. gyu-ree.tistory.com 특정 문장이 검색어로 요청되면 분석기를 통해 분석된 토큰의 일치 여부를 판단해서 그 결과에 점수를 매긴다. 그리고 이를 기반으로 순서를 적용해 결과를 사용자에게 ..
[Crawling] 파이썬으로 무신사 브랜드 데이터 수집하기 크롤링이란 웹 페이지를 그대로 가져온 후 데이터를 추출해내는 행위이다. 크롤링을 하는 소프트웨어는 크롤러라고 부른다. 1. 크롤링의 원리 웹 페이지는 HTML 문서로 작성되어있다. 그리고 이 문서는 css파일, 그리고 java Script 파일을 참조할 수 있다. 그리고 이는 개발자 도구를 통하여 쉽게 확인이 가능하다. (개발자 도구는 아래 사진처럼 열거나 윈도우나 맥에서 F12를 클릭하면 열 수 있다! 개발자들이 홈페이지를 수정하고 발생한 문제의 원인을 쉽게 파악하기 위해 브라우저에서 제공한다.) 위 사진처럼 크롬창에서 개발자 도구를 켜면 현재 페이지가 어떤 구성요소를 가지는지가 보여진다. 아래 그림처럼 Element를 클릭하여 페이지에서 어떤 요소가 어떤 태그 부분인지 확인 후, 이 태그를 지정해서 ..
[Crawling] 파이썬으로 멜론 차트 데이터 수집하기 이번에는 크롤링을 이용하여 멜론 차트에 있는 가수들의 데이터를 수집해보려고한다. ( 기본 설명은 아래 링크 참고 ! ) [Crawling] 파이썬으로 무신사 브랜드 데이터 수집하기 크롤링이란 웹 페이지를 그대로 가져온 후 데이터를 추출해내는 행위이다. 크롤링을 하는 소프트웨어는 크롤러라고 부른다. 1. 크롤링의 원리 웹 페이지는 HTML 문서로 작성되어있다. 그리고 이 gyu-ree.tistory.com 이전에 사용한 라이브러리로는 멜론 차트를 크롤링 하기 어렵다. 멜론의 경우 다른 페이지로 접속해도 url이 변하지 않아 규칙성을 파악할 수 없어서 request 모듈만으로 원하는 데이터를 가져오기 어럽다. 직접 마우스로 클릭하여 접속해야하는데, 크롤링을 위해서는 이를 자동화해주는 기능이 필요하다. 이를 ..
[Computer vision] YOLO (You only look once) 모델 1. YOLO란? YOLO란 you only look once의 약자로, object detection 분야에서 많이 알려진 모델이다. 2015년에 Joseph Redmon(조셉 레드몬)이 워싱턴 대학에서 2015년도에 yolo v1 버전을 발표했으며 그 당시에 object detection은 대부분 Faster R-CNN이 가장 좋은 성능을 내고있었다. 그가 공개한 YOLO에서 가장 주목을 받았던 점은 객체 감지를 실시간으로 한다는 것이다. yolo는 처음으로 one-stage-detection 방법을 고안하여 실시간으로 객체 감지를 가능하게 한 모델이다. 기존 Object Detection은 Classification 문제를 2단계로 나눠서 검출하여 정확도는 높지만 여러번 호출함으로써 속도가 느려지는..
[Elastic Search] ELK 로컬환경에 설치하기, 버전 변경하기 (MAC) 검색 시스템을 구축하기 위해 먼저 ELK Stack 환경을 구성하려고한다. (ELK는 Elastic Search와 Logstash, Kibana를 앞글자만 딴 단어이다.) 스럽 ELK Stack 구성 Java 11 Elastic Search 7.0 Logstash 7.0 Kibana 7.0 Elasticsearch는 검색 및 분석을 위한 오픈 소스 분산 검색 엔진이고, Kibana는 Elasticsearch로부터 수집된 데이터를 시각화하고 분석하는 데 사용되는 오픈 소스 도구이다. Elasticsearch와 Kibana와 함께 사용하면 데이터 수집, 분석 및 시각화를 효과적으로 수행할 수 있다. Logstash는 데이터 처리 파이프라인을 구축하기 위해 사용되며, 수집기능을 해준다. 이러한 도구들을 함께 ..
[Elastic Search] 기본 개념잡기 Elastic search란? Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진이다. Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있게 되었으며, 방대한 양의 데이터를 신속하게, 거의 실시간( NRT, Near Real Time )으로 저장, 검색, 분석할 수 있다. 스럽에서는 주로 검색을 위해 활용하고 있다. 본격적인 Elastic Search를 스터디하기 전에 검색 시스템에 대해 알아보자. 1. 검색 시스템이란 무엇인가? 검색 시스템이란? 검색 시스템은 사용자가 원하는 정보를 빠 르게 검색할 수 있는 기능을 제공하는 소프트웨어 시스템이다. 네이버와 구글에서 사용자들이 가장 많이 쓰는 서비스는 사용자가 원하는 검색어에 대한 결과를 제공하는 검색..
[Algorithm] 완전 탐색 1. 완전 탐색 알고리즘이란? 가능한 모든 경우의 수를 다 체크해서 정답을 찾는 방법이다. Brute Force라고도 부르며, 직관적이어서 이해하기 쉽고 문제의 정확한 값을 얻어낼 수 있는 확실하고, 기초적인 방법이다. 완전 탐색을 이용할 때는 두가지를 고려해야한다. 1. 사용된 알고리즘이 적절한가? 2. 효율적으로 동작하는가? 1번은 만족하나 2번의 경우 제한이 따르는 경우가 많으니, 완전 탐색을 이용할 경우에는 문제에 대한 파악이 중요하다. 2. 완전 탐색 기법의 활용 완전 탐색 기법을 이용하기 위해서는 여러 알고리즘 기법이 이용된다. (완전 탐색 자체를 알고리즘으로 볼 수는 없다.) - 단순 Brute-Force 단순하게 for문과 if문 등으로 모든 case들을 만들어서 답을 구하는 방법이다. (..
[Algorithm] 다이나믹 프로그래밍 1. 다이나믹 프로그래밍이란? 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있는 방법이다. 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. 구현은 일반적으로 탑다운, 보텀업 이 두가지 방식으로 구성된다. 주의) 자료구조에서 dynamic allocation(동적 할당)과 무관한 의미로 사용됨. 어떤 경우 필요할까? 가장 대표적인 예시로 피보나치 수열이 있다. 피보나치 수열의 점화식은 아래와 같다. n번째 피보나치 수는 (n-1)번째 피보나치 수 + (n-2)번째 피보나치 수이며, 1번째와 2번째 피보나치수는 1임을 뜻한다. n번째 피보나치 수를 f(n)이라고 할 때 4번째 피보나치 수 f(4)를 구하는 과정은 다음과 같다. 코드 구현) d..