Я немного сбит с толку после прочтения «Мешка уловок» для эффективной классификации текста. В чем разница между args wordNgrams
, minn
и maxn
Например, задача классификации текста и внедрение перчаток как предварительно обученных векторов.
ft.train_supervised(file_path,lr=0.1,epoch=5,wordNgrams=2,dim=300,loss='softmax', minn=2,maxn=3,pretrainedVectors='glove.300d.txt',verbose=0)
входное предложение - «Я люблю тебя». Если minn = 2, maxn = 3, все предложение преобразуется в [<I, I>], [<l, <lo, lo, lov,.....]
и т. Д. Для слова любовь его вставка в быстрый текст = (emb (любовь) (как полное слово) + emb (‹l) + emb (‹ lo) + ....) / н. В предложении оно разбито на [I love, love you]
(потому что wordNgrams = 2), и эти 2-граммовые вложения равны [(fasttext emb(I)+fasttext emb(love))/2, (fasttext emb(love)+fasttext emb(you))/2]
. Вложение предложения является средним для 2-граммовых вложений и имеет размерность 300. Затем оно проходит через слой, который имеет нейроны #labels (т.е. умножается на матрицу размером [300, #labels]).
Это правильно? Пожалуйста, поправьте меня, если я ошибаюсь