Este projeto visa construir dois modelos de Machine Learning: um para classificar notícias em diferentes categorias e outro para realizar o autocomplete de texto, prevendo a próxima palavra em uma frase. O conjunto de dados fornecido consiste em notícias de um site de notícias, já pré-processadas e armazenadas em um arquivo CSV.
Este projeto visa construir dois modelos de Machine Learning: um para classificar notícias em diferentes categorias e outro para realizar o autocomplete de texto, prevendo a próxima palavra em uma frase. O conjunto de dados fornecido consiste em notícias de um site de notícias, já pré-processadas e armazenadas em um arquivo CSV.
O arquivo CSV de dados contém as seguintes colunas:
Coluna | Descrição | Tipo de Dado |
---|---|---|
ClassIndex | Índice da categoria da notícia (0-3) | Numérico |
Título | Título da notícia | Texto |
Descrição | Descrição da notícia | Texto |
Texto | Título e descrição concatenados, separados por espaço | Texto |
ClassIndex
foi ajustado para que os valores variem de 0 a 3, em vez de 1 a 4, para compatibilidade com o TensorFlow.Texto
foi criada, combinando o título e a descrição da notícia.train_test_split
da biblioteca Scikit-learn, com uma proporção de 80% para treino e 20% para teste.Texto
foi tokenizada usando TextVectorization
do Keras, com um vocabulário de tamanho VOCAB_SIZE
.Embedding
, GlobalAveragePooling1D
e Dense
.Embedding
, Conv1D
, MaxPooling1D
, GlobalAveragePooling1D
, Dropout
e Dense
.Embedding
, Bidirectional(LSTM)
, Dense
e Dropout
.Adam
, a função de perda sparse_categorical_crossentropy
e a métrica accuracy
.TextVectorization
do Keras.Embedding
, Bidirectional(LSTM)
, Dense
, BatchNormalization
e Dropout
foi utilizada.categorical_crossentropy
, o otimizador Adam
e a métrica accuracy
.predict_next_words
foi criada para prever as próximas palavras mais prováveis, dado um texto de entrada.