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개의 댓글

Powered by GraphCDN, the GraphQL CDN