[nlp] subword 분절
·
데이터 과학 Data Science/자연어처리 NLP
단어에서 subword 란 말 그대로 더 작은 단위의 의미들이다. 예를 들어 "집중" 이라는 한글 단어는 모은다는 뜻이 있는 "집" 그리고 가운데를 뜻하는 "중" 으로 이루어져 있다. 영어의 경우도 Concentrate 는 con/centr/ate 의 세 가지 뜻으로 구성된 단어들이 대부분이다. 따라서 이런 작은 의미 단위로 분절할 수 있다면 학습이 더 유리해지나, 이를 위해서는 subword 를 나눠둔 사전이 필요하다. 오늘은 이 subword 사전을 만들어내기 위한 여러가지 방법들을 알아보고, 간단한 실습을 해보도록 하겠다. 1. Byte Pair Encoding 알고리즘 압축 알고리즘? 이라고 불리는 이 알고리즘은 subword 사전을 생성해내는 알고리즘이다. 학습 코퍼스를 활용해 모델을 학습시킨 ..
[NLP] Tokenization
·
데이터 과학 Data Science/자연어처리 NLP
1.Tokenization Tokenization 은 왜 할까? 단어들은 (특히 한국어는) 하나의 어간으로만 이루어져있지 않다. 보통 접사가 붙거나 두개 이상의 어근이 합쳐지며 파생되는 형태로 생성되기 때문에 우리는 단어나 문장을 분석 전에 먼저 분절시켜줄 필요가 있다. 예를 들어, "한국의 김치찌개" 는 각각 한국/의/김치/찌개 로 분리할 수 있다. 이렇게 딥러닝을 시키기 전의 분절은 단어의 결합으로 이루어진 단어를 쪼개서 희소성을(sparesness) 낮추고, 띄어쓰기도 통일시킬 수 있다. (한국어의 띄어쓰기는 정말 제각각이다..) 영어의 경우는 NLTK 를 이용해 comma 등의 후처리만 하면 됨 (띄어쓰기가 이미 잘 되어있음) 2. 형태소 분석 / 품사 태깅 형태소 분석은 앞서 말한 것 처럼 문장..
[NLP] 정규표현식 re 간단한 예제
·
데이터 과학 Data Science/자연어처리 NLP
RegEx 를 적용하는 방법이 두가지 있다. 1. Text Editor 를 이용해 interactive 하게 로그를 보고 바로바로 결과를 보면서 하는 방법 2. 전용 모듈을 이용하는 방법 당연히 전자가 더 쉽다. 텍스트 에디터를 지원하는 프로그램은 Sblime Text, VScode, EmEditor 가 있는데 전자 두개는 무료이나 데이터 양이 크면 버벅거린다고 한다. 기가단위의 대용량 코퍼스를 정제해야 한다면 그냥 후자를 이용해보자 정규식을 적용하는 법의 주된 원리는 "규칙을 찾아내는 것" 이다. 내가 정제하고픈 불용어가 들어가있는 규칙을 찾아내어 이 표현을 이용해 보도록 하자 1. 꺽쇄 이용 [] #23,4,5 중 하나거나 cde 중 하나면 걸림 [2-5c-e] #23,4,5 중 하나가 아니거나 cd..
계층적 클러스터링
·
데이터 과학 Data Science/비지도학습
계층적 클러스터링은 비슷한 군집끼리 묶으면서 최종적으로 한개가 될 때 까지 묶는 클러스터 기법이다. k-means 기법이 최적으로 응집된 지점을 찾아서 데이터를 "나누는" 데 집중하는 반면 이 아이는 데이터를 "분리하는 데" 집중한다. 그러니까 이 아이는 모든 데이터셋 자체를 그냥 시작부터 하나의 클러스터로 간주하고 계산을 시작하면서 결합해 나가는 방식으로 작동하는거다. 그렇다보니... 특이점이나 비정상적인 그룹을 발견하는 데 유리하고 시각화가 편하다는 장점이 있지만 다만 컴퓨팅 소스가 많이 들어가기 때문에 데이터셋의 크기가 너무 크면 안된다! 1. 작동 방식 준비물! d = 두 개의 데이터셋 i 와 j 사이의 거리를 측정하는 "거리 측정 지표" D = 두 개의 클러스터 A 와 B 사이의 차이를 측정하는..
허니비 honeybee
'데이터 과학 Data Science' 카테고리의 글 목록 (3 Page)