мой первый пост здесь!У меня проблемы с использованием nltk NaiveBayesClassifier.У меня есть тренировочный набор из 7000 предметов.Каждый учебный предмет имеет описание 2 или 3 миров и код.Я хотел бы использовать код в качестве метки класса и каждый мир описания в качестве функций.Пример:
«Меня зовут Обама», 001 ...
Набор тренировок = {[feature ['My'] = True, feature ['name'] = True, feature['is'] = True, функция [Obama] = True], 001}
К сожалению, при использовании этого подхода в учебной процедуре NaiveBayesClassifier.train используется до 3 ГБ оперативной памяти. Что не так в моем подходе?Спасибо!
def document_features(document): # feature extractor
document = set(document)
return dict((w, True) for w in document)
...
words=set()
entries = []
train_set= []
train_length = 2000
readfile = open("atcname.pl", 'r')
t = readfile.readline()
while (t!=""):
t = t.split("'")
code = t[0] #class
desc = t[1] # description
words = words.union(s) #update dictionary with the new words in the description
entries.append((s,code))
t = readfile.readline()
train_set = classify.util.apply_features(document_features, entries[:train_length])
classifier = NaiveBayesClassifier.train(train_set) # Training