fasttext 3

Word Vector 훈련 데이터를 키우면 얼마나 도움이 될까?

지난 테스트(Tensorflow의 Embedding Layer vs fastText)에서 Tensorflow의 자체 임베딩보다는 아무래도 대용량의 데이터를 사용해서 훈련시킨 fastText가 성능 개선에 도움이 된다는 사실을 확인하고 또 궁금한 점이 생겼습니다. 그렇다면 fastText를 훈련시키는 데이터를 키우면 어떨까요? 한국어 위키피디아도 크기는 하지만 실제로 더 큰 데이터는 나무 위키입니다. 콘텐츠 품질에 대해 논란이 있지만 방대한 텍스트 데이터이기는 하죠. 그리고 다소 심한 구어체와 비속어들이 있지만 어떻게 보면 위키피디아보다 요즘 인터넷 상의 언어 형태를 더 잘 보여준다고 볼 수도 있고요. 그리하여 기존 위키피디아 + 네이버 영화 데이터에 나무위키 데이터까지 더해서 fastText를 훈련시켜보..

Deep Learning 2020.05.01

Tensorflow의 Embedding Layer vs fastText

지난 번 한국어 토큰 테스트(한국어 토큰의 단위는 뭐가 좋을까?)를 해보고나니, Tensorflow(Keras)의 Embedding은 어떨지 궁금했습니다. 그래서 지난번 테스트 중 가장 성능이 좋았던 "형태소+글자" 단위 토큰으로 비교를 해보았습니다. Embedding dimension은 fastText의 기본값 100으로 그대로 하고요. OOV를 위한 토큰을 추가합니다. import tensorflow as tf import numpy as np from tqdm import tqdm from konlpy.tag import Mecab OOV_TOKEN = '' EMBEDDING_DIM = 100 Toknizer와 코퍼스 읽는 건 앞에서 그대로 가져오고요. tagger = Mecab() def toke..

Deep Learning 2020.04.30

한국어 토큰의 단위는 뭐가 좋을까?

한국어 자연어 처리를 하다 보면 토큰의 단위를 뭐로 할지 고민이 될 때가 있습니다. 토큰을 어떻게 잡느냐에 따라 데이터의 크기도 달라지고, 아마도(?) 최종 시스템의 성능도 달라질 거고요. 그래서 이 아마도를 한번 확인해보기로 했습니다. 토큰에 따라 성능이 달라질까요? 결론은 네 그렇습니다. 두 줄 요약. 어절을 통으로 쓰는 것보다는 형태소나 Subword와 같은 작은 단위가 좋다. 글자를 쓰느냐, 자소를 쓰느냐는 (특히 형태소 단위 토큰에서) 크게 유의미하지 않다. 이번 글의 또다른 목적은 간단한 한국어 자연어 처리기를 나름 최신의 기술들을 사용해서 처음부터 끝까지 만드는 법을 보여드리는 겁니다. 그래서 전체 데이터와 코드를 포함했습니다. 시작하기 전에 이 글은 읽으시는 분께서 Tensorflow, M..

Deep Learning 2020.04.28