목록Deep Learning/NLP (23)
Note
띄어쓰기가 되어있지 않은 문장을 띄어쓰기를 한 문장으로 변환해주는 패키지 pip install git+https://github.com/haven-jeon/PyKoSpacing.git sent = '김군은 극중 다중 인격 사나이 이광수 역을 맡았다. 김군은 한국 태권도 전승자를 가리는 결전의 날을 앞두고 10년간 함께 훈련한 사부님인 유사부(김모씨 분)를 찾으러 내려온 인물이다.' new_sent = sent.replace(" ", '') # 띄어쓰기가 없는 문장 임의로 만들기 from pykospacing import Spacing spacing = Spacing() kospacing_sent = spacing(new_sent) print(sent) print(kospacing_sent) 김군은 극중 ..
단어를 벡터화 하는 방법 중 하나인 페이스북에서 개발한 FastText. Word2Vec의 확장 매커니즘이라고 볼 수 있다. 그러나 두 방법의 가장 큰 차이는 Word2Vec은 단어를 쪼개질 수 없는 단위로 생각하는 반면, FastText는 하나의 단어안에서도 여러 단어들이 존재하는 것으로 간주한다. 이처럼 단어 안의 여러 단어를 내부 단어 (subword)라고 한다. FastText에서는 각 단어는 글자 단위 n-gram의 구성으로 취급합니다. n을 몇으로 결정하는지에 따라서 단어들이 얼마나 분리되는지 결정됩니다. 예를 들어서 n을 3으로 잡은 트라이그램(tri-gram)의 경우, apple은 app, ppl, ple로 분리하고 이들을 벡터로 만듭니다. 시작과 끝을 의미하는 를 도입하여 아래의 5개 내..
# 패키지 로딩 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout # 모델 정의 def fit_and_evaluate(X_train, y_train, X_test, y_test): model = Sequential() model.add(Dense(256, input_shape=(vocab_size,), activation='relu')) model.add(Dropout(0.5)) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax'..
# 패키지 로딩 import pandas as pd from sklearn.datasets import fetch_20newsgroups import matplotlib.pyplot as plt from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.utils import to_categorical # 사이킷런 20개 뉴스 그룹 데이터 로딩 # subset = train 은 훈련 데이터만 리턴 newsdata = fetch_20newsgroups(subset = 'train') data = pd.DataFrame(newsdata.data, columns = ['email']) data['target'] = pd.Ser..
import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer texts = ['탐스러운 사과', '맛있는 바나나', '노랗고 길쭉한 바나나 바나나', '저는 과일이 좋아요'] tokenizer = Tokenizer() tokenizer.fit_on_texts(texts) print(tokenizer.word_index) # mode 옵션은 count, binary, tfidf, freq print(tokenizer.texts_to_matrix(texts, mode = 'count')) 각 단어에 숫자 1부터 시작하는 정수 인덱스 부여하기 텍스트 데이터에 texts_to_matrix() 적용 입력된 텍스트 데이터로부터 행렬(mat..