Как тренировать модель N-Gram в Python с откатом? - PullRequest
0 голосов
/ 03 октября 2019

Итак, мне дан следующий список токенов, tokens = ["<S>", "Hello", "World", "How", "Are", "You", "Hello", "Goop", "I", "Are", "Good"]

, и я хочу обучить модель N-Gram с помощью Backoff , что означает, что мой вывод должен выглядеть как-

output["token1 token2"] = {"token0" : Probability of sentence <token1 token2 token0>, "token1": Probability value of sentence <token1 token2 token1>, and so on}

Например: output["token1 token2"] = {"token0" : 0.02, "token1" : 0.3, and so on}

также должны содержать ключи output["token1"] и output[""] (в униграммах). Мое определение метода выглядит примерно так -

model(tokens, n):

    output = defaultdict(Counter)

    for i in range(len(tokens) - order):

        history, word = tokens[i:i+order], tokens[i+order]
        <How to compute probabilities here & store it in output?>

    return output

В настоящее время я пытаюсь инициализировать свой вывод как счетчик, но я абсолютно застрял в том, как бороться с backoff и генерировать вероятностив течение одного цикла.

...