2012-01-11 18 views
6

Kategorisinde sınıflandırma için kendi corpus'umu kullanıyorum NTLK/Python'un yeni başlayanıyım ve CategorizedPlaintextCorpusReader'ı kullanarak kendi corpus'umu yüklemeyi başardım ancak verileri sınıflandırma için nasıl eğitirim ve kullanırım?Python NLTK

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

(bkz Ama not.. Senin cap_pattern dan, o kadar da istediğiniz gerçekten ne olup olmadığını kontrol edin Eğer numuneyi ve topluluğunuzdaki dosya başına tek bir kategori var görünüyor) http://stackoverflow.com/sorular/29275614/kullanarak-my-kendi-korpus-yerine-of-the film-yorum-korpus-için-sınıflandırma-in-nltk – alvas

cevap

6

kelimelerin çanta ile bir naif Bayes sınıflandırıcı istiyorum varsayarsak özellikleri:

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))) 

çıkan clf 'ın classify yöntem

kelimelerden herhangi birini FreqDist kullanılabilir.

: