Este é um kit de ferramentas para modelos de idiomas neural (NNLMS), que suporta Rede Neural de Feed-Forward (FNN), Rede Neural Recorrente (RNN), RNN de Memória de curto prazo (LSTM), RNN bidirecional e LSTM bidirecional. Modelos de linguagem de rede neural com camadas ocultas multibilizadores também podem ser construídas com este kit de ferramentas, e a arquitetura de camadas ocultas pode ser diferente. Um método baseado em classe é adotado neste kit de ferramentas para acelerar o treinar e a execução do modelo de linguagem de rede neural. Este kit de ferramentas foi reescrito usando C ++, que pode ser encontrado aqui.
Os parâmetros de configuração para NNLM são os seguintes:
| Nome | Descrição | Tipo | Obrigatório | Padrão |
|---|---|---|---|---|
| AC_FUN 1 | Função de ativação para camadas ocultas | Str | Tanh | |
| ALFA | Taxa de aprendizado | Flutuador | 0,01 | |
| ALPHA_CUT | Taxa de aprendizado de corte por essa proporção quando a melhoria é menor que o mínimo | Flutuador | 0,75 | |
| BETA | Paramters de regularização | Flutuador | 1e-6 | |
| En_bias | Ativar termos de viés | Bool | Falso | |
| En_direct | Ativar conexões diretas | Bool | Falso | |
| File_type | O tipo de arquivos de entrada, suporta binário e texto, 'b' para binário e 't' para texto | Str | T | |
| Gate_fun | Função de ativação para portões no LSTM RNN | Str | Sigmóide | |
| Gram_order | Ordem de n-grama para FNN | Int | 5 | |
| Hidden_layers 2 | Nome e tamanho das camadas ocultas | Lista | √ | |
| Input_unit 3 | Unidade de entrada, suporte de suporte ou personagem, 'w' para palavra e 'c' para o personagem | Str | C | |
| Iterações 4 | Número máximo de iteração | Int | 50 | |
| Min_improve 4 | Taxa mínima de melhoria de entropia nos dados de validação | Flutuador | 1.003 | |
| Model_name | Especifique um nome para o modelo de idioma | Str | - | |
| Output_Path | O caminho sob o qual os arquivos de saída serão salvos | Str | √ | - |
| Random_seed | Semente para gerador aleatório | Int | 1 | |
| Sentença_end | Marca para o final de uma frase | Str | < s> | |
| Sentença_start | Marca para o início de uma frase | Str | ||
| Test_files | O caminho sob o qual os arquivos de teste são armazenados | Str | √ | - |
| TRIN_FILES | O caminho sob o qual os arquivos de treinamento são armazenados | Str | √ | - |
| Desconhecido_word | Marca para palavra desconhecida | Str | Oov | |
| Válido_files | O caminho sob o qual os arquivos de validação são armazenados | Str | √ | - |
| Vetor_dim | Dimensão do vetor de recursos para palavras ou caracteres | Int | 30 | |
| Vocab_size 5 | O tamanho do vocabulário aprendido com os dados de treinamento | Int | 10000 |
Notas: 1. A função de ativação da (s) camada (s) oculta (s) pode ser uma de tanh , sigmoid , hard_sigmoid , relu e gaussian .
2. As camadas ocultas podem ser um ou vários de FNN , RNN , LSTM , BiRNN e BiLSTM , e eles devem ser dados como uma lista de tuplas contendo o nome de cada camada e seu tamanho, como [('rnn', 30), ('fnn', 20)]. Apenas uma tupla está ok quando há apenas uma camada oculta. O tamanho das camadas ocultas deve coincidir entre si.
3. Para idiomas, como inglês, francês, cujas palavras são separadas por caráter em branco, como o espaço branco, o INPUT_UNITE pode ser definido como 'w' ou 'c'. Outros idiomas, como chineses, apenas INPUT_UNITE = 'C' funciona.
4. O treinamento será encerrado quando atingir o número máximo de iteração ou que a melhoria da entropia nos dados de validação é menor que a taxa mínima ocorre duas vezes.
5. Se o número de palavras ou caracteres aprendidos com os dados de treinamento exceder o tamanho especificado do vocabulário, as palavras ou caracteres com baixa frequência não serão adicionados ao vocabulário. Por contrário, o tamanho do vocabulário será redefinido para o número de palavras aprendidas.
Os exemplos são fornecidos neste kit de ferramentas. Mais detalhes sobre os modelos Linguagel construídos neste kit de ferramentas, consulte minhas postagens.
O módulo está disponível como código aberto nos termos da licença do MIT.