fasttext 단어 학습

우주먼지·2021년 11월 29일
0

bin 파일 만들기

import fasttext

model = fasttext.train_supervised('cooking.stackexchange.txt', wordNgrams=2, epoch=25, lr=0.5)
mode.save_model('model_kor.bin')

첫번째 인자로는 파일주소를 넣어줘야한다.

학습하는 파일은 스트링으로 되어 있으며, 구분자는 \n과 띄어쓰기로 되는것으로 추정

./fasttext skipgram -input kor -output kor_model -dim 100 -ws 3 -minCount 100

이것도 된다고는 하는데 난 안됐음... 그래thㅓ 조금 슬펐ㄷr,,, 😿 😿 😿

계속 파일을 training하는데 사용할 수 없다는 에러 발생으로 인해 실패

vec파일 만들기

from fastText import load_model

# original BIN model loading
f = load_model(YOUR-BIN-MODEL-PATH)
    lines=[]

# get all words from model
words = f.get_words()

with open(YOUR-VEC-FILE-PATH,'w') as file_out:
    
    # the first line must contain number of total words and vector dimension
    file_out.write(str(len(words)) + " " + str(f.get_dimension()) + "\n")

    # line by line, you append vectors to VEC file
    for w in words:
        v = f.get_word_vector(w)
        vstr = ""
        for vi in v:
            vstr += " " + str(vi)
        try:
            file_out.write(w + vstr+'\n')
        except:
            pass

첫번째 줄에는 임베딩의 크기를 나타내는 값이 들어가고 두번째 줄부터 벡터값이 단어와 함께 들어가게 된다.

리스트 형태로 들어있는 vector값들을 띄어쓰기가 구분자로 들어가는 문자열로 바꿔서 저장해준다.

profile
안녕하세요 ㅎㅎ

0개의 댓글