Usando o TF-IDF com outros recursos no SKLearn

8

Qual é a melhor / maneira correta de combinar a análise de texto com outros recursos? Por exemplo, eu tenho um conjunto de dados com algum texto, mas também outros recursos / categorias. O vetorizador TF-IDF do SKlearn transforma dados de texto em matrizes esparsas. Eu posso usar essas matrizes esparsas diretamente com um classificador Naive Bayes, por exemplo. Mas como também levar em conta os outros recursos? Devo desesparsificar a representação tf-idf do texto e combinar os recursos e o texto em um DataFrame? Ou posso manter a matriz esparsa como uma coluna separada, por exemplo? Qual é a maneira correta de fazer isso?

lte__
fonte

Respostas:

6

O FeatureUnion do scikit -learn concatena recursos de diferentes vetorizadores. Um exemplo de combinação de dados heterogêneos, incluindo texto, pode ser encontrado aqui .

Brian Spiering
fonte
O link expirou!
Abhishek Raj
Link atualizado para a versão atual do scikit-learn.
Brian Spiering
3

Normalmente, se possível, você deseja manter sua matriz escassa o maior tempo possível, pois economiza muita memória. É por isso que existem matrizes esparsas, afinal, por que se preocupar? Portanto, mesmo que seu classificador exija o uso de entrada densa, convém manter os recursos TFIDF escassos e adicionar os outros recursos a eles em um formato esparso. E somente então, torne a matriz densa.

Para fazer isso, você pode usar o scipy.sparse.hstack . Combina duas matrizes esparsas juntas por coluna. O scipy.sparse.vstack também existe. E, claro, o scipy também possui a versão não esparsa scipy.hstack e scipy.vstack

Valentin Calomme
fonte