Existe-t-il un moyen de convertir les ensembles de fonctionnalités NLTK en un tableau Scipy.sparse?

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

  •  28-10-2019
  •  | 
  •  

Question

J'essaie d'utiliser Scikit.learn qui a besoin de tableaux Numpy / Scipy pour l'entrée. L'ensemble généré dans le NLTK se compose de fréquences unigramme et bigram. Je pourrais le faire manuellement, mais ce sera beaucoup d'efforts. Je me demande donc s'il y a une solution que j'ai négligé.

Était-ce utile?

La solution

Non pas que je sache, mais notez que Scikit-Learn peut faire n-GRAM FRÉQUENCE se comptant. En supposant un niveau de mot n-Grams:

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

files est une liste de chaînes ou d'objets de type fichier. Après ça, X est une matrice scipy.sparse du nombre de fréquences brutes.

Autres conseils

Jacob Perkins a fait un pont aa pour la formation de classificateurs NLTK utilisant des classificateurs Scikit-Learn qui font exactement cela ici est la source:

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

Les lignes d'importation de package doivent être mises à jour si vous utilisez la version 0.9+.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top