¿Hay alguna forma de convertir los características de NLTK en una matriz Scipy.sparse?

StackOverflow https://stackoverflow.com/questions/8394257

  •  28-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de usar scikit.learn que necesita matrices numpy/scipy para la entrada. El conjunto de características generado en NLTK consiste en frecuencias unigram y bigram. Podría hacerlo manualmente, pero eso será mucho esfuerzo. Me pregunto si hay una solución que he pasado por alto.

¿Fue útil?

Solución

No es que sepa, pero tenga en cuenta que Scikit-Learn puede hacer norte-grama de frecuencia con el recuento de sí mismo. Asumiendo a nivel de palabra norte-gramas:

from sklearn.feature_extraction.text import CountVectorizer, WordNGramAnalyzer
v = CountVectorizer(analyzer=WordNGramAnalyzer(min_n=1, max_n=2))
X = v.fit_transform(files)

dónde files es una lista de cadenas o objetos similares a archivos. Después de este, X es una matriz de pareja de scipy.

Otros consejos

Jacob Perkins hizo un puente AA para entrenar clasificadores NLTK utilizando clasificadores Scikit-Learn que hace exactamente que aquí está la fuente:

https://github.com/japerk/nltk-trainer/blob/master/nltk_trainer/classification/sci.py

Las líneas de importación del paquete deben actualizarse si está utilizando la versión 0.9+.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top