본문 바로가기

[머신러닝_딥러닝]/자연어처리

글을 벡터로 변환하는 방법

특정 뉴스 기사에 다음과 같은 단어가 있다고 가정해보자

 

몇 | 번 | 을 | 쓰러지다 | 몇 | 번 |을 | 무너지다|다시 |일어나다

 

그럼 이것을 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)를 매겨 학습에 활용한다.