Спасибо большое за ответы!)
Ещё одна проблемка.
Программа должна определять тематику(жанр) считанного текста из файла.
Использовал в качестве библиотеки NLTK.
Проблема в последних строчках,видимо в test_docs.туда я заношу самые “популярные” слова из моего текста,и классификатор по ним ищет схожесть с словами из базы Brown.
# Text Classification Demo Version
import nltk #Connect to library
#nltk.usage(nltk.classify.ClassifierI)
from nltk.corpus import brown
import random
f=open("C:\\Test\check.txt")
text=f.read()
f.close()
words=nltk.tokenize.word_tokenize(text) #Split text on words
stopw=open("C:\\Test\stopwords.txt") #Text including stop words
stop=stopw.read()
stopw.close()
stopwords=nltk.tokenize.word_tokenize(stop)
filteredtext = [t for t in words #Delete all stop words from input text
if t.lower() not in stopwords]
filtertext = [word.lower() for word in filteredtext if word.isalnum()]
filttext=nltk.FreqDist(filtertext)
test = filttext.keys()[:3] #Find 3 most popular words
print test
def word_feats(words):
return dict([(word,True) for word in words])
train_docs = [(word_feats(brown.words(fileid)),category)
for category in brown.categories()
for fileid in brown.fileids(category)]
test_docs = [test]
classifier = nltk.classify.NaiveBayesClassifier.train(train_docs)
print classifier.classify(test_docs)
Выдаётся следующая ошибка:
Traceback (most recent call last):
File “C:\Users\Павел\Desktop\Курсовая\программа\classify_words.py”, line 43, in <module>
print classifier.classify(test_docs)
File “C:\Python27\lib\site-packages\nltk\classify\naivebayes.py”, line 88, in classify
return self.prob_classify(featureset).max()
File “C:\Python27\lib\site-packages\nltk\classify\naivebayes.py”, line 94, in prob_classify
featureset = featureset.copy()
AttributeError: ‘list’ object has no attribute ‘copy’
Первый раз пишу программу на Питоне,был бы благодарен,если бы подсказали,где ошибка .