как внедрить N-граммы

#keras #vectorization #embedding #n-gram #farsi

#keras #векторизация #встраивание #n-грамм #farsi

Вопрос:

для улучшения моей модели я использую, чтобы дать 3-граммовый символ на основе символов вместо слова 🙂 фрагмент кода приведен ниже:

 
def MakeNGram(sent_list, N, vocab_size, seq_size):
    NGramList = []

    for sent in sent_list:
        # ---------------------------- حذف فاصله ----------------------------
        sent = sent.replace(" ", "")
        # ------------------------- استخراج ان تایی ها --------------------------
        NGram = [sent[i:i   N] for i in range(len(sent) - N   1)]
        # ----------------------- تبدیل به ان تایی با فاصله ------------------------
        new_string = " ".join(NGram)
        # ------------------------- رمزگذاری وان هات --------------------------
        OneHot = one_hot(new_string, round(vocab_size * 1.3))
        # --------------------------- padding ------------------------------
        HotLen = len(OneHot)
        if HotLen >= seq_size:
            OneHot = OneHot[0:seq_size]
        else:
            diff = seq_size - HotLen
            extra = [0] * diff
            OneHot = OneHot   extra
        NGramList.append(OneHot)
    NGramArray = np.array(NGramList)
    return NGramArray


 

до сих пор проблем нет, но я хочу векторизовать N-граммы без onehot, и, конечно, для моего языка (персидского) нет модели Ngram2vec, поэтому, пожалуйста, помогите мне изменить код с лучшей функцией встраивания для Ngrams 🙂
примечание: я использую встраивания keras, но было много проблем, я думаю, что у меня была ошибка при замене встраивания keras на onehot
какой наилучший способ подходит для доступных языков?