일반적으로 한글 언어 처리는 영어 등의 라틴어 처리보다 어려움
띄어쓰기, 다양한 조사 때문
영어의 띄어쓰기는 매우 명확함
주어나 목적어를 위해 추가되는 조사의 경우의 수가 많기 때문에 어근 추출 등의 전처리 시 제거하기 까다로움
파이썬의 대표적인 한글 형태소 패키지
형태소는 단어로서 의미를 가지는 최소 단위
말뭉치를 형태소 어근 단위로 쪼개고 각 형태소에 품사 태깅을 부착하는 작업
기존 C/C++, Java로 만들어진 한글 형태소 엔진을 파이썬 래퍼 기반으로 재작성한 패키지
꼬꼬마(KKma), 한나눔(Hannanum), Komoran, 은전한닢(Mecab), Twitter(Okt) 등 5개의 형태소 분석 모듈을 KoNLPy에서 사용 가능
설치 (wsl2)
sudo apt-get install g++ openjdk-8-jdk
pip install konlpy
bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)
제품 가격 예측 과제
제품에 대한 여러 속성 및 제품 설명 등의 텍스트 데이터로 구성
카테고리형 피처는 원-핫 인코딩, 비교적 짧은 텍스트 벡터화는 Count 기반, 긴 텍스트는 TF-IDF 기반 벡터화 적용
CountVectorizer, TfidfVectorizer의 fit_transform() 반환 데이터는 희소 행렬 형태
희소 행렬을 결합하여 새로운 데이터 세트로 구성, 인코딩 된 카테고리형 피처들 또한 함께 결합되어 ML 모델 입력 데이터 세트로 재구성 되어야 함
따라서 인코딩 대상도 희소 행렬 형태로 인코딩을 적용하여 함께 결합
원-핫 인코딩을 위한 OneHotEncoder, LabelBinarizer 클래스 중 LabelBinarizer는 희소 행렬 형태의 원-핫 인코딩 변환 지원
sparse_out=True
개별 컬럼으로 만들어진 희소 행렬은 scipy 패키지의 sparse 모듈의 hstack() 함수 이용하여 결합