Как получить фонемы для сокращений с Python? - PullRequest
0 голосов
/ 12 апреля 2020

Кто-нибудь знает, как получить правильную фонему для сокращений? Я использую модуль g2p и обнаружил, что их predict функция , указанная ниже, возвращает неверные прогнозы для сокращений.

def predict(self, word):
    # encoder
    enc = self.encode(word)
    enc = self.gru(enc, len(word) + 1, self.enc_w_ih, self.enc_w_hh,
                   self.enc_b_ih, self.enc_b_hh, h0=np.zeros((1, self.enc_w_hh.shape[-1]), np.float32))
    last_hidden = enc[:, -1, :]

    # decoder
    dec = np.take(self.dec_emb, [2], axis=0)  # 2: <s>
    h = last_hidden

    preds = []
    for i in range(20):
        h = self.grucell(dec, h, self.dec_w_ih, self.dec_w_hh, self.dec_b_ih, self.dec_b_hh)  # (b, h)
        logits = np.matmul(h, self.fc_w.T) + self.fc_b
        pred = logits.argmax()
        if pred == 3: break  # 3: </s>
        preds.append(pred)
        dec = np.take(self.dec_emb, [pred], axis=0)

    preds = [self.idx2p.get(idx, "<unk>") for idx in preds]
    return preds

Например, g2p("http") возвращает ['T', 'AE1', 'P', 'T', 'IY1']

...