Wolfram Language

Treine uma rede para modelar o idioma inglês

Este exemplo demonstra como treinar uma rede neural recorrente para gerar texto em inglês.

Primeiro, crie 300.000 exemplos de treinamento de 25 caracteres cada, a partir de dois romances.

Crie uma amostra de dados que esteja na forma de um problema de classificação: dada uma sequência de caracteres, prever o próximo caractere.

Obtenha a lista de todos os caracteres no texto.

Construa uma rede que preveja uma sequência inteira de uma só vez. Observe que, em vez de usar SequenceLastLayer antes de LinearLayer, NetMapOperator foi usado. Como resultado, a rede prevê simultaneamente o próximo caractere na sequência para cada caractere, em vez de apenas predizer o último caractere da sequência.

Agora construa uma rede de "teacher forcing", que recebe uma sentença alvo e a apresenta à rede de forma "escalonada": para uma frase com 26 caracteres de comprimento, apresente os caracteres de 1 a 25 à rede para que ela produza previsões para para os caracteres de 2 a 26, que são comparados com os caracteres reais através da CrossEntropyLossLayer para produzir uma perda.

Treine a rede nas sequências de entrada dos dados originais.

Extraia a cadeia de previsão dos resultados.

Construa uma cadeia de previsão de um único caractere a partir dela.

Treine o preditor.

Crie um NetStateObject para gerar texto de forma eficiente.

Gere 200 caracteres de acordo com a distribuição aprendida pela rede. O texto gerado tem semelhança com o inglês, mas muitas palavras não são nem inglesas, porque foram treinadas em um pequeno corpus (cerca de dois milhões de caracteres).

Compare com uma rede semelhante treinada em cerca de um bilhão de caracteres.

Exemplos Relacionados

de en es fr ja ko zh