[머신러닝_딥러닝]/자연어처리
글을 벡터로 변환하는 방법
댕이댕이
2019. 9. 24. 23:08
특정 뉴스 기사에 다음과 같은 단어가 있다고 가정해보자
몇 | 번 | 을 | 쓰러지다 | 몇 | 번 |을 | 무너지다|다시 |일어나다
그럼 이것을 Word to Dictionary로 변환하면 다음과 같다.
Word_Dictionary
{
"몇":1,
"번":2,
"을":3,
"쓰러지다":4,
"무너지다":5,
"다시":6,
"일어나다":7
}
Vector_Data = [2,2,2,1,1,1,1] #단어 카운팅
위와 같이 딕셔너리 형태로 만들 수 있고 이를 각 뉴스, 신문, 글과 같은 카테고리로 분류하여 해당 단어에 대해 얼마나 '카운팅'되었는지를 기반으로 벡터를 형성할 수 있다.
그리고 이는 딥러닝에서 다음과 같이 활용된다. 세부적인 코드는 생략
X_train, X_test, Y_train, Y_test = train_test_split(X, Y)
Y_train = np_utils.to_categorical(Y_train, nb_classes)
model = KerasClassifier(
build_fn=build_model,
nb_epoch=nb_epoch,
batch_size=batch_size)
model.fit(X_train, Y_train)
print(len(X_train),len(Y_train))
# 예측하기 --- (※4)
y = model.predict(X_test)
ac_score = metrics.accuracy_score(Y_test, y)
cl_report = metrics.classification_report(Y_test, y)
print("정답률 =", ac_score)
print("리포트 =\n", cl_report)
위 Vector_Data를 기반으로 각각의 카테고리(Y)를 매겨 학습에 활용한다.