전체 글 37

Text Preprocessing (텍스트 전처리)

[Text Preprocessing] Tokenising / stemming / lemmatising / pos tagging / stop words분석의 정확성을 높이고, 단어 수를 줄여 계산 복잡성을 감소시키기 위해 사용 1. Tokenising : tokenising : text의 본문을 토큰(token/word) 단위로 쪼개는 것 Tokenising 전 :['Hello Mr. Smith, how are you doing today?', 'The weather is great, and Python is awesome.', 'The sky is pinkish-blue.', "You shouldn't eat cardboard."] Tokenising 후 : ['Hello', 'Mr.', 'Smith',..

Data Science/NLP 2018.11.25

NLP 기본 가정

[NLP 기본가정] 통계의 기반에는 중심극한정리, 정규분포 등 여러 가설을 참이라고 놓듯이, NLP에도 이와 같은 기본가정이 몇 가지 존재한다. 1. vector space models : 모델이 텍스트를 이해하기 위해선 벡터(숫자)로 표현해야하는데 그것을 위한 기본 가정이다. (일부 모델은 단어를 숫자로 안바꾸고 그대로 사용하기도 한다.) 어떠한 방법으로 벡터를 표현하든, 벡터 공간에 벡터로 표현된 문서들 사이의 거리가 가깝다면 문서의 의미도 유사하다. 2. distributional hypothesis : 한 단어의 앞, 뒤로(주변에) 함께 등장하는 단어들은 서로 관련이 있다. 모두가 잘 알고 있는 word2vec의 기본 가정이기도 하며 word2vec 결과를 보면 한 벡터공간의 주변에는 그 단어와 ..

Data Science/NLP 2018.11.25

Text Similarity (Jaccard Similarity, Cosine Similarity, Euclidean distance)

document A, B가 있을 때, 2가지가 얼마나 비슷한지를 나타내는 척도이다. 1) Jaccard Similarity (자카드 유사도) 2) Cosine Similarity (코사인 유사도) 3) Euclidean Distance (유클리디안 거리) Sentence 1: AI is our friend and it has been friendly Sentence 2: AI and humans have always been friendly 1) Jaccard Similarity : document A와 B가 있다고 했을 때, 각각의 document의 word set이 겹치는 정도에 따라 두 document간 유사도가 높다고 판단한다. 값은 0과 1사이의 값이다. 2) Cosine Similarity :..

Data Science/NLP 2018.11.15

Lp space / Lebesgue spaces (L1, L2, ...)

* Intro to Lp 머신러닝을 하다보면 L1, L2라는 용어를 많이 보게 될것이다. 그 중에서 가장 대표적인 것들은 다음과 같다. L1, L2 distance L1, L2 minimisation L1, L2 normalisation L1, L2 regularisation L1, L2 penalty 사실 이를 표현하는 말들은 많지만 위의 개념들 모두 동일하거나 크게 차이가 없다. L1, L2 등은 Lp space에서 파생되었으며 (L1: Lp space에서 p=1인 경우, L2: Lp space에서 p=2인 경우) 정의는 p-norm을 일반화 시킨것과 같다. (the Lp spaces are function spaces defined using a natural generalization of the..

Distance Metrics

하나의 벡터와 다른 벡터의 차이를 측정하는 방법은 여러가지가 있다. 그중에서 Distance 기반의 측정 방법은 말 그대로 벡터간의 물리적 길이를 기반으로 측정하는 방법이다. 길이에 가중치를 주는 방법에 따라 여러가지 지표로 나타 낼 수 있고, 이 방법에 의해 underfitting, overfitting을 야기시킬 수도 있다. 1) Manhattan distance (L1) : stepped path 2) Chebychev distance 3) Euclidean distance (L2) : straight line 4) Minkowski distance • Overview of each distance 1) Manhattan distance : L1 distance라고 불리며 stepped path 형..

logstash error - unrecognized SSL message

logstash로 pipeline을 구축하는 도중에 exception으로 Unrecognized SSL message라는 에러가 종종 발생한다. 1) ManticoreManticore::UnknownException: Unrecognized SSL message, plaintext connection? 이라고 뜨면 대부분 SSL 관련된 문제라고 인식하고, 문제를 해결하려고 한다. 하지만 Manticore와 관련된 에러는 대부분 http와 관련되어 있으므로 http와 관련된 설정 등을 의심해보자. 필자의 경우에는 logstash.yml 내에 xpack.monitoring 관련 elasticsearch url 설정에 문제가 있었다. 2) OpenSSL OpenSSL::SSL::SSLError: Unrecog..

IT/Elasticsearch 2018.11.12

nori, arirang, openkoreantext, mecab 형태소분석기 사전형식

Nori 사전 형식 .{ES_HOME}/config/user_dic.txtc++ C샤프 세종 세종시 세종 시 결과 : c++ => c++ c샤프 => c샤프 세종 => 세종 세종시 => 세종 시 (default) // 세종시 => 세종시 세종 시 (optional) https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-nori-tokenizer.html Arirang 사전 형식 분해전 단어:분해후단어1,분해후단어2,…,분해후단어N:DBXX 분해전 단어에 하여(다)동사(D), 되어(다)동사(B) 가 붙을 수 있는지 확인해야 함 (D : True = 1, False = 0 / B : True =1, False = 0) 객관화:객관,화:..

IT/Elasticsearch 2018.11.08

synonyms token filter 에서 lenient란??

lenient를 한국말로하면 관대한이라는 뜻이다. 무엇이 관대한지 알아보자. lenient의 default값은 false이고, true일 경우 관대해져서 동의어 필터를 적용하며 생기는 exception들을 모두 무시한다. 동의어 필터를 적용하며 생기는 문제는 다음과 같다. curl -X PUT "localhost:9200/test_index" -H 'Content-Type: application/json' -d' { "settings": { "index" : { "analysis" : { "analyzer" : { "synonym" : { "tokenizer" : "standard", "filter" : ["my_stop", "synonym"] } }, "filter" : { "my_stop": { "t..

IT/Elasticsearch 2018.11.08

ES analyzer 설치하기 (nori webinar) (1/3)

https://info.elastic.co/2018-09-19-Nori-Text-Analyzer-Webinar.html [1/3] arirang_analyzer, openkoreantext-analyzer, seunjeon_analyzer, nori_analyzer 설치 elasticsearch 6.4.0 환경에서 진행 (nori는 elasticsearch 6.4.0 이상 버전에서만 설치 가능) [설치순서] 1. elasticsearch / logstash / kibana / filebeat 설치 2. elasticsearch plugin을 설치 할 수 있는 file 만들기 3. analyzer에 따라 위에서 만든 file을 이용해서 plugin을 설치하거나 다운로드 4. 원본 text를 담고 있는 or..

IT/Elasticsearch 2018.10.25

ES에서 mapping types가 없어지는 이유

https://www.elastic.co/guide/en/elasticsearch/reference/master/removal-of-types.html#removal-of-types [ES에서 mapping types가 없어지는 이유?] elasticsearch 초기 버전에서는 "index"는 SQL에서의 "database"와 "type"은 "table"과 유사하다고 설명하였다. 하지만 이는 좋지 못한 비유였고 오해를 일으켰다. SQL DB 내 tables은 서로 독립적인데 반해, 한 table 내에 존재하는 column은 심지어 같은 column명을 가졌다고 하더라도 다른 table과는 전혀 무관했다. 하지만 mapping type 내에 존재하는 fields는 그러한 성격을 가지고 있지 않다. ES i..

IT/Elasticsearch 2018.10.23