2012-01-11 29 views
6

Soy un principiante NTLK/Python y logré cargar mi propio corpus utilizando CategorizedPlaintextCorpusReader, pero ¿cómo entreno y uso los datos para la clasificación del texto?Uso de mi propio corpus para la clasificación de categorías en Python NLTK

>>> from nltk.corpus.reader import CategorizedPlaintextCorpusReader 
>>> reader = CategorizedPlaintextCorpusReader('/ebs/category', r'.*\.txt', cat_pattern=r'(.*)\.txt') 
>>> len(reader.categories()) 
234 
+0

ver http://stackoverflow.com/questions/29275614/using-my-own-corpus-instead-of-movie-reviews-corpus-for-classification-in-nltk – alvas

Respuesta

6

Suponiendo que desea un clasificador de Bayes ingenuo con bolsa de palabras características:

from nltk import FreqDist 
from nltk.classify.naivebayes import NaiveBayesClassifier 

def make_training_data(rdr): 
    for c in rdr.categories(): 
     for f in rdr.fileids(c): 
      yield FreqDist(rdr.words(fileids=[f])), c 

clf = NaiveBayesClassifier.train(list(make_training_data(reader))) 

classify método clf El resultado 's se puede utilizar en cualquier FreqDist de las palabras.

(atención: la de su cap_pattern, parece que tiene la muestra y una sola categoría por archivo en su corpus compruebe si eso es realmente lo que quieres..)

Cuestiones relacionadas