#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…
какой наилучший способ подходит для доступных языков?