Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como completar uma matriz esparsa?

Estou utilizando o método do bag of words para verificar, segundo alguns critérios, se uma frase atende ou não os requisitos. Para isso eu classifiquei manualmente 200 frases e treinei um modelo.

Após este treino eu tento aplicar o modelo a um outro grupo de frases, porém utilizando o método predict em cada frase individualmente. É ai que surge o meu problema:

ValueError: X has 70 features per sample; expecting 1298

Dessa mensagem eu entendo que o meu modelo foi treinado com base em um bag of words que possuía 1298 colunas, e agora a frase que eu estou tentando avaliar gera um bag of words com somente 70 colunas.

Nesse caso, seria possível eu preencher essa matriz gerada com zeros de forma que possa ser aplicado o meu modelo de predição?

1 resposta
solução!

Olá Lucas, tudo bem ?

Desculpa pela demora no retorno.

Você identificou corretamente o problema, seu modelo foi treinado com vetores de 1298 de vocabulário.

Então para conseguir utilizar novas entradas, você deve fazer a transformação dessas frase utilizando o mesmo vocabulário e assim resultando em um vetor do mesmo tamanho esperado pelo seu modelo.

Pensando no exemplo da aula, vamos ter a variável vetorizar que foi criada assim:

vetorizar = CountVectorizer()

Nesse momento ela ainda não aprendeu nenhum vocabulário, resolvemos isso com o fit_transform.

X = vetorizar.fit_transform(resenha.text_pt) 

Pronto, agora o vetorizar aprendeu um vocabulário a partir dos dados da resenha.text_pt.

E você vai utilizar os dados X para treinar seu modelo.

Agora onde entra os nossos novos dados ?

Bom, para transformar nossos novos dados, vamos utilizar o mesmo vetorizar que já conhece o vocabulário, com a diferença que agora vamos utilizar o método transform que fará apenas a transformação a partir do vocabulário que ele já aprendeu quando você executou o fit_transform.

novas_resenhas_transformadas = vetorizar.transform(novas_resenhas) 

Agora poderá utilizar a variável novas_resenhas_transformadas sem problemas no seu modelo.

Espero ter ajudado e qualquer duvida não hesite em perguntar.

Bons Estudos :D