Learn OOV inference ability from word embedding vector
README
Model
임베딩으로부터 단어를 Input X, 벡터를 Output Y로 재학습시켜 자소단위로 OOV 추론이 가능한 모델을 구현과 실험.
Character-Aware-Language model을 참고하였고 모델과 학습 대부분의 코드는 mkroutikov 구현에서 가져옴.
—Train Usage :
python ph_train.py --input_vec=input.vec --model_save_path=./save_dir/
Requirements - export LANG=ko_KR.utf8 환경변수 설정, hgtk (pip install hgtk) 자소분리, tensorflow >= 1.0
Input - input_vec.vec (gensim format)
Output - Trained Model
—Inference Usage : python ph_train.py --inference_mode --model_save_path=./save_dir/ --input_vec=input.vec
Inference 모드는 input.vec 사용하지 않지만 구조상 입력.
Input - OOV 단어
Output - 해당 단어에대한 Vector
*fastText와 동일 format: stdin, stdout
—OOV sim test Usage: python ph_oov_test.py ./saved_model/ ./data/NN-numalp-space-ep200em200min24.vec
** Similarity test에서는 oov추론시마다 모델을 GPU에 새로 load하기 때문에 실행이 오래걸리지만 실제사용시에는 cat queries.txt | python —- 과 같이 pipe를 이용해 여러 oov 를 한번에 전달하고 결과를 한번에 받을 수 있음.
결과/분석