이전 포스팅에서 워드투벡의 의미와 한글 워드투벡에 대해서 알아보았다. 오늘은 이어서 새로운 단어들을 추가로 학습시켜보고자 한다.
워드투벡을 추가학습하는 방법은 아래 포스팅에 잘 설명되어 있다. 해당 블로그를 참고하여 추가 학습을 진행해보았다. 방법을 요약해보면 이렇다. 새로운 코퍼스로 워드투백을 만든 후에, 기존 데이터와 합쳐서 새로 학습을 시키면 된다.
gensim에서 워드투벡을 사용할 수 있는 방법은 2가지가 있다. 다운로드 받은 워드투벡이 위 포스팅과 형식이 맞지 않아 새로 저장하였다.
model = gensim.models.Word2Vec.load("ko.bin")
model.wv.save_word2vec_format("ko.bin.gz", binary=False)
이제 아래와 같이 추가하여 학습을 진행해보았다.
from gensim.models import Word2Vec, KeyedVectors
model_2 = Word2Vec(size=200, min_count=1)
model_2.build_vocab(tokenized_data)
total_examples = model_2.corpus_count
print(total_examples)
model_2.build_vocab([list(model.wv.vocab.keys())], update=True)
model_2.intersect_word2vec_format("ko.bin.gz", binary=False)
학습을 시작하기 전에 유사한 단어를 추출해보았다.
model_2.most_similar("19년")
아래와 같이 유사 단어라고 보기 어려운 단어들일 출력됐다.
[('포괄적', 0.31655797362327576),
('엄격', 0.2763560116291046),
('추상적', 0.2763408422470093),
('규범', 0.27127406001091003),
('가혹', 0.25651729106903076),
('외교적', 0.2555962800979614),
('수동적', 0.24688774347305298),
('수행자', 0.24484777450561523),
('강압적', 0.24308735132217407),
('규율', 0.24253354966640472)]
Recommendation 포스팅
아래와 같이 학습을 시작하였다.
model_2.train(tokenized_data, total_examples=total_examples, epochs=model_2.iter)
학습 후에 유사한 단어를 추출해보았다. 전보다 더 납득이 가는 유사단어들이 나오는 것을 알 수 있다.
model_2.most_similar("19년")
[('11월', 0.847227156162262),
('18년', 0.8107380867004395),
('12월', 0.8060749769210815),
('하락세', 0.8029606938362122),
('2월', 0.7986169457435608),
('8월 7일', 0.7936931252479553),
('월평균', 0.7932562232017517),
('용도지역', 0.7928778529167175),
('6월', 0.7919766902923584),
('26', 0.7908366918563843)]
전체 단어의 갯수도 32072개로 증가하였다.
len(model_2.wv.vocab)
어떤 단어들이 늘어났는지도 확인해보았다.
for k in model_2.wv.vocab:
result = model.wv.vocab.get(k, "0")
if result=="0":
print(k, end=",")
마지막으로 새로 만든 모델을 파일로 저장하였다.
model_2.save("ko_new.bin")
오늘은 이렇게 워드투벡에 대해서 알아보았다. 다음에는 워드투벡을 이용해서 RNN모형을 만들어보고자 한다.
'딥러닝' 카테고리의 다른 글
파이토치, 워드투벡 텍스트 딥러닝 해보기 (0) | 2021.01.06 |
---|---|
딥러닝 워드투벡 블로그 텍스트 생성 해보기! (0) | 2020.12.30 |
워드투벡 의미와 한글에 적용하는 방법은?! (0) | 2020.12.23 |
딥러닝 용어(2/2) - 손실함수, 배치크기, 에포크, 학습률 (1) | 2020.12.20 |
딥러닝 관련 용어(1/2) - 활성화 함수, 옵티마이저 (0) | 2020.12.18 |