전체 글 37

Elastic Search 기본 개념 및 차이점

검색엔진 ES는 기본적으로검색엔진이다. 기본 DB와 가장 다른점은 쿼리이후 결과값이(document = row)마다 쿼리의 조건문과 얼마나 적합한지를 나타내는 score를 얻을 수 있다. 즉 단순히 조건절에 의해 True(1)/False(0)에 해당하는 결과값만 취하는게 아니라 각 결과값마다 유사한 정도(relevance score, 0.9 / 0.2)를 뽑아낼 수 있다. 참고 : 검색엔진은 주로 텍스트를 많이 담고 있어서 “검색어“가 document와 비슷한지 보여주는 것은 매우 중요한 ㅣㄹ이다. (참고) 분산 저장 및 처리 방식 score vs. filter query를 날리다 보면 score를 항상 필요로 하지 않는 경우도 존재한다. score는 필요하지 않고 filter만 필요한 경우 :고객의 성..

IT/Elasticsearch 2021.04.19

RNN 계열 신경망 모델

1. Vanilla NN 2. RNN 1) NN vs. RNN NN은 INPUT을 sequential 하게 받을 수 없어서 보통 bag-of-words 으로 대신 표현함 (순서고려X) RNN은 하나의 cell(or neuron) 을 재사용해서 sequential 한 데이터를 INPUT으로 받음 2) RNN vector (1) static RNN vs. dynamic RNN dynamic RNN (deprecated) : 문장의 길이(seq_len)만큼 recurrent가 일어남 별도로 각 문장마다 길이가 얼마인지를 명시해줘야함 static RNN : 문장의 길이(seq_len)가 고정 되있음 보통 별도의 padding이나 truncating이 필요 dynamic이 더 합리적으로 보이는데 오히려 복잡도 등..

ubuntu에서 python cx_oracle로 oracle 접근

글을 쓰게 된 이유 conda 로 설치하면 conda를 찾지 못하는 오류가 빈번하게 발생하여 수동 설치하게 됨 가상환경 관리가 특별히 필요없는 base 등에 설치할 때 이 방법을 추천 docker 이미지로 올릴 때는 conda를 이용하는 것을 추천 오라클 인스턴트 클라이언트 다운로드 https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html 위의 링크에서 instantclient-basic-linux.x64-11.2.0.4.0.zip, instantclient-sqlplus-linux.x64-11.2.0.4.0.zip 두 zip 파일을 다운로드 오라클 인스턴트 클라이언트 설치하기 (remote server일..

IT/linux 2019.10.16

텍스트 전처리 과정과 사전의 쓰임

텍스트 텍스트는 대표적인 비정형 데이터이고, 텍스트 그 자체로는 분석을 할 수 없기 때문에 일정부분 정형화된 feature의 형태로 나타내야한다. 형태소 분석 분석에서 feature 하나하나는 의미를 가지고 있어야하기 떄문에 한국어에서 의미를 가지는 최소 단위인 형태소 단위로 텍스트를 잘게 쪼개줘야 한다. 도메인마다 서로 다른 단어들이 존재하고 신조어가 등장하면 잘못된 형태로 쪼개기 때문에 형태소 분석기가 올바르게 분석을 할 수 있도록 사용자 사전이필요하다. (미등록 단어 문제) 잘못된 예: 팩트를 → 팩, 트, 를 / 헤어에센스가 → 헤어에, 센스, 가 사용자 사전의 역할 : 텍스트 내 있는 키워드(혹은 어절)를 어떻게 파싱할것 같인가?에 대해 가이드를 준다. 불필요 pos 제거 형태소 분석을 하면 형..

Data Science/NLP 2019.04.05

nori pos tag summary

1. nori 품사 태그 정리 descrition 설명 예시 표시 E Verbal endings 동사 어미 드리겠습니다 → 드리/겠/습니다 IC Interjection 감탄사 어머나, 헐 J Ending Particle 조사 배송으로 불편을 → 배송/으로/불편/을 MAG General Adverb 일반부사 복 많이 받으세요 → 복/많이/받/으/세요 MAJ Conjunctive adverb 접속부사 모바일 또는 유선으로 → 모바일/또는/유선/으로 MM Modifier 수식어/한정어 총 3개, 7일 내 NA Unknown NNB Dependent noun 의존명사 입구쪽, 받을수, 곰보난것처럼 NNBC Dependent noun 의존명사 12일, 15시 NNG General Noun 일반명사 배송기사님 → ..

IT/Elasticsearch 2019.02.09

Elastic Search analyse process (analyser + tokeniser + tokenfilter)

Elastic Search analyse process 1. analysis(분석) : 색인 할 때 입력된 데이터가 검색어를 추출하기 위해 거치는 프로세스분석과정 : tokenizer → token filter https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html 2. analyser(분석기) : 분석 과정에서 사용하는 프로그램하나의 tokenizer, n개의 token filter로 구성custom analyser : 사용자가 상황에 맞게 tokenizer와 token_filter를 조합하여 analyser를 구성e.g. standard analyser, simple analyser, whitespace analyse..

IT/Elasticsearch 2019.02.09

TensorFlow Seq2seq Library (contrib)

[TensorFlow Seq2seq Library (contrib)] (tf v1.12기준) https://www.tensorflow.org/api_guides/python/contrib.seq2seq tensorflow Seq2seq Library는 seq2seq모델과 dynamic decoding을 위한 모듈로써 tf.contrib.rnn 기반으로 만들어졌다. tensorflow seq2seq library 내 2가지 주요한 컴포넌트 1) attention wrapper (for tf.contrib.rnn.RNNCell) 2) 객체지향 dynamic decoding framework 1. Attention attention wrapper는 다른 RNNCell을 감싸고 attention을 구현하는 RN..

Neural Machine Translation (seq2seq) Tutorial

Neural Machine Translation (seq2seq) Tutorial 1. Background on Neural Machine Translation 과거에 전통적인 phrase-based translation system들은 source 문장들을 여러개의 chunks로 쪼개고 그 다음 phrase-by-phrase로 해석했다. 이방법은 번역결과에 있어서 disfluency를 초래했는데 사람이 해석하는 것처럼 정확하게 작동하지 않았다. NMT는 기존의 방식에서 벗어나 사람이 전체 문장을 읽고 그 의미를 이해한 다음에 번역 결과를 생성하는 것처럼 번역을 한다. [Enc-dec 구조] : encoder는 source 문장을 meaning vector로 변환하고 번역을 위해 decoder에 보낸다...

resampling으로 imbalanced data(불균형 데이터 문제) 해결하기

Resampling으로 imbalanced data(불균형 데이터 문제) 해결하기 imbalanced data : 데이터 내 각각의 class들이 차지하는 데이터의 비율이 균일하지 않고 한쪽으로 치우친 데이터 major class : dataset 내에서 상대적으로 다수를 차지하는 class minor class : dataset 내에서 상대적으로 다수를 차지하는 class imbalanced data와 같은 문제에 처했을 때 보통 classification algorithm의 성능을 향상시키거나, 학습 전에 resampling을 통해 training set내의 클래스를 균형을 맞춘다. 보편적으로 이 중에서 후자가 선호된다. Resampling 방법은 dataset 내에서 minor class의 비중을 ..

Bag-Of-Words Model

[Bag-Of-Words] 1. The problem with Text 머신러닝 모델은 대체로 고정된 길이의 inputs과 ouputs을 요구한다.이러한 문제 때문에 대표적인 비정형 데이터인 text는 ML에서 작동하기 힘들다. 그래서 text는 숫자(vectors of numbers)로 변환되는 과정을 거치게 되는데,text가 vector로 표현된 형태를 vector representation 이라고 한다. e.g.) bag-of-words (occurence / count / frequency / tf_idf / bm25 ) / word2vec / doc2vec REF : NLP의 기본가정- vector space model 2. What is a Bag-of-words? 1) hypothesisba..

Data Science/NLP 2018.11.25