J'ai créé un classificateur en appelant des manuels et des articles, alors j'aimerais voir s'il peut être bien classé. Dans un tel cas, je pense qu'il est facile de créer des données d'évaluation en utilisant le corpus fourni par NLTK. Un corpus de critiques de films est fourni pour les données de classification des documents. Une critique de film intitulée "pos" ou "neg" est convertie en une simple identité {0, 1} indiquant si elle contient ou non un mot.
import nltk
from nltk.corpus import movie_reviews
def document_features(document, word_features):
document_words = set(document)
features = {}
for word in word_features:
if word in document_words:
features[word] = 1
else: features[word] = 0
return features
def dataset():
d = []
freqdist = nltk.FreqDist()
for category in movie_reviews.categories():
for fileid in movie_reviews.fileids(category):
for word in movie_reviews.words(fileid): freqdist.inc(word.lower())
word_features = freqdist.keys()
for category in movie_reviews.categories():
for fileid in movie_reviews.fileids(category):
fv = document_features(movie_reviews.words(fileid), word_features)
x_i = [v for k, v in sorted(fv.items(), key=lambda f: f[0])]
if category == 'pos':
y_i = 1
elif category == 'neg':
y_i = -1
d.append((y_i, x_i))
return d
Recommended Posts