使用数据集进行NLTK培训和测试

arq*_*qam 5 python nlp nltk

我正在尝试使用Naive Bayes算法进行情感分析,并且正在阅读一些文章.正如几乎每篇文章中都提到的,我需要用一些预先计算的情绪来训练我的朴素贝叶斯算法.

现在,我有一段使用随NLTK提供的movie_review模块的代码.代码是:

import nltk
import random
from nltk.corpus import movie_reviews

documents = [(list(movie_reviews.words(fileid)), category)
             for category in movie_reviews.categories()
             for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)

all_words = []
for w in movie_reviews.words():
    all_words.append(w.lower())
all_words = nltk.FreqDist(all_words)
word_features = list(all_words.keys())[:3000]

def find_features(document):
    words = set(document)
    features = {}
    for w in word_features:
        features[w] = (w in words)

    return features

featuresets = [(find_features(rev), category) for (rev, category) in documents]


training_set = featuresets[:1900]
testing_set = featuresets[1900:]

classifier = nltk.NaiveBayesClassifier.train(training_set)
print("Classifier accuracy percent:",(nltk.classify.accuracy(classifier, testing_set))*100)
Run Code Online (Sandbox Code Playgroud)

所以,在上面的代码中我有一个training_set和一个testing_set.我查看了movie_review模块,在电影评论模块中,我们有许多包含评论的小文本文件.

  • 所以,我的问题是在这里我们有电影评论模块,我们导入它并使用模块进行训练和测试,但是当我使用外部训练数据集和外部测试数据集时我们该怎么做.
  • 另外,NLTK如何解析其中包含如此多文本文件的movie_review目录.因为我将使用 http://ai.stanford.edu/~amaas/data/sentiment/这作为我的训练数据集,所以我需要了解它是如何完成的.